1. 方式一【配置文件】
使用配置文件指定的配置是永久有效的,Hive 有以下三个可选的配置文件:
- hive-site.xml :Hive 的主要配置文件;
- hivemetastore-site.xml: 关于元数据的配置;
- hiveserver2-site.xml:关于 HiveServer2 的配置。
示例如下,在 hive-site.xml 配置 hive.exec.scratchdir 【这个目录是hdfs系统的】:
<property>
<name>hive.exec.scratchdir</name>
<value>/tmp/hive/test/hive_scratch</value>
<description>Scratch space for Hive jobs</description>
</property>
2. 方式二【命令行启动时 --hiveconf】
在启动命令行 (Hive CLI / Beeline) 的时候使用 --hiveconf 指定配置,这种方式指定的配置作用于整个 Session。
hive --hiveconf hive.exec.scratchdir=/tmp/hive/test/hive_scratch
3. 方式三【命令行启动后 set】
在交互式环境下 (Hive CLI / Beeline),使用 set 命令指定。这种设置的作用范围也是 Session级别的,配置对于执行该命令后的所有命令生效。set 兼具设置参数和查看参数的功能。如下:
set hive.exec.mode.local.auto = true;
# 可以在交互模式下使用 set; 查询 hive 全部的配置信息
hive> set hive.exec.mode.local.auto;
hive.exec.mode.local.auto=true
set 命令也可写进自定义配置文件,启动时使用 -i 指定配置文件即可,作用范围是一样的,配置参数比较多的情况可以采用这种方式,测试文件 hive-init.conf 的内容如下:
# hive.exec.mode.local.auto 默认值为 false 这里设置为 true 代表开启本地模式
set hive.exec.mode.local.auto = true;
# 使用 -i 可以在进入交互模式之前运行初始化脚本 相当于指定配置文件启动
[root@tcloud ~]# hive -i /home/hive/testFile/hive_init.conf;
4. 配置优先级
# 配置的优先顺序如下 (由低到高)【类似与前端样式的就近原则】:
hive-site.xml -> hivemetastore-site.xml -> hiveserver2-site.xml -> --hiveconf -> set
5. 可配置参数
Hive 可选的配置参数非常多,在用到时查阅官方文档即可 AdminManual Configuration 根据需要进行设置。