文章目录
hive的安装部署
在已经安装完hadoop,mysql的基础上可以进行hive的安装
之前部署的hadoop版本为3.2.4,mysql版本为8.0.39
mysql部署方式:mysql部署
1.下载hive包
#使用wget 或者浏览器下载
https://downloads.apache.org/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz
#解压到自己想要部署的目录
tar -zxvf apache-hive-3.1.3-bin.tar.gz
2.配置环境变量
#增加环境变量配置
vim /etc/profile.d/my_env.sh
#增加环境变量
export HIVE_HOME=/home/ldsx/down_load/hive_data/hive (配置成实际hive存放目录)
export PATH=$PATH:$HIVE_HOME/bin
#加载环境变量
source /etc/profile.d/my_env.sh
3.配置mysql驱动
# 下载mysql驱动
https://downloads.mysql.com/archives/c-j/
# 配置mysql驱动
下载完成后打开压缩包获取mysql-connector-java-8.0.30.jar包
把mysql驱动放入到$HIVE_HOME/lib下,我这里是/home/ldsx/down_load/hive_data/hive/lib
下载驱动包
获取mysql-connector-java-8.0.30.jar
4.Hadoop,Hive同步Guava包
在Hadoop和Hive环境中,Guava包是一个重要的依赖库,用于提供一系列实用的工具类和函数。不同的组件可能会依赖不同版本的Guava包,可能导致版本冲突。当Hive依赖的Guava版本与Hadoop集群中其他组件依赖的版本不一致时,就可能出现依赖冲突,进而影响系统的稳定性和性能。Hadoop和Hive同步Guava包的主要作用是解决依赖冲突,确保系统的稳定运行。
#hadoop安装包下guava包位置
$HADOOP_HOME/share/hadoop/common/lib
#hive下安装包下guava包位置
$HIVE_HOME/lib
# 进入hadoop存放jar包路径
cd $HADOOP_HOME/share/hadoop/common/lib
# 复制hadoop的guava包到hive里
cp guava-27.0-jre.jar $HIVE_HOME/lib
# 删除hive自带的guava包
rm -fr $HIVE_HOME/lib/guava-19.0.jar
$HADOOP_HOME,$HIVE_HOME代表hadoop,hive实际部署路径
5.配置hive-site.xml
value按自己实际部署情况修改
<configuration>
<property>
<!--配置Hive使用的Metastore(元数据)数据库,也就是部署的mysql数据库-->
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop01:3306/hive?createDatabaseIfNotExist=true </value>
</property>
<property>
<!--用于指定 JDO 连接驱动的名称。JDO 是 Java Data Objects 的缩写-->
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.cj.jdbc.Driver</value>
</property>
<property>
<!--mysql用户-->
<name>javax.jdo.option.ConnectionUserName</name>
<value>ldsx</value>
</property>
<property>
<!--mysql密码-->
<name>javax.jdo.option.ConnectionPassword</name>
<value>Ldsx@071</value>
</property>
<property>
<!--元数据仓库的目录-->
<name>hive.metastore.warehouse.dir</name>
<value>/home/ldsx/opt/hadoopData/hive_data</value>
</property>
<property>
<!--HiveServer2监听的端口号-->
<name>hive.server2.thrift.port</name>
<value>10001</value>
</property>
<property>
<!--hiveserver2监听的主机-->
<name>hive.server2.thrift.bind.host</name>
<value>master</value>
</property>
</configuration>
6.hive启动
初始化hive元数据
#是一个用于初始化Hive schema,在mysql里面创建hive所需数据表
schematool -initSchema -dbType mysql
hive启动方式
#启动hive的方式
#使用hive CLI
1.hive
#beeline 链接
先启动hiveserver2访问
HiveServer是Hive的一个服务,它提供了JDBC和Thrift服务,使用户可以通过这些服务连接到Hive并执行SQL查询,使Hive能够接受外部的SQL查询请求。
nohup hive --service hiveserver2 &
#使用jdbc进行链接
beeline -u jdbc:hive2://master:10001
7.远程部署
远程部署就是把hiveserver2,与metastore拆分启动,上面启动为本地启动在启动,hiveserver2的时候直接把metastore一起启动了(一个进程内),远程部署就是拆分成俩进程,放在不同的服务器进行部署。
#在hive-site.xml追加内容,同步到所有安装hive的节点,设置metastore服务位置
<property>
<name>hive.metastore.uris</name>
<value>thrift://hadoop01:9083</value>
</property>
#在master执行
nohup hive --service hiveserver2 &
#在hadoop01执行
nohup hive --service metastore &
#再有hive的节点远程链接
beeline -u jdbc:hive2://master:10001