我有一个Pig脚本(使用稍微修改过的MultiStorage )来转换一些数据。 脚本运行后,我在HDFS上有以下格式的数据:

/tmp/data/identifier1/indentifier1-0,0001  
/tmp/data/identifier1/indentifier1-0,0002  
/tmp/data/identifier2/indentifier2-0,0001  
/tmp/data/identifier3/indentifier3-0,0001

我正在尝试使用S3DistCp将这些文件复制到S3。 我使用--groupBy .*(identifier[0-9]).*选项根据标识符组合文件。 组合有效,但复制到S3时,文件夹也会被复制。 最终输出是:

/s3bucket/identifier1/identifier1
/s3bucket/identifier2/identifier2
/s3bucket/identifier3/identifier3

有没有办法在没有第一个文件夹的情况下复制这些文件? 理想情况下,我在S3中的输出看起来像:

/s3bucket/identifier1
/s3bucket/identifier2
/s3bucket/identifier3

我考虑过的另一个解决方案是在复制到S3之前使用HDFS命令将这些文件从其目录中拉出。 这是合理的解决方案吗?

谢谢!

#1楼 票数:3 已采纳

我遇到的解决方案是在使用distcp之前使用s3distcp将这些文件从目录中s3distcp

hadoop distcp -update /tmp/data/** /tmp/grouped

然后,我更改了s3distcp脚本,将数据从/tmp/grouped s3distcp移动到我的S3存储桶中。

#2楼 票数:0

使用distcps3distcp真的很贵。 另一个选择是创建一个包含所有文件的清单文件,并将其路径提供给s3distcp 在此清单中,您可以定义每个文件的“基本名称”。 如果您需要清单文件的示例,只需在带有参数--outputManifest任何文件夹上运行s3distcp 更多信息可以在这里找到

  ask by NolanDC translate from so

未解决问题?本站智能推荐:

3回复

如何将文件从S3复制到Amazon EMR HDFS?

我在EMR上运行配置单元,需要将一些文件复制到所有EMR实例。 我理解的一种方法是将文件复制到每个节点上的本地文件系统,另一种方法是将文件复制到HDFS但是我还没有找到一种简单的方法将stright从S3复制到HDFS。 最好的方法是什么?
2回复

从s3复制到hdfs时缓慢的s3Distcp

我正在使用s3disctcp将31,16,886个文件(300 GB)从S3复制到HDFS,花了4天时间才复制10,48,576个文件。我找不到工作,需要了解如何减少这个时间或者我在做什么错误。 它在AWS EMR机器上。
1回复

使用Amazon S3存储桶输入和输出在Amazon EMR上运行自定义JAR给出错误(文件系统错误)

我正在尝试使用自定义JAR的输入和输出参数作为S3存储桶在Amazon EMR集群上运行自定义JAR( -input s3n://s3_bucket_name/ldas/in -output s3n://s3_bucket_name/ldas/out ) 当群集运行此自定义JAR时,会发生
3回复

将文件从s3://复制到本地文件系统

我是aws新手。 我创建了一个集群,并将其切入主节点。 当我尝试使用以下命令将文件从s3:// my-bucket-name /复制到pig的本地file:// home / hadoop文件夹中时: 我得到错误: 2013-06-08 18:59:00,267 [main
2回复

S3DistCp按文件夹分组

我正在尝试使用S3DistCp来解决Hadoop中的小文件问题。 它工作正常,但输出有点烦人。 我正在处理的文件路径如下: 并且该文件夹中可以有多个文件。 我想按文件夹名称分组,所以我在s3distcp中使用以下group by参数: 它会对文件进行分组,但结果仍会导致多个
2回复

将s3distcp与Amazon EMR一起使用以复制单个文件

我想使用s3distcp将一个文件复制到HDFS。 我已经尝试使用srcPattern参数,但它没有帮助,它继续抛出java.lang.Runtime异常。 我正在使用的正则表达式可能是罪魁祸首,请帮忙。 我的代码如下: 抛出异常:
2回复

map-reduce如何在HDFS和S3上运行?

我一直试图了解在HDFS和S3上执行map-reduce作业的方式有多么不同。 有人可以解答我的问题: 通常,HDFS集群不仅面向存储,还包含执行MR作业的功能; 这就是为什么作业被映射到几个数据节点上并且减少了几个。 确切地说,映射(过滤器等)在本地对数据完成,而减少(聚合)在公共
4回复

使用s3distcp将文件从amazon s3复制到hdfs失败

我正在尝试使用EMR中的工作流将文件从s3复制到hdfs,当我运行以下命令时,作业流程成功启动但在尝试将文件复制到HDFS时出现错误。我是否需要设置任何输入文件权限? 命令: ./elastic-mapreduce --jobflow j-35D6JOYEDCELA --jar s3