Hive CLI客户端
- $HIVE_HOME/bin/hive是第一代客户端,主要功能有两个:
- 交互式或批处理模式运行Hive查询。
- hive相关服务的启动,比如metastore服务。
- 可以通过"hive -H"或"hive --help"来查看命令行选项。
Batch Mode批处理模式
- 当使用-e或-f选项运行bin/hive时,它将以批处理模式执行SQL命令。
- 批处理可以理解为一次性执行,执行完毕退出。
- 例:
$HIVE_HOME/bin/hive -e 'show databases'
vim hive.sql
SHOW databases;
$HIVE_HOME/bin/hive -f /root/hive.sql
$HIVE_HOME/bin/hive -f hdfs://<namenode>:<port>/hive-script.sql
$HIVE_HOME/bin/hive -f s3://mys3bucket/s3-script.sql
$HIVE_HOME/bin/hive -i /home/my/hive-init.sql
$HIVE_HOME/bin/hive -S -e'SELECT * FROM dbname.table_name'> a.txt
Interactive Shell 交互式模式
- 可以理解为客户端和hive服务一直保持连接,除非手动退出客户端。
/export/server/hive/bin/hive
hive> SHOW databases;
hive>exit;
启动Hive服务
- 启动metastore服务和hiveserver2服务
$HIVE_HOME/bin/hive --hiveconf hive.root.logger=DEBUG,console
$HIVE_HOME/bin/hive --service meastore
$HIVE_HOME/bin/hive --service hiveserver2
Beeline CLI客户端
- 和第一代客户端相比性能和安全性都更高
- 可以在嵌入式模式和远程模式下工作
- 命令目录:
/export/server/hive/bin/beeline
beeline> ! connect jdbc:hive2://node1:10000
HIVE参数配置
- Hive配置属性是在HiveConf.Java类中管理的,可以参考文件以获取当前使用版本中可用的配置属性列表;
- Hive0.14开始,会从HiveConf.Java类中直接生成配置模板文件hive-default.xml.template;
配置hive-site.xml
- 在$HIVE_HOME/conf路径下,需要自己添加hive-site.xml文件,把需要定义修改的配置属性添加进去。
- 这个配置文件会影响到基于这个Hive安装包的任何一种服务启动、客户端使用方式。
使用–hiveconf命令行参数
- 这种方式会在整个会话的session中有效
- 例:(通过hiveconf参数修改日志级别)
$HIVE_HOME/bin/hive --hiveconf hive.root.logger=DEBUG,console
使用SET命令
- 为set命令后的所有SQL语句配置参数,是会话级别的
- 在日常开发中使用最多
- set命令可以满足谁需要、谁配置、谁使用的思想,避免影响其他用户