

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon EMR の以前の AMI バージョンと S3DistCp ユーティリティの相違点
<a name="emr-3x-s3distcp"></a>

## Amazon EMR でサポートされる S3DistCp バージョン
<a name="emr-s3distcp-verisons"></a>

次の S3DistCp バージョンは、Amazon EMR AMI リリースでサポートされています。S3DistCp 1.0.7 以降のバージョンは、直接クラスターで見つかります。最新の機能を使用するには、`/home/hadoop/lib` の JAR を使用します。


| バージョン | 説明 | リリース日 | 
| --- | --- | --- | 
| 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 | 実行する S3DistCp バージョンを指定する機能の強化。 | 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 | S3DistCp の初回リリース。 | 2012 年 1 月 19 日 | 

## S3DistCp コピーステップをクラスターに追加する
<a name="emr-3x-s3distcp-add-step"></a>

実行中のクラスターに S3DistCp コピーステップを追加するには、次のコマンドを入力し、{{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,]+}}"]
```

**Example Amazon CloudFront ログを HDFS にロードする**  
この例では、実行中のクラスターにステップを追加して、Amazon CloudFront ログを HDFS にロードします。このプロセスでは、圧縮フォーマットを Gzip (CloudFront のデフォルト) から LZO に変更します。LZO を使用して圧縮されたデータは解凍時に複数のマップに分割できるので便利です。Gzip のように、圧縮が完了するのを待つ必要はありません。これにより、Amazon EMR を使用してデータを分析するときのパフォーマンスが改善します。また、この例では、`--groupBy` オプションで指定されている正規表現を使用して、指定された時間のすべてのログを 1 つのファイルにまとめることによっても、パフォーマンスが向上しています。Amazon EMR クラスターは、小さな Gzip 圧縮ファイルを多数処理するよりも、大きな数個の 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-bucket/cf/XABCD12345678.2012-02-23-01.HLUS3JKx.gz
s3://amzn-s3-demo-bucket/cf/XABCD12345678.2012-02-23-01.I9CNAZrg.gz
s3://amzn-s3-demo-bucket/cf/XABCD12345678.2012-02-23-02.YRRwERSA.gz
s3://amzn-s3-demo-bucket/cf/XABCD12345678.2012-02-23-02.dshVLXFE.gz
s3://amzn-s3-demo-bucket/cf/XABCD12345678.2012-02-23-02.LpLfuShd.gz
```
 S3DistCp は、ファイルを、次の 2 つのファイルにコピー、統合、および圧縮します。ファイル名は、正規表現で一致した内容によって決まります。  

```
hdfs:///local/2012-02-23-01.lzo
hdfs:///local/2012-02-23-02.lzo
```