詹学伟
詹学伟
Published on 2024-04-20 / 62 Visits
0
1

hive安装部署

说明:该文档的部署是基于hadoop HA集群搭建成功的前提下,使用本文档前请先依照hadoop HA搭建文档部署好相关的集群。然后在该集群上进行本文档操作。

一、安装mysql(用于存储元数据)

这里使用docker安装,见docker笔记,mysql安装。

这里需要特别注意:安装完mysql后需要设置权限

grant all privileges on *.* to root@'%' identified by 'root' with grant option;

grant all privileges on *.* to 'APP'@'%' identified by 'root' with grant option;

二、hive下载

下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz

三、安装包上传、解压,环境变量配置

1.上传

2.解压

tar -zvxf apache-hive-3.1.2-bin.tar.gz 

3.移动到指定安装位置

4.环境变量设置

四、解决Hive与Hadoop之间guava版本差异

说明:hive和hadoop都有guava的jar,但是两个的版本不一致。这里我们将hive的guava删除,复制hadoop的guave到hive

cd /opt/apache-hive-3.1.2/lib
rm -rf guava-19.0.jar
cp /usr/local/hadoop-3.3.0/share/hadoop/common/lib/guava-27.0-jre.jar .

五、修改配置文件

hive-env.sh

cd /usr/local/apache-hive-3.1.2/conf
mv hive-env.sh.template hive-env.sh
vim hive-env.sh 

export HADOOP_HOME=/usr/local/hadoop-3.3.0
export HIVE_CONF_DIR=/usr/local/apache-hive-3.1.2/conf
export HIVE_AUX_JARS_PATH=/usr/local/apache-hive-3.1.2/lib

hive-site.xml

<configuration>
  <!--存储元数据mysql相关配置-->
  <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://hadoop1: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>root</value>
  </property>

  <!--H2S运行绑定host-->
  <property>
        <name>hive.server2.thrift.bind.host</name>
        <value>hadoop1</value>
  </property>

  <!--远程模式部署metastore metastore地址-->
  <property>
        <name>hive.metastore.uris</name>
        <value>thrift://hadoop1:9083</value>
  </property>

  <!--关闭元数据存储授权-->
  <property>
        <name>hive.metastore.event.db.notification.api.auth</name>
        <value>false</value>
  </property>
</configuration>

六、上传mysql jdbc驱动到hive安装包Iib下
mysql-connect-xxx.jar

七、初始化元数据

cd apache-hive-3.1.2/bin
./schematool -initSchema -dbType mysql -verbos

八、在hdfs创建hive存储目录(如存在则不用操作)

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

九、启动

metastore服务启动方式

/usr/local/apache-hive-3.1.2/bin/hive --service metastore
nohup /usr/local/apache-hive-3.1.2/bin/hive --service metastore > metastore.log 2>&1 &

beeline使用需要启动hiveserver2(依赖metastore,需要等metastore完全启动完成后再启动hiveserver2),该方法官方推荐使用

/usr/local/apache-hive-3.1.2/bin/hive --service hiveserver2
nohup /usr/local/apache-hive-3.1.2/bin/hive --service hiveserver2 > hiveserver2.log 2>&1 &

HiveServer2服务介绍:

远程模式下beelinei通过Thrift连接到单独的liveServer:2服务上,这也是官方推荐在生产环境中使用的模式。
HiveServer:2支持多客户端的并发和身份认证,旨在为开放API客户端如JDBC、ODBC提供更好的支持。

使用beeline链接:

/usr/local/apache-hive-3.1.2/bin/beeline
beeline>! connect jdbc:hive2://hadoop1:10000
beeline>root
beeline>直接回车(不需要密码)


Comment