常见的3种Hive参数配置方法

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

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

[java]

  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来设定参数,例如:

[java]

  1. [wyp@l-datalog5.data.cn1 ~]$ hive --hiveconf mapreduce.job.queuename=queue1  

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

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

[java]

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

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

[java]

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

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

[java]

  1. hive> set;  
  2. datanucleus.autoCreateSchema=true
  3. datanucleus.autoStartMechanismMode=checked  
  4. datanucleus.cache.level2=false
  5. datanucleus.cache.level2.type=none  
  6. datanucleus.connectionPoolingType=DBCP  
  7. datanucleus.identifierFactory=datanucleus  
  8. datanucleus.plugin.pluginRegistryBundleCheck=LOG  
  9. datanucleus.storeManagerType=rdbms  
  10. datanucleus.transactionIsolation=read-committed  
  11. datanucleus.validateColumns=false
  12. datanucleus.validateConstraints=false
  13. datanucleus.validateTables=false
  14. ............................  

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

注意:某些系统级的参数,例如log4j相关的设定,必须用前两种方式设定,因为那些参数的读取在会话建立以前已经完成了。所以在HQL中设定是无效的。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏运维

CentOS 5至CentOS 5.8 YUM 源

本源是http://mirrors.163.com的,也可用http://centos.ustc.edu.cn/的,

1.1K20
来自专栏拂晓风起

如何查看IIS的80端口被占用?

13440
来自专栏Hadoop实操

如何在CDH中使用HBase的ACLs进行授权

37240
来自专栏Hadoop实操

如何在Windows Server2008搭建DNS服务并配置泛域名解析

有了DNS服务,对于一个CDH集群的所有节点的hostname和ip,您就再也不需要手动维护各个节点的hosts文件。另外DNS服务对于在CDH上安装或集成Ke...

56450
来自专栏破晓之歌

Redis安装和初步使用 原

获取安装包:https://github.com/MSOpenTech/redis

25420
来自专栏Spark学习技巧

重磅:如何玩转kylin

1, kylin是什么?为什么需要? Apache Kylin™是一个开源的分布式分析引擎,提供Hadoop之上的SQL查询接口及多维分析(OLAP)能力以支持...

40150
来自专栏java架构师

Hadoop总结篇之四---底层通信是怎么做到的

上一篇介绍了一个job的提交过程。期间多次提到通信协议。那么协议是什么? 协议其实就是通信的双方所遵守的一套规范,这套规范规定了通信时传输的数据的固定的格式。 ...

36960
来自专栏PHP在线

MySQL 主从复制的原理和配置

主从复制的原理: 分为同步复制和异步复制,实际复制架构中大部分为异步复制。 复制的基本过程如下: 1).Slave上面的IO进程连接上Master,并请求从指定...

347120
来自专栏云计算教程系列

如何使用Ubuntu 16.04的Django一键安装镜像

Django是一个用于快速开发Web应用程序的高级Python框架。Django一键安装程序通过Django,Nginx,Gunicorn和Postgres为您...

19250
来自专栏网络

CobaltStrike团体服务器部署并后台运行

大家好,我是你们的老朋友Alex。Cobaltstrike的部署安装很简单,但是在实际使用中出现了问题。我把团队服务器放在ECS上,出现了两个问题:1.客户端无...

36060

扫码关注云+社区

领取腾讯云代金券