Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop s3distcp在显示100%后挂起_Hadoop_Amazon S3_Hdfs_Amazon Emr - Fatal编程技术网

Hadoop s3distcp在显示100%后挂起

Hadoop s3distcp在显示100%后挂起,hadoop,amazon-s3,hdfs,amazon-emr,Hadoop,Amazon S3,Hdfs,Amazon Emr,为了尝试使用AmazonEMR,我尝试使用s3distcp将文件从S3复制到我的EMR集群进行本地处理。作为第一个测试,我从一个目录复制了一天的数据,2160个文件,使用--groupBy选项将它们折叠成一个(或几个)文件 作业似乎运行得很好,向我显示map/reduce进展到100%,但此时进程挂起,再也没有回来。我怎么知道发生了什么事 源文件是存储在S3中的压缩文本文件,每个文件大约30kb。这是一个普通的amazonemr集群,我正在主节点的shell中运行s3distcp hadoop@

为了尝试使用AmazonEMR,我尝试使用
s3distcp
将文件从S3复制到我的EMR集群进行本地处理。作为第一个测试,我从一个目录复制了一天的数据,2160个文件,使用
--groupBy
选项将它们折叠成一个(或几个)文件

作业似乎运行得很好,向我显示map/reduce进展到100%,但此时进程挂起,再也没有回来。我怎么知道发生了什么事

源文件是存储在S3中的压缩文本文件,每个文件大约30kb。这是一个普通的amazonemr集群,我正在主节点的shell中运行s3distcp

hadoop@ip-xxx:~$ hadoop jar /home/hadoop/lib/emr-s3distcp-1.0.jar --src s3n://xxx/click/20140520 --dest hdfs:////data/click/20140520 --groupBy ".*(20140520).*" --outputCodec lzo
14/05/21 20:06:32 INFO s3distcp.S3DistCp: Running with args: [Ljava.lang.String;@26f3bbad
14/05/21 20:06:35 INFO s3distcp.S3DistCp: Using output path 'hdfs:/tmp/9f423c59-ec3a-465e-8632-ae449d45411a/output'
14/05/21 20:06:35 INFO s3distcp.S3DistCp: GET http://169.254.169.254/latest/meta-data/placement/availability-zone result: us-west-2b
14/05/21 20:06:35 INFO s3distcp.S3DistCp: Created AmazonS3Client with conf KeyId AKIAJ5KT6QSV666K6KHA
14/05/21 20:06:37 INFO s3distcp.FileInfoListing: Opening new file: hdfs:/tmp/9f423c59-ec3a-465e-8632-ae449d45411a/files/1
14/05/21 20:06:38 INFO s3distcp.S3DistCp: Created 1 files to copy 2160 files
14/05/21 20:06:38 INFO mapred.JobClient: Default number of map tasks: null
14/05/21 20:06:38 INFO mapred.JobClient: Setting default number of map tasks based on cluster size to : 72
14/05/21 20:06:38 INFO mapred.JobClient: Default number of reduce tasks: 3
14/05/21 20:06:39 INFO security.ShellBasedUnixGroupsMapping: add hadoop to shell userGroupsCache
14/05/21 20:06:39 INFO mapred.JobClient: Setting group to hadoop
14/05/21 20:06:39 INFO mapred.FileInputFormat: Total input paths to process : 1
14/05/21 20:06:39 INFO mapred.JobClient: Running job: job_201405211343_0031
14/05/21 20:06:40 INFO mapred.JobClient:  map 0% reduce 0%
14/05/21 20:06:53 INFO mapred.JobClient:  map 1% reduce 0%
14/05/21 20:06:56 INFO mapred.JobClient:  map 4% reduce 0%
14/05/21 20:06:59 INFO mapred.JobClient:  map 36% reduce 0%
14/05/21 20:07:00 INFO mapred.JobClient:  map 44% reduce 0%
14/05/21 20:07:02 INFO mapred.JobClient:  map 54% reduce 0%
14/05/21 20:07:05 INFO mapred.JobClient:  map 86% reduce 0%
14/05/21 20:07:06 INFO mapred.JobClient:  map 94% reduce 0%
14/05/21 20:07:08 INFO mapred.JobClient:  map 100% reduce 10%
14/05/21 20:07:11 INFO mapred.JobClient:  map 100% reduce 19%
14/05/21 20:07:14 INFO mapred.JobClient:  map 100% reduce 27%
14/05/21 20:07:17 INFO mapred.JobClient:  map 100% reduce 29%
14/05/21 20:07:20 INFO mapred.JobClient:  map 100% reduce 100%
[hangs here]
工作内容如下:

hadoop@xxx:~$ hadoop job -list
1 job currently running
JobId   State   StartTime       UserName        Priority        SchedulingInfo
job_201405211343_0031   1       1400702799339   hadoop  NORMAL  NA
目标HDFS目录中没有任何内容:

hadoop@xxx:~$ hadoop dfs -ls /data/click/

有什么想法吗?

hadoop@ip-xxx:~$hadoop-jar/home/hadoop/lib/emr-s3distcp-1.0.jar--src s3n://xxx/click/20140520**/**--desthdfs:////data/click/20140520**/**--groupBy.“(20140520)。”--outputCodec lzo


我面临着类似的问题。我只需要在目录的末尾加一个斜杠。因此,它完成了,并且统计数据显示,prev it挂起在100%

使用s3://而不是s3n


hadoop jar/home/hadoop/lib/emr-s3distcp-1.0.jar--src s3://xxx/click/20140520--desthdfs:////data/click/20140520 --groupBy.“(20140520)。--outputCodec lzo

提供索引lzo压缩(在运行hadoop作业时可以分成多个部分)?您确定它永远不会返回,或者它只是快速地完成第一个桶,然后将剩余的桶永远拿走?这就是我注意到的。