当前位置:   article > 正文

Hive基础知识(五):Hive 配置 JDBC方式访问_hive jdbc

hive jdbc

1)在 hive-site.xml 文件中添加如下配置信息

  1. <!--指定 hiveserver2 连接的 host -->
  2. <property>
  3. <name>hive.server2.thrift.bind.host</name>
  4. <value>hadoop100</value>
  5. </property>
  6. <!--指定 hiveserver2 连接的端口号-->
  7. <property>
  8. <name>hive.server2.thrift.port</name>
  9. <value>10000</value>
  10. </property>

2)启动 hiveserver2

[zzdq@hadoop100 hive]$ bin/hive --service hiveserver2

配置hadoop中的core-site.xml文件,允许hive访问

  1. <!--配置访问hadoop的权限,能够让hive访问到-->
  2. <property>
  3. <name>hadoop.proxyuser.atguigu.hosts</name>
  4. <value>*</value>
  5. </property>
  6. <property>
  7. <name>hadoop.proxyuser.atguigu.groups</name>
  8. <value>*</value>
  9. </property>

配置完成之后,需要重启整个hadoop集群。

3)启动 beeline 客户端(需要多等待一会)

 bin/beeline -u jdbc:hive2://hadoop100:10000 -n zzdq

4)看到如下界面

  1. [zzdq@hadoop100 hive]$ bin/beeline -u jdbc:hive2://hadoop100:10000 -n zzdq
  2. SLF4J: Class path contains multiple SLF4J bindings.
  3. SLF4J: Found binding in [jar:file:/opt/module/hive/lib/log4j-slf4j-impl-2.10.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
  4. SLF4J: Found binding in [jar:file:/opt/module/hadoop-3.1.3/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
  5. SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
  6. SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
  7. Connecting to jdbc:hive2://hadoop100:10000
  8. Connected to: Apache Hive (version 3.1.2)
  9. Driver: Hive JDBC (version 3.1.2)
  10. Transaction isolation: TRANSACTION_REPEATABLE_READ
  11. Beeline version 3.1.2 by Apache Hive
  12. 0: jdbc:hive2://hadoop100:10000>

5)编写 hive 服务启动脚本(了解)

(1)前台启动的方式导致需要打开多个 shell 窗口,可以使用如下方式后台方式启动

  1. nohup: 放在命令开头,表示不挂起,也就是关闭终端进程也继续保持运行状态
  2. /dev/null:是 Linux 文件系统中的一个文件,被称为黑洞,所有写入改文件的内容都会被自动丢弃
  3. 2>&1 : 表示将错误重定向到标准输出上
  4. &: 放在命令结尾,表示后台运行

一般会组合使用: nohup [xxx 命令操作]> file 2>&1 &,表示将 xxx 命令运行的结果输出到 file 中,并保持命令启动的进程在后台运行。

如上命令不要求掌握。

  1. [zzdq@hadoop202 hive]$ nohup hive --service metastore 2>&1 &
  2. [zzdq@hadoop202 hive]$ nohup hive --service hiveserver2 2>&1 &

(2)为了方便使用,可以直接编写脚本来管理服务的启动和关闭

[zzdq@hadoop102 hive]$ vim $HIVE_HOME/bin/hiveservices.sh 

内容如下:此脚本的编写不要求掌握。直接拿来使用即可。

  1. #!/bin/bash
  2. HIVE_LOG_DIR=$HIVE_HOME/logs
  3. if [ !-d $HIVE_LOG_DIR ]
  4. then
  5. mkdir -p $HIVE_LOG_DIR
  6. fi
  7. #检查进程是否运行正常,参数1 为进程名,参数2 为进程端口
  8. function check_process()
  9. {
  10. pid=$(ps -ef 2>/dev/null | grep -v grep | grep -i $1 | awk '{print $2}')
  11. ppid=$(netstat -nltp 2>/dev/null | grep $2 | awk '{print $7}'| cut -d '/'-f 1)
  12. echo $pid
  13. [[ "$pid"=~"$ppid"]]&&[ "$ppid"]&& return 0 || return 1
  14. }
  15. function hive_start()
  16. {
  17. metapid=$(check_process HiveMetastore 9083)
  18. cmd="nohup hive --service metastore >$HIVE_LOG_DIR/metastore.log 2>&1 &"
  19. [ -z "$metapid"]&& eval $cmd || echo "Metastroe 服务已启动"
  20. server2pid=$(check_process HiveServer2 10000)
  21. cmd="nohup hiveserver2 >$HIVE_LOG_DIR/hiveServer2.log 2>&1 &"
  22. [ -z "$server2pid"]&& eval $cmd || echo "HiveServer2 服务已启动"
  23. }
  24. function hive_stop()
  25. {
  26. metapid=$(check_process HiveMetastore 9083)
  27. [ "$metapid"]&& kill $metapid || echo "Metastore 服务未启动"
  28. server2pid=$(check_process HiveServer2 10000)
  29. [ "$server2pid"]&& kill $server2pid || echo "HiveServer2 服务未启动"
  30. }
  31. case $1 in
  32. "start")
  33. hive_start
  34. ;;
  35. "stop")
  36. hive_stop
  37. ;;
  38. "restart")
  39. hive_stop
  40. sleep 2
  41. hive_start
  42. ;;
  43. "status")
  44. check_process HiveMetastore 9083 >/dev/null && echo "Metastore 服务运行正常"|| echo "Metastore 服务运行异常"
  45. check_process HiveServer2 10000 >/dev/null && echo "HiveServer2 服务运行正常"|| echo "HiveServer2 服务运行异常"
  46. ;;
  47. *)
  48. echo Invalid Args!
  49. echo 'Usage: '$(basename $0)' start|stop|restart|status'
  50. ;;
  51. esac
3)添加执行权限

[zzdq@hadoop100 hive]$ chmod +x $HIVE_HOME/bin/hiveservices.sh 

4)启动 Hive 后台服务

  1. [zzdq@hadoop100 hive]$ hiveservices.sh start
  2. Metastroe 服务已启动
  3. HiveServer2 服务已启动

查看状态

  1. [zzdq@hadoop100 hive]$ hiveservices.sh status
  2. Metastore 服务运行正常
  3. HiveServer2 服务运行正常

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

闽ICP备14008679号