本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
S3 DistCp 实用程序与早期AMI版本的 Amazon 的区别 EMR
亚马逊支持DistCp 的 S3 版本 EMR
Amazon DistCp 版本支持以下 S3 EMR AMI 版本。1.0.7 之后的 S3 DistCp 版本可以直接在集群上找到。使用JAR中的/home/hadoop/lib
获取最新功能。
版本 | 描述 | 发行日期 |
---|---|---|
1.0.8 | 添加 --appendToLastFile 、--requirePreviousManifest 和 --storageClass 选项。 |
2014 年 1 月 3 日 |
1.0.7 | 添加了 --s3ServerSideEncryption 选项。 |
2013 年 5 月 2 日 |
1.0.6 | 添加了 --s3Endpoint 选项。 |
2012 年 8 月 6 日 |
1.0.5 | 提高了指定要运行哪个 S3 DistCp 版本的能力。 | 2012 年 6 月 27 日 |
1.0.4 | 改进了 --deleteOnSuccess 选项。 |
2012 年 6 月 19 日 |
1.0.3 | 添加了对于 --numberFiles 和 --startingIndex 选项的支持。 |
2012 年 6 月 12 日 |
1.0.2 | 使用组时改进了文件命名。 | 2012 年 6 月 6 日 |
1.0.1 | S3 的初始版本DistCp。 | 2012 年 1 月 19 日 |
向集群添加 S3 DistCp 复制步骤
要向正在运行的集群添加 S3 DistCp 复制步骤,请键入以下命令,替换 j-3GYXXXXXX9IOK
使用您的集群 ID,然后替换 amzn-s3-demo-bucket
使用您的 Amazon S3 存储桶名称。
注意
为了便于读取,包含 Linux 行继续符 (\)。它们可以通过 Linux 命令删除或使用。对于 Windows,请将它们删除或替换为脱字号 (^)。
aws emr add-steps --cluster-id
j-3GYXXXXXX9IOK
\ --steps Type=CUSTOM_JAR
,Name="S3DistCp step"
,Jar=/home/hadoop/lib/emr-s3distcp-1.0.jar
,\ Args=["--s3Endpoint
,s3-eu-west-1.amazonaws.com
",\ "--src
,s3://amzn-s3-demo-bucket/logs/j-3GYXXXXXX9IOJ/node/
",\ "--dest
,hdfs:///output
",\ "--srcPattern
,.*[a-zA-Z,]+
"]
例 将 Amazon CloudFront 日志加载到 HDFS
此示例HDFS通过向正在运行的集群添加步骤来加载 Amazon CloudFront 日志。在此过程中,它将压缩格式从 Gzip( CloudFront默认)更改为。LZO这很有用,因为使用压缩的数据LZO可以在解压缩时分成多个地图,因此您不必像使用 Gzip 那样等到压缩完成。当您使用 Amazon 分析数据时,这样可以提高性能EMR。此示例还通过以下方式提高性能:使用在 --groupBy
选项中指定的正则表达式,将给定小时内的所有日志组合成为单个文件。与处理许多 GZIP 压缩的小文件相比,Amazon EMR 集群在处理少量大型LZO压缩文件时效率更高。要拆分LZO文件,必须对其进行索引并使用 hadoop-lzo 第三方库。
要将 Amazon CloudFront 日志加载到HDFS,请键入以下命令,替换 j-3GYXXXXXX9IOK
使用您的集群 ID,然后替换 amzn-s3-demo-bucket
使用您的 Amazon S3 存储桶名称。
注意
为了便于读取,包含 Linux 行继续符 (\)。它们可以通过 Linux 命令删除或使用。对于 Windows,请将它们删除或替换为脱字号 (^)。
aws emr add-steps --cluster-id
j-3GYXXXXXX9IOK
\ --steps Type=CUSTOM_JAR
,Name="S3DistCp step"
,Jar=/home/hadoop/lib/emr-s3distcp-1.0.jar
,\ Args=["--src
,s3://amzn-s3-demo-bucket/cf
","--dest
,hdfs:///local
",\ "--groupBy
,.*XABCD12345678.([0-9]+-[0-9]+-[0-9]+-[0-9]+).*
",\ "--targetSize
,128
", "--outputCodec
,lzo
","--deleteOnSuccess
"]
假设前面的示例是在以下 CloudFront 日志文件上运行的。
s3://amzn-s3-demo-bucket1/cf/XABCD12345678.2012-02-23-01.HLUS3JKx.gz s3://amzn-s3-demo-bucket1/cf/XABCD12345678.2012-02-23-01.I9CNAZrg.gz s3://amzn-s3-demo-bucket1/cf/XABCD12345678.2012-02-23-02.YRRwERSA.gz s3://amzn-s3-demo-bucket1/cf/XABCD12345678.2012-02-23-02.dshVLXFE.gz s3://amzn-s3-demo-bucket1/cf/XABCD12345678.2012-02-23-02.LpLfuShd.gz
S3 将文件DistCp 复制、连接和压缩为以下两个文件,其中文件名由正则表达式的匹配确定。
hdfs:///local/2012-02-23-01.lzo hdfs:///local/2012-02-23-02.lzo