Hive设置参数的三种方法

转载 2015年11月19日 13:14:30

Hive提供三种可以改变环境变量的方法,分别是:(1)、修改${HIVE_HOME}/conf/hive-site.xml配置文件;(2)、命令行参数;(3)、在已经进入cli时进行参数声明。下面分别来介绍这几种设定。

  方法一:
  在Hive中,所有的默认配置都在${HIVE_HOME}/conf/hive-default.xml文件中,如果需要对默认的配置进行修改,可以创建一个hive-site.xml文件,放在${HIVE_HOME}/conf目录下。里面可以对一些配置进行个性化设定。在hive-site.xml的格式如下:

1 <configuration>
2     <property>
3         <name>hive.metastore.warehouse.dir</name>
4         <value>/user/hive/warehouse</value>
5         <description>location of
6               default database for the warehouse</description>
7     </property>
8 </configuration>

  所有的配置都是放在<configuration></configuration>标签之间,一个configuration标签里面可以存在多个<property></property>标签。<name>标签里面就是我们想要设定属性的名称;<value>标签里面是我们想要设定的值;<description;<标签是描述在这个属性的,可以不写。绝大多少配置都是在xml文件里面配置的,因为在这里做的配置都全局用户都生效,而且是永久的。用户自定义配置会覆盖默认配置。另外,Hive也会读入Hadoop的配置,因为Hive是作为Hadoop的客户端启动的,Hive的配置会覆盖Hadoop的配置。

  方法二:
  在启动Hive cli的时候进行配置,可以在命令行添加-hiveconf param=value来设定参数,例如:

1 [wyp@master ~]$ hive --hiveconf mapreduce.job.queuename=queue1

这样在Hive中所有MapReduce作业都提交到队列queue1中。这一设定对本次启动的会话有效,下次启动需要重新配置。

  方法三:
  在已经进入cli时进行参数声明,可以在HQL中使用SET关键字设定参数,例如:

1 hive> set mapreduce.job.queuename=queue1;

这样也能达到方法二的效果。这种配置也是对本次启动的会话有效,下次启动需要重新配置。在HQL中使用SET关键字还可以查看配置的值,如下:

1 hive> set mapreduce.job.queuename;
2 mapreduce.job.queuename=queue1

我们可以得到mapreduce.job.queuename=queue1。如果set后面什么都不添加,这样可以查到Hive的所有属性配置,如下:

01 hive> set;
02 datanucleus.autoCreateSchema=true
03 datanucleus.autoStartMechanismMode=checked
04 datanucleus.cache.level2=false
05 datanucleus.cache.level2.type=none
06 datanucleus.connectionPoolingType=DBCP
07 datanucleus.identifierFactory=datanucleus
08 datanucleus.plugin.pluginRegistryBundleCheck=LOG
09 datanucleus.storeManagerType=rdbms
10 datanucleus.transactionIsolation=read-committed
11 datanucleus.validateColumns=false
12 datanucleus.validateConstraints=false
13 datanucleus.validateTables=false
14  
15 ............................

  上述三种设定方式的优先级依次递增。即参数声明覆盖命令行参数,命令行参数覆盖配置文件设定。

  注意:某些系统级的参数,例如log4j相关的设定,必须用前两种方式设定,因为那些参数的读取在会话建立以前已经完成了。所以在HQL中设定是无效的。这个特列可以参见本博客《Hive日志调试》进行了解。

Hive几种参数配置方法

写在前面的话,学Hive这么久了,发现目前国内还没有一本完整的介绍Hive的书籍,而且互联网上面的资料很乱,于是我决定写一些关于《Hive的那些事》序列文章,分享给大家。我会在接下来的时间整理有关Hi...
  • w397090770
  • w397090770
  • 2014年01月10日 10:13
  • 9062

Hive优化以及参数配置

Hive优化 hive.optimize.cp=true:列裁剪 hive.optimize.prunner:分区裁剪 hive.limit.optimize.enable=true...
  • shujuwangzi
  • shujuwangzi
  • 2015年04月22日 11:43
  • 2276

Hive常用优化参数

常用调优测试语句 :   ①显示当前hive环境的参数值: set 参数名; 如:   ②设置hive当前环境的参数值,但仅对本次连接有效 set 参数名 = 值; 如: h...
  • q412774506
  • q412774506
  • 2015年07月22日 09:55
  • 2018

hive配置参数的说明:

hive配置参数的说明:   hive.ddl.output.format:hive的ddl语句的输出格式,默认是text,纯文本,还有json格式,这个是0.90以后才出的新配置; hive.e...
  • oracle8090
  • oracle8090
  • 2017年01月04日 10:07
  • 385

hive 参数配置

1,hive.exec.parallel参数: 功能:同一个sql中的不同的job是否可以同时运行 默认为false:...
  • luyee2010
  • luyee2010
  • 2013年07月17日 21:31
  • 3002

设定Hive参数

开发Hive应用时,不可避免地需要设定Hive的参数。设定Hive的参数可以调优HQL代码的执行效率,或帮助定位问题。然而实践中经常遇到的一个问题是,为什么设定的参数没有起作用?这通常是错误的设定方式...
  • wisgood
  • wisgood
  • 2013年12月27日 14:26
  • 652

hive 配置参数说明

hive.exec.mode.local.auto 决定 Hive 是否应该自动地根据输入文件大小,在本地运行(在GateWay运行) true hive.exe...
  • xfg0218
  • xfg0218
  • 2017年03月11日 15:03
  • 427

hive的三种部署方式

hive的三种部署方式
  • NDKHBWH
  • NDKHBWH
  • 2017年04月20日 15:48
  • 296

hive三种访问方式

1.命令行客户端访问。
  • a1a2a3a4
  • a1a2a3a4
  • 2014年11月01日 10:36
  • 310

Hive设置参数的三种方法

Hive提供三种可以改变环境变量的方法,分别是:(1)、修改${HIVE_HOME}/conf/hive-site.xml配置文件;(2)、命令行参数;(3)、在已经进入cli时进行参数声明。下面分别...
  • huangjin0507
  • huangjin0507
  • 2015年11月19日 13:14
  • 523
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Hive设置参数的三种方法
举报原因:
原因补充:

(最多只允许输入30个字)