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的配置运行及表的基本操作。
  • zythy
  • zythy
  • 2014年01月26日 16:26
  • 12245

hive常用属性设置

hive常用属性设置 1、Hive数据仓库位置配置 (配置文件为/conf/hive-site.xml ) hive表中的数据,存储在hdfs上的位置 默认值:/user/hive/wareho...

hive命令参数

$HIVE_HOME/bin/hive是一个shell工具,它可以用来运行于交互或者批处理方式配置单元查询,语法如下: 1. -i filename 执行脚本文件filename,会在终端上...

hbase shell 简单使用

hing@hing-host:~/hbase-0.90.3/bin$ ./start-hbase.sh  starting master, logging to /home/hing/hbase-0...

Hadoop+HBase完全分布式安装

记录下完全分布式HBase数据库安装步骤准备3台机器:10.202.7.191 / 10.202.7.139 / 10.202.9.89所需准备的Jar包: jdk-7u65-linux-x64.ta...

HttpURLConnection post set params 设置请求参数的三种方法

/** * set params one way OutputStream */ byte[] bytesParams ...

向Hive程序传递变量的三种方法

图 1 外部向Hive程序中传递变量的方法 使用Hive编写程序最常用的方法是将Hive语句写到文件中,然后使用hive -f filename.hql来批量执行查询语句。经常需要将外部参数...

Hive几种参数配置方法

Hive提供三种可以改变环境变量的方法,分别是:(1)、修改${HIVE_HOME}/conf/hive-site.xml配置文件;(2)、命令行参数;(3)、在已经进入cli时进行参数声明。下面分别...
  • LW_GHY
  • LW_GHY
  • 2016年05月21日 12:00
  • 269

在Simulink中对S 函数进行参数传递的三种方法

1)之前在调程序的时候,用的都是S函数来进行编写的,但是因为需要对不同的系数 设置不同的值,然后看仿真的结果。一开始仿真的时候只会在S函数的文件中修改相应变量的值,每次都要在几个文件中修改四五个值,然...

Struts2中action接收参数的三种方法及ModelDriven跟Preparable接口结合JAVA反射机制的灵活用法

Struts2中action接收参数的三种方法及ModelDriven和Preparable接口结合JAVA反射机制的灵活用法  Struts2中Action接收参数的方法主要有以下三种:  ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Hive设置参数的三种方法
举报原因:
原因补充:

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