我在hdfs的Hive里尝试一些简单的东西。问题是当我运行“where子句”时,查询没有运行map reduce。但是,它运行map reduce for count(),甚至group by子句。
以下是数据和查询结果:
创建外部表:创建外部表testtab1(id string,org string)行格式分隔字段,以“,”结尾,存储为textfile location'/usr/ankuchak/testtable1';
简单选择查询:
0: jdbc:hive2://>从testtab1中选择*;
15/07/01 07:32:46[main]:错误hdfs.keyprovidercache:找不到密钥为[dfs.encryption.key.provider.uri]的uri以创建密钥提供程序!!好的+
14条答案
按热度按时间falq053o1#
----+
f3temu5u2#
Map作业正在上次查询中发生。所以这并不是说MapReduce没有发生。但是,在上一次查询中应该返回一些行。可能的罪魁祸首是,出于某种原因,它没有找到一个匹配的价值“idc”。检查表并确保ankur和user的组包含字符串idc。
试试这个,看看你是否得到任何结果:
或
它们将获取包含字符串“idc”的值的任何行。祝你好运!
ltskdhd13#
-----+
ilmyapht4#
----+
wrrgggsh5#
-----+--+
|安库| idc|
|用户| idc|
|其他人| ssi|
+
xggvc2p66#
-----+
bhmjp9jg7#
-----+--+
未选择行(0.11秒)
如果你能给我一些建议就太好了。如果您需要这方面的进一步信息,请告诉我。
你好,安科
gzszwxb48#
-----+--+
+
06odsfpq9#
这里,详细介绍了最近修复的同一个错误。尝试验证您正在使用的版本
iecba09b10#
----+
jecbmhm311#
-----+
yqhsw0fo12#
-----+--+
选择3行(2.169秒)
计数()查询
0: jdbc:hive2://>从testtab1中选择count();
query id=ankuchak\u 20150701073407\u e7fd66ae-8812-4e02-87d7-492f81781d15 total jobs=1启动作业1共1个编译时确定的reduce任务数:1为了更改reducer的平均负载(以字节为单位):set hive.exec.reducers.bytes.per.reducer=为了限制reducer的最大数量:set hive.exec.reducers.max=in设置常量还原程序的顺序:set mapreduce.job.reduces=15/07/01 07:34:08[hiveserver2后台池:thread-40]:error mr.execdriver:thread 15/07/01 07:34:08[hiveserver2后台池:thread-40]:warn mapreduce.jobresourceuploader:未执行hadoop命令行选项分析。实现工具接口并使用toolrunner执行应用程序以解决此问题。起始作业=作业\u 1435425589664 \u 0005,跟踪url=http://slc02khv:8088/proxy/application\u 143542589664\u 0005/kill command=/scratch/hadoop/hadoop/bin/hadoop job-kill job\u 143542589664\u 0005 stage-1的hadoop作业信息:Map程序数:1;缩减器的数量:1 15/07/01 07:34:16[hiveserver2后台池:thread-40]:warn mapreduce.counters:group org.apache.hadoop.mapred.task$counter已弃用。使用org.apache.hadoop.mapreduce.taskcounter代替2015-07-01 07:34:16291 stage-1 map=0%,reduce=0%2015-07-01 07:34:23831 stage-1 map=100%,reduce=0%,累计cpu 1.04秒2015-07-01 07:34:30102 stage-1 map=100%,reduce=100%,累计cpu 2.41秒mapreduce累计cpu总时间:2秒410毫秒结束作业=作业\u 143542589664 \u 0005启动的mapreduce作业:阶段1:Map:1减少:1累计cpu:2.41秒hdfs读取:6607 hdfs写入:2成功mapreduce cpu总时间:2秒410毫秒正常
+------+--+
|第0页|
+------+--+
| 3 |
+------+--+
选择1行(23.527秒)
按查询分组:
0: jdbc:hive2://>选择组织,从testtab1按组织分组计数(id);
query id=ankuchak\u 20150701073540\u 5f20df4e-0bd4-4e18-b065-44c2688ce21f total jobs=1启动作业1(共1个未指定reduce任务数)。根据输入数据大小估计:1为了更改缩减器的平均负载(以字节为单位):设置hive.exec.reducers.bytes.per.reducer=为了限制缩减器的最大数量:设置hive.exec.reducers.max=为了设置固定的缩减器数量:set mapreduce.job.reduces=15/07/01 07:35:40[hiveserver2后台池:thread-63]:错误mr.execdriver:yarn 15/07/01 07:35:41[hiveserver2后台池:thread-63]:warn mapreduce.jobresourceuploader:未执行hadoop命令行选项分析。实现工具接口并使用toolrunner执行应用程序以解决此问题。开始作业=作业\u 1435425589664 \u 0006,跟踪url=http://slc02khv:8088/proxy/application\u 143542589664\u 0006/kill command=/scratch/hadoop/hadoop/bin/hadoop job-kill job\u 143542589664\u 0006 stage-1的hadoop作业信息:Map程序数:1;缩减器数量:1 15/07/01 07:35:47[hiveserver2后台池:thread-63]:warn mapreduce.counters:group org.apache.hadoop.mapred.task$counter已弃用。使用org.apache.hadoop.mapreduce.taskcounter代替2015-07-01 07:35:47200 stage-1 map=0%,reduce=0%2015-07-01 07:35:53494 stage-1 map=100%,reduce=0%,累计cpu 1.05秒2015-07-01 07:36:00799 stage-1 map=100%,reduce=100%,累计cpu 2.53秒mapreduce累计cpu总时间:2秒530毫秒结束作业=作业\u 143542589664 \u 0006启动的mapreduce作业:阶段1:Map:1减少:1累计cpu:2.53秒hdfs读取:7278 hdfs写入:14成功mapreduce cpu总时间:2秒530毫秒正常
+-------+------+--+
|组织| | c1|
+-------+------+--+
|数据中心2|
|ssi | 1级|
+-------+------+--+
选择2行(21.187秒)
现在简单的where子句:
0: jdbc:hive2://>从testtab1中选择*其中org='idc';
好 啊
+
f8rj6qna13#
-----+--+
|testtab1.id | testtab1.org|
+
hsgswve414#
-----+--+
|testtab1.id | testtab1.org|
+