当前位置:   article > 正文

Hive安装部署

Hive安装部署

目录

hive-env.sh配置

hive-site.xml配置

初始化元数据库

Hive环境变量配置

启动Hive


Hive是一个构建于Hadoop之上的一个数据仓库工具,其底层存储使用的HDFS,能够将结构化的数据映射成表,并提供SQL能力,这些SQL可以转化成MapReduce执行,用户只用写SQL就能够分析大规模数据,大大简化了MapReduce的使用难度,减少了开发周期。

Hive一般只用部署Metastore和HiveServer2进程,Metastore底层依赖关系型数据作为元数据库(一般选择MySQL或者PostgreSQL),本次部署采用Apache Hive 3.1.2版本,默认以root用户进行操作,将Hive的两个进程部署在master机器上。

hive-env.sh配置

在master机器上下载或者上传Apache Hive 3.1.2安装包,解压至合适的目录,将解压后得到的目录作为HIVE_HOME目录。

修改${HIVE_HOME}/conf/hive-env.sh文件,修改内容如下:

  1. # 设置Hive使用的Java
  2. export JAVA_HOME=/opt/jdk-8u301
  3. # 设置Hive依赖的Hadoop安装目录
  4. export HADOOP_HOME=/opt/hadoop-3.2.2
  5. # Hive Metastore服务的JVM参数配置
  6. if [ "$SERVICE" = "metastore" ]; then
  7. if [ -z "$DEBUG" ]; then
  8. export HIVE_METASTORE_HADOOP_OPTS=" -XX:+PrintCommandLineFlags -Xms2g -Xmx2g -XX:+UseParNewGC -XX:-UseGCOverheadLimit -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=128M -Xloggc:/data/hive/logs/gc-metastore.log"
  9. else
  10. export HIVE_METASTORE_HADOOP_OPTS=" -XX:+PrintCommandLineFlags -Xms2g -Xmx2g -XX:+UseParNewGC -XX:-UseGCOverheadLimit -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=128M -Xloggc:/data/hive/logs/gc-metastore.log"
  11. fi
  12. export HADOOP_CLIENT_OPTS=" -Xmx2g -Xss512k $HADOOP_CLIENT_OPTS"
  13. fi
  14. # Hive HiveServer2服务的JVM参数配置
  15. if [ "$SERVICE" = "hiveserver2" ]; then
  16. if [ -z "$DEBUG" ]; then
  17. export HIVE_SERVER2_HADOOP_OPTS="$HADOOP_OPTS -XX:+PrintCommandLineFlags -Xms2g -Xmx2g -XX:+UseParNewGC -XX:-UseGCOverheadLimit -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=128M -Xloggc:/data/hive/logs/gc-hiveserver2.log"
  18. else
  19. export HIVE_SERVER2_HADOOPO_PTS="$HADOOP_OPTS -XX:+PrintCommandLineFlags -Xms2g -Xmx2g -XX:+UseParNewGC -XX:-UseGCOverheadLimit -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=128M -Xloggc:/data/hive/logs/gc-hiveserver2.log"
  20. fi
  21. export HADOOP_CLIENT_OPTS=" -Xmx2g -Xss512k $HADOOP_CLIENT_OPTS"
  22. fi

hive-site.xml配置

