如何看hive中哪个队列比较闲
发布网友
发布时间:2022-04-26 00:43
我来回答
共2个回答
热心网友
时间:2022-04-13 18:39
解决方案
MapRece运行队列的指定是通过配置(Configuration)属性“maprece.job.queuename”指定的。
大家可能首先想到的是通过“set maprece.job.queuename=queueName”的方式来选取运行队列,这在手动任务(临时分析需求)的场景下是不可取的,如前所述,我们为这类似的任务专门分配了相应的队列资源“hive.temporary”,我们必须能够保证用户通过Beeline连接HiveServer2后提交的Hive SQL语句运行在指定的队列“hive.temporary”中,而且用户无法随意更改运行队列,即无法随意更改属性“maprece.job.queuename”。
目前HiveServer2使用的权限控制策略为SQL Standard Based Hive Authorization和Storage Based Authorization in the Metastore Server。其中SQL Standard Based Hive Authorization会对Hive终端命令“set”做出*:只能针对白名单(hive.security.authorization.sqlstd.confwhitelist)中列出的属性进行赋值。白名单默认包含一批属性,其中就包括“maprece.job.queuename”,我们需要通过配置文件hive-site.xml或者启动HiveServer2时通过参数“--hiveconf”设置白名单“hive.security.authorization.sqlstd.confwhitelist”的值,排除属性“maprece.job.queuename”,使得我们的用户通过Beeline连接至HiveServer2之后,无法随意更改“maprece.job.queuename”的值。
既然用户无法更改属性“maprece.job.queuename”,那么HiveServer2启动之后属性“maprece.job.queuename”必须具有一个默认值,即“hive.temporary”,这样用户通过Beeline连接HiveServer2之后提交的Hive SQL就会运行在队列“hive.temporary”中。那么,接下来的问题就是如果完成这个默认设定?
一般情况下,我们会这样认为,HiveServer2的运行至少涉及到两份配置文件:
(1)Hadoop:core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml
(2)Hive:hive-site.xml
这些配置文件中的属性值都会“打包”到MapRece任务的配置属性中去。我们自然会想到在mapred-site.xml或者hive-site.xml中指定“maprece.job.queuename”即可,然而实际验证之后发现情况并不是这样的。
(1)在hive-site.xml(mapred-site.xml)中指定“maprece.job.queuename”;
热心网友
时间:2022-04-13 19:57
时间戳是一个10位的整型数,没有小数的; 看你在什么地方使用了,如果是PHP中直接使用date("Y-m-d",hive);如果在Mysql中使用formart_date就可以直接转换