gpt4 book ai didi

hadoop - 配置单元未通过 “where”子句运行Map Reduce

转载 作者:可可西里 更新时间:2023-11-01 16:31:11 25 4
gpt4 key购买 nike

我正在Hive的HDFS上尝试一些简单的方法。
问题是当我运行“where子句”时查询未在运行map减少。但是,它为count(*)甚至map by子句运行map reduce。

以下是数据和查询结果:

创建外部表:
创建外部表testtab1(
ID STRING,组织STRING)
行格式定界
以“,”结尾的字段
存储为文本文件
位置'/ usr / ankuchak / testtable1';

简单选择*查询:

0:jdbc:hive2://>从testtab1选择*;

15/07/01 07:32:46 [main]:错误hdfs.KeyProviderCache:找不到具有密钥[dfs.encryption.key.provider.uri]的uri创建keyProvider!

+ --------------- + --------------- +-+

| testtab1.id | testtab1.org |

+ --------------- + --------------- +-+

|安库尔| IDC |

|用户| IDC |

|其他人| ssi |

+ --------------- + --------------- +-+

已选择3行(2.169秒)

计数(*)查询

0:jdbc:hive2://>从testtab1中选择count(*);

查询ID = ankuchak_20150701073407_e7fd66ae-8812-4e02-87d7-492f81781d15
职位总数= 1
启动工作1之1
编译时确定的reduce任务数:1
为了更改 reducer 的平均负载(以字节为单位):
设置hive.exec.reducers.bytes.per.reducer =
为了限制 reducer 的最大数量:
设置hive.exec.reducers.max =
为了设置恒定数量的 reducer :
设置mapreduce.job.reduces =
15/07/01 07:34:08 [HiveServer2-Background-Pool:Thread-40]:错误mr.ExecDriver:毛线
15/07/01 07:34:08 [HiveServer2-Background-Pool:线程40]:WARN mapreduce.JobResourceUploader:Hadoop命令行选项解析未执行。实现Tool接口(interface)并使用ToolRunner执行您的应用程序以对此进行纠正。
开始的工作= job_1435425589664_0005,跟踪网址= http://slc02khv:8088/proxy/application_1435425589664_0005/
杀死命令= / scratch / hadoop / hadoop / bin / hadoop作业-kill作业_1435425589664_0005
第1阶段的Hadoop作业信息:映射器数量:1; reducer 数量:1
15/07/01 07:34:16 [HiveServer2-Background-Pool:线程40]:警告mapreduce。计数器:组org.apache.hadoop.mapred.Task $ Counter已过时。请改用org.apache.hadoop.mapreduce.TaskCounter
2015-07-01 07:34:16,291第1阶段映射= 0%,减少= 0%
2015-07-01 07:34:23,831第1阶段映射= 100%,减少= 0%,累计CPU 1.04秒
2015-07-01 07:34:30,102第1阶段映射= 100%,减少= 100%,累计CPU 2.41秒
MapReduce累计CPU总时间:2秒410毫秒
结束的工作= job_1435425589664_0005
MapReduce作业启动:
阶段1:映射:1减少:1累积CPU:2.41秒HDFS读取:6607 HDFS写入:2成功
MapReduce花费的总CPU时间:2秒410毫秒


+ ------ +-+

| _c0 |

+ ------ +-+

| 3 |

+ ------ +-+

已选择1行(23.527秒)

按查询分组:

0:jdbc:hive2://>从org的testtab1组中选​​择org,count(id);

查询ID = ankuchak_20150701073540_5f20df4e-0bd4-4e18-b065-44c2688ce21f
职位总数= 1
启动工作1之1
未指定的缩减任务数。根据输入数据大小估算:1
为了更改 reducer 的平均负载(以字节为单位):
设置hive.exec.reducers.bytes.per.reducer =
为了限制 reducer 的最大数量:
设置hive.exec.reducers.max =
为了设置恒定数量的 reducer :
设置mapreduce.job.reduces =
15/07/01 07:35:40 [HiveServer2-Background-Pool:Thread-63]:错误mr.ExecDriver:毛线
15/07/01 07:35:41 [HiveServer2-Background-Pool:线程63]:WARN mapreduce.JobResourceUploader:Hadoop命令行选项解析未执行。实现Tool接口(interface)并使用ToolRunner执行您的应用程序以对此进行纠正。
开始工作= job_1435425589664_0006,跟踪URL = http://slc02khv:8088/proxy/application_1435425589664_0006/
杀死命令= / scratch / hadoop / hadoop / bin / hadoop作业-kill作业_1435425589664_0006
第1阶段的Hadoop作业信息:映射器数量:1; reducer 数量:1
15/07/01 07:35:47 [HiveServer2-Background-Pool:线程63]:警告mapreduce。计数器:组org.apache.hadoop.mapred.Task $ Counter已过时。请改用org.apache.hadoop.mapreduce.TaskCounter
2015-07-01 07:35:47,200第1阶段 map = 0%,减少= 0%
2015-07-01 07:35:53,494第1阶段映射= 100%,减少= 0%,累计CPU 1.05秒
2015-07-01 07:36:00,799第1阶段映射= 100%,减少= 100%,累积CPU 2.53秒
MapReduce累计CPU总时间:2秒530毫秒
结束的工作= job_1435425589664_0006
MapReduce作业启动:
阶段1:映射:1减少:1累积CPU:2.53秒HDFS读取:7278 HDFS写入:14成功
MapReduce花费的总CPU时间:2秒530毫秒


+ ------- + ------ +-+

|组织| _c1 |

+ ------- + ------ +-+

| IDC | 2 |

| ssi | 1 |

+ ------- + ------ +-+

已选择2行(21.187秒)

现在,简单的where子句:

0:jdbc:hive2://>从testtab1选择*其中org ='idc';



+ -------------- + --------------- +-+

| testtab1.id | testtab1.org |

+ -------------- + --------------- +-+

+ -------------- + --------------- +-+

未选择任何行(0.11秒)

如果您能为我提供一些指导,那将是很棒的。
如果您需要这方面的进一步信息,请告诉我。

问候,
安库尔

最佳答案

您最近的查询中正在发生 map 作业。因此,并不是 map 缩小没有发生。但是,应在您的上一个查询中返回一些行。这里的罪魁祸首是由于某种原因,它找不到值“idc”的匹配项。检查表并确保Ankur和user的组包含字符串idc。

尝试此操作以查看是否获得任何结果:

Select * from testtab1 where org rlike '.*(idc).*';

要么
Select * from testtab1 where org like '%idc%';

这些将获取具有包含字符串'idc'的值的任何行。祝好运!

关于hadoop - 配置单元未通过 “where”子句运行Map Reduce,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31164526/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com