Hive DynamoDB上的蜂巢作业没有进展

Hive DynamoDB上的蜂巢作业没有进展,hive,amazon-dynamodb,Hive,Amazon Dynamodb,我在DynamoDB数据库中有大约35gb2200万行的web点击数据。我可以通过按键很好地提取数据。我现在正试图使用Hive来计算这些数据的聚合,但即使是最基本的东西也无法正常工作 我的DynamoDB设置为读取吞吐量为40。我的EMR是用一个m1.small主机和三个m1.large内核设置的。我在Hive中执行以下操作: SET dynamodb.throughput.read.percent=1.0; CREATE EXTERNAL TABLE AntebellumHive (user

我在DynamoDB数据库中有大约35gb2200万行的web点击数据。我可以通过按键很好地提取数据。我现在正试图使用Hive来计算这些数据的聚合,但即使是最基本的东西也无法正常工作

我的DynamoDB设置为读取吞吐量为40。我的EMR是用一个m1.small主机和三个m1.large内核设置的。我在Hive中执行以下操作:

SET dynamodb.throughput.read.percent=1.0;

CREATE EXTERNAL TABLE AntebellumHive (user_id string, session_time string, page_count string, custom_os string)
STORED BY 'org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler' 
TBLPROPERTIES ("dynamodb.table.name" = "AntebellumClickstream", 
"dynamodb.column.mapping" = "user_id:user_id,session_time:session_time,page_count:x-page-count,custom_os:x-custom-os"); 

select count(*)
from AntebellumHive
WHERE session_time > "2012/08/14 11:48:00.210 -0400"
  AND session_time < "2012/08/14 12:48:00.210 -0400";
因此,我映射了四列,包括user_id键和session_time range字段,以及其他两个内容。然后我试着计算一小时数据中的行数,应该是几百行

以下是输出:

Total MapReduce jobs = 1
Launching Job 1 out of 1
Number of reduce tasks determined at compile time: 1
In order to change the average load for a reducer (in bytes):
  set hive.exec.reducers.bytes.per.reducer=<number>
In order to limit the maximum number of reducers:
  set hive.exec.reducers.max=<number>
In order to set a constant number of reducers:
  set mapred.reduce.tasks=<number>
Starting Job = job_201212031719_0002, Tracking URL = http://ip-xxxxx.ec2.internal:9100/jobdetails.jsp?jobid=job_201212031719_0002
Kill Command = /home/hadoop/bin/hadoop job  -Dmapred.job.tracker=x.x.x.x:9001 -kill job_201212031719_0002
Hadoop job information for Stage-1: number of mappers: 1; number of reducers: 1
2012-12-03 19:13:58,988 Stage-1 map = 0%,  reduce = 0%
2012-12-03 19:14:59,415 Stage-1 map = 0%,  reduce = 0%, Cumulative CPU 4.5 sec
2012-12-03 19:15:00,423 Stage-1 map = 0%,  reduce = 0%, Cumulative CPU 4.5 sec
2012-12-03 19:15:01,435 Stage-1 map = 0%,  reduce = 0%, Cumulative CPU 4.5 sec
2012-12-03 19:15:02,441 Stage-1 map = 0%,  reduce = 0%, Cumulative CPU 4.5 sec
2012-12-03 19:15:04,227 Stage-1 map = 0%,  reduce = 0%, Cumulative CPU 4.5 sec
2012-12-03 19:15:05,233 Stage-1 map = 0%,  reduce = 0%, Cumulative CPU 4.5 sec
2012-12-03 19:15:06,255 Stage-1 map = 0%,  reduce = 0%, Cumulative CPU 4.5 sec
2012-12-03 19:15:07,263 Stage-1 map = 0%,  reduce = 0%, Cumulative CPU 4.5 sec
2012-12-03 19:15:08,269 Stage-1 map = 0%,  reduce = 0%, Cumulative CPU 4.5 sec
2012-12-03 19:15:09,275 Stage-1 map = 0%,  reduce = 0%, Cumulative CPU 4.5 sec
2012-12-03 19:15:10,290 Stage-1 map = 0%,  reduce = 0%, Cumulative CPU 4.5 sec
2012-12-03 19:15:11,296 Stage-1 map = 0%,  reduce = 0%, Cumulative CPU 4.5 sec
蒙面IP。每隔一分钟左右,我就有一秒钟的CPU时间,但是map%从零开始就不会增加,即使在20分钟或更长的时间之后,它也永远不会完成。我完全可以在Dynamo和EMR的监控图中看到发生的事情


我做错了什么?谢谢

如果我正确地阅读了您的文章,您有35 GB的数据,并且您正在尝试使用40读取IOPS读取数据。 对于一次扫描,40 IOPS大致转换为40 KBPS。这意味着完成查询大约需要254小时

一个或多个映射程序完成处理后,配置单元将更新查询百分比。由于创建的每个映射器可能需要很长时间才能运行,所以很快您将看不到配置单元更新

您可以在主节点上登录到Hadoop UI并查看Hadoop统计信息。它将向您显示各个映射任务的状态以及有关数据读取的一些统计信息。请参阅以下文件:


http://docs.amazonwebservices.com/ElasticMapReduce/latest/DeveloperGuide/UsingtheHadoopUserInterface.html

如果我正确地阅读了您的文章,您有35 GB的数据,并且您正在尝试使用40读取IOPS读取数据。 对于一次扫描,40 IOPS大致转换为40 KBPS。这意味着完成查询大约需要254小时

一个或多个映射程序完成处理后,配置单元将更新查询百分比。由于创建的每个映射器可能需要很长时间才能运行,所以很快您将看不到配置单元更新

您可以在主节点上登录到Hadoop UI并查看Hadoop统计信息。它将向您显示各个映射任务的状态以及有关数据读取的一些统计信息。请参阅以下文件:


http://docs.amazonwebservices.com/ElasticMapReduce/latest/DeveloperGuide/UsingtheHadoopUserInterface.html

啊,谢谢。这是DynamoDB文档中没有的信息类型,甚至是关于备份的信息。那么,我应该期望将IOPS提高到4000左右才能导出这些数据吗?是否有一些关于这方面的最佳实践文档我还没有找到?啊,谢谢。这是DynamoDB文档中没有的信息类型,甚至是关于备份的信息。那么,我应该期望将IOPS提高到4000左右才能导出这些数据吗?是否有一些最佳实践文档我还没有找到?