1、解压

从software目录下解压至module目录。

  1. [root@slave4 software]# ls
  2. apache-hive-3.1.2-bin.tar.gz hadoop-3.2.1.tar.gz nacos-server-1.1.4.tar.gz spark-3.0.0-bin-hadoop3.2.tgz
  3. [root@slave4 software]# tar -xzvf apache-hive-3.1.2-bin.tar.gz -C ../module/

-C 参数表示解压到指定目录。

2、环境变量

因为hive只配置单节点,所以给当前节点配置hive环境变量即可。

  1. # set hive environment
  2. export HIVE_HOME=/opt/module/apache-hive-3.1.2-bin
  3. export HIVE_CONF_DIR=/opt/module/apache-hive-3.1.2-bin/conf
  4. export PATH=$PATH:$HIVE_HOME/bin

记得source一下生效。

3、配置

3.1 MySQL中创建数据库

  1. 新建数据库,名称为hive_3(字符集:utf8;排序规则:utf8_general_ci)

    3.2 HDFS中创建目录

  2. root用户

  3. 终端执行以下命令创建目录并赋予rwxrwxrwx权限。

    1. [root@slave4 conf]# hdfs dfs -mkdir -p /user/hive/tmp
    2. [root@slave4 conf]# hdfs dfs -mkdir -p /user/hive/warehouse
    3. [root@slave4 conf]# hdfs dfs -chmod 777 /user/hive/tmp
    4. [root@slave4 conf]# hdfs dfs -chmod 777 /user/hive/warehouse
  4. 检查

image.png

3.3 修改配置文件

1、在apache-hive-3.1.2-bin/conf目录下进行以下操作。

  1. [root@slave4 conf]# touch hive-site.xml
  2. [root@slave4 conf]# cp hive-log4j2.properties.template hive-log4j2.properties
  3. [root@slave4 conf]# cp beeline-log4j2.properties.template beeline-log4j2.properties
  4. [root@slave4 conf]# cp hive-env.sh.template hive-env.sh

2、在/opt/module/apache-hive-3.1.2-bin目录下新建logs文件夹,用来存放运行日志。
3、修改配置文件
hive-log4j2.properties

  1. ....
  2. # 指定为第2步中的logs路径
  3. property.hive.log.dir = /opt/module/apache-hive-3.1.2-bin/logs
  4. ....

hive-env.sh

  1. # Set HADOOP_HOME to point to a specific hadoop install directory
  2. HADOOP_HOME=/opt/module/hadoop-3.2.1
  3. # Hive Configuration Directory can be controlled by:
  4. export HIVE_CONF_DIR=/opt/module/apache-hive-3.1.2-bin/conf
  5. # Folder containing extra libraries required for hive compilation/execution can be controlled by:
  6. export HIVE_AUX_JARS_PATH=/opt/module/apache-hive-3.1.2-bin/lib

hive-site.xml

  1. <?xml version="1.0" encoding="UTF-8" standalone="no"?>
  2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
  3. <configuration>
  4. <property>
  5. <name>hive.exec.scratchdir</name>
  6. <value>/user/hive/tmp</value>
  7. </property>
  8. <property>
  9. <name>hive.metastore.warehouse.dir</name>
  10. <value>/user/hive/warehouse</value>
  11. </property>
  12. <property>
  13. <name>hive.metastore.uris</name>
  14. <value>thrift://填入当前节点的hostname:9083</value>
  15. </property>
  16. <property>
  17. <name>javax.jdo.option.ConnectionDriverName</name>
  18. <value>com.mysql.jdbc.Driver</value>
  19. </property>
  20. <property>
  21. <name>javax.jdo.option.ConnectionURL</name>
  22. <value>jdbc:mysql://填入安装MySQL节点的hostname:填入MySQL端口/hive_3?createDatabaseIfNotExist=true&amp;useSSL=false</value>
  23. </property>
  24. <property>
  25. <name>javax.jdo.option.ConnectionUserName</name>
  26. <value>填入MySQL用户</value>
  27. </property>
  28. <property>
  29. <name>javax.jdo.option.ConnectionPassword</name>
  30. <value>填入MySQL密码</value>
  31. </property>
  32. <property>
  33. <name>hive.server2.thrift.bind.host</name>
  34. <value>填入当前节点的hostname</value>
  35. </property>
  36. <property>
  37. <name>hive.server2.thrift.port</name>
  38. <value>10000</value>
  39. </property>
  40. <property>
  41. <name>hive.metastore.event.db.notification.api.auth</name>
  42. <value>false</value>
  43. </property>
  44. <property>
  45. <name>hive.server2.active.passive.ha.enable</name>
  46. <value>true</value>
  47. </property>
  48. </configuration>

3.4 补充jar

  1. 添加MySQL驱动

将升级包中的MySQL驱动拷贝到/opt/module/apache-hive-3.1.2-bin/lib目录中。(不需要修改jar名称)

  1. 升级Guava

lib中自带Guava版本为guava-19.0.jar,需要升级。
将升级包中的guava-27.0-jre.jar拷贝到/opt/module/apache-hive-3.1.2-bin/lib目录中。同时删除/opt/module/apache-hive-3.1.2-bin/lib目录下的guava-19.0.jar包。(不需要修改jar名称)

4、启动

1、启动Metastore
进入/opt/module/apache-hive-3.1.2-bin/bin目录,执行以下命令

  1. schematool -dbType mysql -initSchema -verbose

2、启动metastore和hiveserver2
进入/opt/module/apache-hive-3.1.2-bin/bin目录,执行以下命令启动metastorehiveserver2

  1. [root@slave4 bin]# nohup ./hive --service metastore --hiveconf hive.log.file=metastore.log &>> metastore.log &
  2. [root@slave4 bin]# nohup ./hive --service hiveserver2 --hiveconf hive.log.file=hiveserver2.log &>> hiveserver2.log &

3、检查
执行jps -m查看本机JVM中是否有(名称为RunJar)metastore和(名称为RunJar)hiveserver2的Java进程。
image.png

5、附录