使用元数据访问的方式连接Hive
- 在hive-site.xml文件中添加如下配置
<!-- 指定存储元数据要连接的地址 -->
<property>
<name>hive.metastore.uris</name>
<value>thrift://ip:9083</value>
</property>
启动metastore
hive --service metastore
注意:启动后窗口不能再操作,需要打开一个新的shell窗口启动hive
bin/hive
使用JDBC方式访问Hive
- 在hive-site.xml文件中添加如下配置
<!-- 指定hiveserver2连接的host -->
<property>
<name>hive.server2.thrift.bind.host</name>
<value>ip</value>
</property>
<!-- 指定hiveserver2连接的端口号 -->
<property>
<name>hive.server2.thrift.port</name>
<value>10000</value>
</property>
启动hiveserver2
bin/hive --service hiveserver2
启动beeline客户端
bin/beeline -u jdbc:hive2://ip:10000 -n test
-
看到如下界面
Hive常用交互命令
-e 不进入hive的交互窗口执行SQL语句
bin/hive -e "select id from student"
-f 执行脚本中的SQL语句
(1)在/opt/module/hive下创建datas目录并在datas目录下创建hivef.sql文件
touch hivef.sql
(2)文件中写入正确的SQL语句
select id from student
(3)执行文件中的SQL语句
bin/hive -f /opt/module/hive/datas/hivef.sql
Hive其他操作命令
- 退出hive窗口
exit
quit
在hive cli命令窗口中如何查看hdfs文件系统
dfs -ls /;
查看在hive中输入的所有历史命令
(1)进入到当前用户的根目录
(2)查看.hivehistory文件
cat .hivehistory
Hive常见属性配置
Hive运行日志信息配置
- Hive的log默认存放在/tmp/root/hive.log目录下
- 修改hive的log存放日志到/opt/module/hive/logs
(1)修改/opt/module/hive/conf/hive-log4j2.properties.template文件名称为hive-log4j2.properties
(2)在hive-log4j2.properties文件中修改log存放位置
hive.log.dir=/opt/module/hive/logs
打印当前库和表头
在hive-site.xml中假如如下配置
<property>
<name>hive.cli.print.header</name>
<value>true</value>
</property>
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
</property>
参数配置方式
- 查看当前所有的配置信息
set
- 参数的配置三种方式
(1)配置文件方式
默认配置文件:hive-default.xml
用户自定义配置文件:hive-site.xml
注意:用户自定义配置会覆盖默认配置。另外,Hive也会读入Hadoop的配置,因为Hive是作为Hadoop的客户端启动的,Hive的配置会覆盖Hadoop的配置。配置文件的设定对本机启动的所有Hive进程都有效
(2)命令行参数方式
启动Hive是,可以再命令行添加-hiveconf param=value来设定参数
例:
bin/hive -hiveconf mapred.reduce.tasks=10
注:仅对本次hive启动有效
(3)参数声明方式
可以再HQL中使用SET关键字设定参数
例:
set mapred.reduce.tasks=100;
上述设定方式的优先级一次递增。即配置文件<命令行参数<参数声明。注意某些系统级的参数,例如log4j相关的设定,必须用前两种方式设定,因为那些参数的读取在会话建立以前已经完成了