bash—在shell脚本变量中存储配置单元查询输出

wfsdck30  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(321)

当我试图通过shell脚本执行以下2个查询时,我无法回显输出:
查询:

close_val=`hive -e "select count(1) from tst_db.dim_calendar where calendar_id =20171102"`
close_val=$(hive -S -e "USE cars_dev; select count(1) from dim_calendar where calendar_id =20171103")

echo $close_val

错误:
2017-11-03 00:55:11505信息[main]配置.折旧(配置。java:warnonceifdeprecated(1011))-mapred.input.dir.recursive已弃用。相反,请使用mapreduce.input.fileinputformat.input.dir.recursive 2017-11-03 00:55:11508 info[main]configuration.deprevation(配置)。java:warnonceifdeprecated(1011))-不推荐使用mapred.max.split.size。相反,请使用mapreduce.input.fileinputformat.split.maxsize 2017-11-03 00:55:11508 info[main]configuration.deprevation(配置)。java:warnonceifdeprecated(1011))-不推荐使用mapred.min.split.size。相反,请使用mapreduce.input.fileinputformat.split.minsize 2017-11-03 00:55:11508 info[main]configuration.deprevation(配置)。java:warnonceifdeprecated(1011))-不推荐使用mapred.min.split.size.per.rack。相反,请使用mapreduce.input.fileinputformat.split.minsize.per.rack 2017-11-03 00:55:11508 info[main]configuration.deprevation(配置)。java:warnonceifdeprecated(1011))-不推荐使用mapred.min.split.size.per.node。相反,请使用mapreduce.input.fileinputformat.split.minsize.per.node 2017-11-03 00:55:11508 info[main]configuration.deprevation(配置)。java:warnonceifdeprecated(1011))-mapred.reduce.tasks已弃用。相反,请使用mapreduce.job.reduces 2017-11-03 00:55:11508 info[main]configuration.deprevation(配置)。java:warnonceifdeprecated(1011))-不推荐使用mapred.reduce.tasks.投机.execution。相反,请使用mapreduce.reduce.astical 2017-11-03 00:55:11715 warn[main]conf.hiveconf(hiveconf)。java:initialize(1155))-已弃用:配置属性hive.metastore.local不再有效。如果要连接到远程元存储,请确保为hive.metastore.uris提供有效值。1./run\u daily\u jobs\u night.sh:第42行:[:参数太多

mwg9r5ms

mwg9r5ms1#

我不确定您希望用close\val值做什么,但是在您的情况下,您似乎希望得到一个数字,但是在hive中似乎有一个问题,您得到了一个stacktrace。接收到的跟踪不是一个简单的字符串,而是被视为echo的多个参数,这些参数超过了它所处理的数目。
使用如下命令:

$ # Notice the cut at the end of the command
$ close_val=$(hive -S -e "USE cars_dev; select count(1) from dim_calendar where calendar_id =20171103" | cut -f 1)

将确保您的echo命令将工作,但这里您真正的问题是您的Hive命令失败

相关问题