Hive 基础知识 04 Hive 属性配置的三种方式及配置的优先级说明

434 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第30天,点击查看活动详情

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 根据需要进行设置。