修改${HIVE_HOME}/conf/hive-site.xml文件,修改内容如下:

  1. <configuration>
  2. <property>
  3. <name>hive.metastore.uris</name>
  4. <value>thrift://master:9083</value>
  5. <description>Hive元数据服务uri配置</description>
  6. </property>
  7. <property>
  8. <name>hive.server2.thrift.port</name>
  9. <value>10000</value>
  10. <description>Hive thrift服务端口配置</description>
  11. </property>
  12. <property>
  13. <name>hive.server2.thrift.bind.host</name>
  14. <value>master</value>
  15. <description>Hive thrift服务绑定机器配置</description>
  16. </property>
  17. <property>
  18. <name>hive.exec.scratchdir</name>
  19. <value>/hive/tmp</value>
  20. <description>Hive临时文件目录配置,HDFS目录</description>
  21. </property>
  22. <property>
  23. <name>hive.metastore.warehouse.dir</name>
  24. <value>/hive/data</value>
  25. <description>Hive数据存储目录配置,HDFS目录</description>
  26. </property>
  27. <property>
  28. <name>hive.querylog.location</name>
  29. <value>/data/hive/logs</value>
  30. <description>Hive查询日志目录,本地目录</description>
  31. </property>
  32. <property>
  33. <name>javax.jdo.option.ConnectionURL</name>
  34. <value>jdbc:mysql://master:3306/hivemeta?createDatabaseIfNotExist=true&amp;characterEncoding=UTF-8&amp;useSSL=false</value>
  35. <description>Hive元数据库连接串</description>
  36. </property>
  37. <property>
  38. <name>javax.jdo.option.ConnectionDriverName</name>
  39. <value>com.mysql.cj.jdbc.Driver</value>
  40. <description>Hive元数据库驱动类</description>
  41. </property>
  42. <property>
  43. <name>javax.jdo.option.ConnectionUserName</name>
  44. <value>root</value>
  45. <description>Hive元数据库用户名</description>
  46. </property>
  47. <property>
  48. <name>javax.jdo.option.ConnectionPassword</name>
  49. <value>123456</value>
  50. <description>Hive元数据库用户密码</description>
  51. </property>
  52. </configuration>

初始化元数据库

首次安装部署Hive时需要进行元数据库的初始化操作,命令如下:

  1. # 将MySQL驱动jar文件加入${HIVE_HOME}/lib目录
  2. # 拷贝或软连接${HADOOP_HOME}/etc/hadoop目录下的core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml到${HIVE_HOME}/conf目录下
  3. # 推荐使用软连接的方式
  4. # 在${HIVE_HOME}/bin目录下执行以下命令
  5. ./schematool -dbType mysql -initSchema

执行以上命令时,可能会遇到因为Hive和Hadoop使用的guava包不兼容导致初始化失败,异常摘要如下所示:

  1. Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V
  2. # 解决方法
  3. # 备份${HIVE_HOME}/lib目录下的guava包
  4. # 拷贝${HADOOP_HOME}/share/hadoop/common/lib目录下的guava包到${HIVE_HOME}/lib目录下
  5. # 重新执行初始化命令

Hive环境变量配置

在master机器上修改/etc/profile文件,追加如下内容:

  1. export HIVE_HOME=/opt/hive-3.1.2
  2. export PATH=${HIVE_HOME}/bin:$PATH
  3. # 保存退出后,执行以下命令使环境变量生效
  4. source /etc/profile

启动Hive

完成元数据库初始化之后,可以启动并简单测试Hive,命令如下:

  1. # 后台启动Metastore进程
  2. # 该命令同时指定了Metastore进程的日志文件
  3. nohup hive --service metastore >> /data/hive/log/metastore.log 2>&1 &
  4. # 后台启动HiveServer2进程
  5. # 该命令同时指定了HiveServer2进程的日志文件
  6. nohup hive --service hiveserver2 >> /data/hive/log/hiveserver2.log 2>&1 &
  7. # 上面两个命令所指定的日志文件不会自动回滚,不能删除或重命名日志文件
  8. # 目前我是通过定时脚本,定期清空日志文件的内容
  9. # 希望有大佬可以指点一下,该如何去配置Metastore和HiveServer2的日志文件
  10. # 推荐使用${HIVE_HOME}/bin/beeline工具连接Hive
  11. # beeline连接上Hive之后,就可以像使用MySQL一样使用Hive了,大部分命令都兼容
  12. beeline -u jdbc:hive2://master:10000 -n root
  13. # 退出beeline
  14. !quit

在使用beeline连接Hive时可能会出现报错,异常摘要信息如下:

Error: Could not open client transport with JDBC Uri: jdbc:hive2://master:10000: Failed to open new session: java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: root is not allowed to impersonate anonymous (state=08S01,code=0)

需要在Hadoop的core-site.xml中加入如下内容:

  1.     <property>
  2.         <name>hadoop.proxyuser.root.hosts</name>
  3.         <value>*</value>
  4.     </property>
  5.     <property>
  6.         <name>hadoop.proxyuser.root.groups</name>
  7.         <value>*</value>
  8.     </property>

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/570126
推荐阅读
相关标签
  

闽ICP备14008679号