Hive几种参数配置方法

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的格式如下:

<configuration>
    <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>/user/hive/warehouse</value>
        <description>location of 
              default database for the warehouse</description>
    </property>
</configuration>

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

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

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

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

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

hive> set mapreduce.job.queuename=queue1;

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

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

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

hive> set;
datanucleus.autoCreateSchema=true
datanucleus.autoStartMechanismMode=checked
datanucleus.cache.level2=false
datanucleus.cache.level2.type=none
datanucleus.connectionPoolingType=DBCP
datanucleus.identifierFactory=datanucleus
datanucleus.plugin.pluginRegistryBundleCheck=LOG
datanucleus.storeManagerType=rdbms
datanucleus.transactionIsolation=read-committed
datanucleus.validateColumns=false
datanucleus.validateConstraints=false
datanucleus.validateTables=false

............................

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

   注意:某些系统级的参数,例如log4j相关的设定,必须用前两种方式设定,因为那些参数的读取在会话建立以前已经完成了。所以在HQL中设定是无效的。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Hive 是一个基于 Hadoop 的数据仓库系统,能够处理大规模的结构化数据。在 Hive 中使用自定义函数或者存储过程时,常常需要通过加载 jar 包来实现。以下三种方式是常用的 Hive 加载 jar 包的方式。 1. 添加 Hive AUX JARS 在 hive-site.xml 或者 hive-config.sh 中,通过配置 hive.aux.jars.path=xxxx 指定 jar 包存储的路径,最终将 jar 包添加到 Hadoop 的 ClassPath 中。当 Hive 运行需要加载 jar 包的任务时,就会从 ClassPath 中加载 jar 包,避免手动指定 JAR 文件。 2. ADD JAR 命令 使用 ADD JAR 命令将 jar 包添加到 Hive 会话中,可以通过全路径、本地路径或 Hadoop HDFS 路径来指定。例如 ADD JAR hdfs:///example/hive/hive-test.jar; 3. 使用命令行参数 启动 Hive 命令时,可以通过指定 –hiveconf hive.aux.jars.path=xxxx 指定 JAR 文件的路径,启动 Hive 命令同时就会将 JAR 文件加入到 ClassPath 中。 总之,在使用 Hive时,要根据实际情况选择合适的方式加载 JAR 包,避免出现错误。 ### 回答2: 在Hive中加载jar包有多种方式,以下列举其中三种: 1. 添加hive自定义类路径 在hive-site.xml文件中,将Hive的自定义类路径hive.aux.jars.path设置成需要加载的jar包所在路径,即可将jar包加入Hive的classpath中,方便调用自定义函数等操作。示例: <property> <name>hive.aux.jars.path</name> <value>/path/to/jar1:/path/to/jar2</value> </property> 2. 使用ADD JAR命令 在Hive的交互式终端或执行脚本时,使用ADD JAR命令将需要加载的jar包添加到Hive的classpath中。该命令会将jar包复制到Hive的临时文件夹中,可以通过system:java.io.tmpdir查看该路径。示例: ADD JAR /path/to/jar1; ADD JAR /path/to/jar2; 3. 在创建自定义函数时指定jar包路径 在创建自定义函数时,可以将需要加载的jar包路径直接指定到函数的CLASSPATH选项中。示例: CREATE TEMPORARY FUNCTION my_func AS 'com.package.MyFunc' USING JAR '/path/to/jar1'; 以上三种方式中,第一种和第二种可以将jar包持久地添加到Hive的classpath中,方便后续多个脚本或交互式终端使用;第三种方式则适用于只在当前会话使用自定义函数的情况。 ### 回答3: Hive 是一个基于 Hadoop 的数据仓库工具,它可以将结构化的数据以 SQL 的方式进行查询和分析。在 Hive 中,用户可以使用自定义的 UDF(用户定义函数),以扩展 Hive 的功能。 说到加载 Jar 包,Hive 有以下几种方式: 1. ADD JAR:通过 ADD JAR 命令将本地路径的 Jar 包加载到 Hive 中。 例如: ADD JAR /usr/local/hive/UDF/hive-udf.jar; 2. ADD ARCHIVE:通过 ADD ARCHIVE 命令将一个包含多个 Jar 包的 tar.gz 归档文件加载到 Hive 中。 例如: ADD ARCHIVE /usr/local/hive/UDF/hive-udf.tar.gz; 3. 在 Hive 配置文件中添加 Jar 包路径:在 Hive配置文件中,添加 Jar 包所在的路径,如下: hive.aux.jars.path=file:///usr/local/hive/UDF/hive-udf.jar 4. 使用命令行选项 "-hiveconf":在启动 Hive 前,使用 -hiveconf 命令行选项指定 Jar 包路径。 例如: $ hive -hiveconf hive.aux.jars.path=file:///usr/local/hive/UDF/hive-udf.jar 以上是 Hive 加载 Jar 包的几种方式,根据不同的需求,选择合适的方式即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值