Hive的远程部署图解
安装步骤
前提条件: 成功安装了ZK,Hadoop,Mysql,JDK
并启动
- 启动hadoop和ZK
ZK启动: /export/server/zookeeper/bin/zkServer.sh start
hadoop启动: start-all.sh //没有脚本就一个个启动
1. 保证 hadoop的 core-site.xml文件中, 兼容hive配置
这一步应该不用做,装hadoop的时候就写过了
vim etc/hadoop/core-site.xml
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
2. 上传,解压
解压: tar zxvf apache-hive-3.1.2-bin.tar.gz
3. 保证 hive中的 guava.jar 版本 和 Hadoop中的 guava.jar版本一致
cd /export/server/apache-hive-3.1.2-bin/
rm -rf lib/guava-19.0.jar
cp /export/server/hadoop-3.3.0/share/hadoop/common/lib/guava-27.0-jre.jar ./lib/
思路: 删除掉hive中的guava文件,把hadoop的guava复制到hive中
4. 修改Hive中的配置文件
1. hive-env.sh
- 改名
cd /export/server/apache-hive-3.1.2-bin/conf
mv hive-env.sh.template hive-env.sh
- 配置
vim hive-env.sh
# 粘贴到文件的最后
export HADOOP_HOME=/export/server/hadoop-3.3.0
export HIVE_CONF_DIR=/export/server/apache-hive-3.1.2-bin/conf
export HIVE_AUX_JARS_PATH=/export/server/apache-hive-3.1.2-bin/lib
2. hive-site.xml
文件不存在,直接创建一个即可
vim hive-site.xml
复制以下内容.
注意: 第三,四个标签中为 mysql 的用户名和密码,改成自己电脑上的.
<configuration>
<!-- 存储元数据mysql相关配置 -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://node1:3306/hive3?createDatabaseIfNotExist=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hadoop</value>
</property>
<!-- H2S运行绑定host -->
<property>
<name>hive.server2.thrift.bind.host</name>
<value>node1</value>
</property>
<!-- 远程模式部署metastore metastore地址 -->
<property>
<name>hive.metastore.uris</name>
<value>thrift://node1:9083</value>
</property>
<!-- 关闭元数据存储授权 -->
<property>
<name>hive.metastore.event.db.notification.api.auth</name>
<value>false</value>
</property>
</configuration>
5. 上传Mysql jdbc驱动到Hive安装包的Lib目录下
mysql-connector-java-5.1.32.jar
6. 手动执行命令初始化Hive的元数据
cd /export/server/apache-hive-3.1.2-bin/
bin/schematool -initSchema -dbType mysql -verbos
#初始化成功会在mysql中创建74张表
7. 在HDFS中创建目录(可以自定义, 但是最好和我一样), 用于存储Hive的信息.
- 此时ZK和hadoop集群应该还在启动
- 检查: 启动后在浏览器输入node1:9870 查看安全模式是否为off,如果为Safe mode is ON.则输入
hdfs dfsadmin -safemode forceExit
强制关闭
然后输入以下命令,创建目录并设置权限
hadoop fs -mkdir /tmp
hadoop fs -mkdir -p /user/hive/warehouse
hadoop fs -chmod g+w /tmp
hadoop fs -chmod g+w /user/hive/warehouse
Hive启动
第一代客户端
一般不用第一代,用第二代
- 启动metastore服务. //细节: 确保你的ZK 和 Hadoop集群已经成功启动.
前台启动: //了解即可
cd /export/server/apache-hive-3.1.2-bin/bin
./hive --service metastore
后台启动: //掌握
nohup ./hive --service metastore & - 通过hive的第一代客户端连接.
cd /export/server/apache-hive-3.1.2-bin/bin
./hive //进去后可以写HQL语句了, 基本和SQL语句一致.
第二代客户端
- 因为hive的第二代客户端底层是Java写的, 依赖hiveserver2服务, 所以我们要先开启hiveserver2服务.
注意: 启动之后, 等个1, 2分钟, 再用第二代客户端连接, 因为要加载写jar包.
cd /export/server/apache-hive-3.1.2-bin/bin
nohup ./hive --service hiveserver2 &
- 通过hive的第二代客户端连接.
cd /export/server/apache-hive-3.1.2-bin/bin
./beeline
!connect jdbc:hive2://node1:10000 //敲回车
输入账号: root
输入密码: 可以不用写, 直接敲回车即可. //恭喜各位, 登陆成功. 如果出现"拒绝连接", 等一会儿就好了.
总结
- 要先启动ZK和hdoop
- hive-site.xml中要输入自己的mysql用户名和密码
- 创建目录时确保Safe mode is OFF
- 启动hiveserver2后要等2分钟
- 输入!connect jdbc:hive2://node1:10000后不用输密码直接回车
本文含有隐藏内容,请 开通VIP 后查看