Hive环境搭建_远程部署

发布于:2022-07-29 ⋅ 阅读:(353) ⋅ 点赞:(0)

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&amp;useSSL=false&amp;useUnicode=true&amp;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启动

第一代客户端

一般不用第一代,用第二代

  1. 启动metastore服务. //细节: 确保你的ZK 和 Hadoop集群已经成功启动.
    前台启动: //了解即可
    cd /export/server/apache-hive-3.1.2-bin/bin
    ./hive --service metastore
    后台启动: //掌握
    nohup ./hive --service metastore &
  2. 通过hive的第一代客户端连接.
    cd /export/server/apache-hive-3.1.2-bin/bin
    ./hive //进去后可以写HQL语句了, 基本和SQL语句一致.

第二代客户端

  1. 因为hive的第二代客户端底层是Java写的, 依赖hiveserver2服务, 所以我们要先开启hiveserver2服务.
    注意: 启动之后, 等个1, 2分钟, 再用第二代客户端连接, 因为要加载写jar包.
cd /export/server/apache-hive-3.1.2-bin/bin
nohup ./hive --service hiveserver2 &	
  1. 通过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 后查看

网站公告

今日签到

点亮在社区的每一天
去签到