Hive设置参数-指定引擎-队列

本文详细介绍了Hive中改变环境变量的三种方法:通过修改配置文件hive-site.xml、命令行参数和在CLI中使用SET关键字。文章还解释了这些设定的优先级和如何覆盖默认配置。

文章转载:https://www.cnblogs.com/huangmr0811/p/5571001.html

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

方法一:
  在Hive中,所有的默认配置都在 H I V E H O M E / c o n f / h i v e − d e f a u l t . x m l 文 件 中 , 如 果 需 要 对 默 认 的 配 置 进 行 修 改 , 可 以 创 建 一 个 h i v e − s i t e . x m l 文 件 , 放 在 {HIVE_HOME}/conf/hive-default.xml文件中,如果需要对默认的配置进行修改,可以创建一个hive-site.xml文件,放在 HIVEHOME/conf/hivedefault.xmlhivesite.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标签里面可以存在多个标签。标签里面就是我们想要设定属性的名称;标签里面是我们想要设定的值;<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关键字设定参数,例如:

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
 
............................

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

### 回答1: Hive是一种基于Hadoop的数据仓库工具,可以利用Hive语言进行数据查询和分析。而"-e"选项是Hive命令行工具中的一个参数,用于指定需要执行的Hive查询语句。 通过使用"hive -e"命令,我们可以在命令行中直接执行Hive查询语句,而不需要进入Hive Shell环境。这个参数通常与其他参数一起使用,以提供执行查询所需的资源信息。 可以通过在"hive -e"后面跟着一条Hive查询语句来执行特定的查询。例如,我们可以使用以下命令执行查询: hive -e "SELECT * FROM my_table;" 在这个例子中,我们使用了-hive -e参数,并将查询语句"SELECT * FROM my_table;"作为参数传递给它。这样,Hive命令行工具将执行这个查询,并将结果显示在命令行中。 此外,"-e"参数还可以与其他参数一起使用,以提供执行查询所需的其他资源信息。例如,可以使用以下命令指定执行查询所需的资源队列hive -e "SELECT * FROM my_table;" -hiveconf mapred.job.queue.name=my_queue 在这个例子中,我们使用"-hiveconf"参数指定了一个名为"mapred.job.queue.name"的Hive配置参数,并将其值设置为"my_queue"。这将告诉Hive在执行查询时使用指定的资源队列。 总结来说,"-e"选项是Hive命令行工具中的一个参数,用于在命令行中执行Hive查询语句。它可以与其他参数一起使用,以指定执行查询所需的资源信息。 ### 回答2: 在Hive中,-e资源参数用于指定一个包含Hive查询的文件,并在Hive的命令行模式下执行这个查询。这个参数通常与-hiveconf参数一起使用。 使用-hiveconf参数可以设置Hive配置参数,例如设置Hive的数据仓库位置、Hive的日志级别、Hive执行引擎等。而使用-e参数可以直接传递一条Hive查询语句,这条查询语句可以是一个在文件中定义的查询语句。当在命令行输入"hive -e [查询语句文件路径]"时,Hive会读取该文件中的查询语句,并将其作为Hive的输入,执行相应的查询。 使用-e参数的好处是可以批量执行多个查询语句,而不需要每次都手动输入查询语句,提高了工作效率。另外,使用-e参数还可以将Hive查询与其他Shell命令结合起来,实现一些复杂的任务。 然而,使用-e参数也存在一些限制。首先,输入的查询语句必须放在一个文件中,并且该文件的路径必须正确指定。其次,查询语句文件中的查询语句必须是经过验证的,不会出现语法错误,否则整个执行过程可能会被中断。最后,由于-e参数是执行一次性的查询,因此它适合于一些简单、独立的查询任务,而对于复杂的查询任务,建议使用Hive的交互模式进行逐条输入和调试。 ### 回答3: 在Hive中,可以使用“-e”选项来指定Hive查询语句的执行方式和资源参数。该选项后面可以跟随一个包含Hive查询语句的字符串,并且可以在字符串中设置一些资源参数。 资源参数Hive中用于控制查询任务的资源分配,如CPU核数、内存大小等。通过设置资源参数,可以优化查询的执行性能,提高查询的效率。 常用的资源参数包括以下几个: 1. hive.server2.tez.default.queues:用于指定查询任务所使用的队列。可以根据不同的业务需求将查询任务分配到不同的队列中,以实现资源隔离和优先级控制。 2. tez.queue.name:指定任务运行时使用的队列名称。可以根据不同的场景和需求将任务分配到不同的队列中,以实现资源分配的灵活控制。 3. mapreduce.job.queuename:用于指定MapReduce作业运行时使用的队列。类似于前面的队列参数设置,可以将作业分配到不同的队列中以实现资源隔离。 4. hive.map.aggr:用于指定Map阶段是否使用聚合操作。当设置为true时,会在Map阶段进行聚合操作,可以减少数据量,提高执行效率。 5. hive.optimize.skewjoin:用于指定是否启用倾斜连接优化。当设置为true时,Hive会自动检测倾斜连接点,并对其进行优化,减少倾斜连接对整体性能的影响。 通过在Hive命令行中使用“-e”选项,可以方便地指定资源参数并执行Hive查询语句,以便更好地控制查询任务的执行方式和资源分配,提高查询性能和效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值