Hadoop Streamingフレームワーク学習(二)

8057 ワード

1.一般的なStreamingコマンドの説明
次のコマンドを使用して、Streaming MapReduceプログラムを実行します.
   1:  $HADOOP_HOME/bin/hadoop/hadoop streaming args

<!--
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
-->
argsはstreamingパラメータで、次はパラメータのリストです.
-input
データパスの入力
-output
出力データパス
-mapper
mapper実行可能プログラムまたはJavaクラス
-reducer
reducer実行可能プログラムまたはJavaクラス
-file Optional
ローカルファイルの配布
-cacheFile Optional
HDFSファイルの配布
-cacheArchive Optional
HDFS圧縮ファイルの配布
-numReduceTasks Optional
reduceタスク数
-jobconf | -D NAME=VALUE Optional
ジョブ構成パラメータ
-combiner Optional
Combiner Javaクラス
-partitioner Optional
Partitioner Javaクラス
-inputformat Optional
InputFormat Javaクラス
-outputformat Optional
OutputFormat Javaクラス
-inputreader Optional
InputReader構成
-cmdenv = Optional
mapperとreducerに渡される環境変数
-mapdebug Optional
mapper失敗時に実行されるdebugプログラム
-reducedebug Optional
reducer失敗時に実行されるdebugプログラム
-verbose Optional
詳細出力モード
 2.コマンドパラメータの詳細
各パラメータの詳細は、次のとおりです.
l-input:ジョブ入力を指定します.pathはファイルまたはディレクトリ、*ワイルドカードを使用できます.-inputオプションでは、複数のファイルまたはディレクトリを入力として複数回指定できます.
l-output:ジョブ出力ディレクトリを指定します.pathは存在しない必要があります.また、ジョブを実行するユーザーはディレクトリを作成する権限が必要です.-outputは一度しか使用できません.
l-mapper:mapper実行可能プログラムまたはJavaクラスを指定し、指定して一意にする必要があります.
l-reducer:reducer実行可能プログラムまたはJavaクラスを指定し、指定して一意にする必要があります.
l-file,-cacheFile,-cacheArchive:ローカルファイル、HDFSファイル、HDFS圧縮ファイルをコンピューティングノードに配布するために使用されます.具体的な使用方法はファイルの配布とパッケージングを参照してください.
l-numReduceTasks:reducerの個数を指定し、-numReduceTasks 0または-reducer NONEを設定するとreducerプログラムがなく、mapperの出力は直接ジョブ全体の出力とする.
l-jobconf|-D NAME=VALUE:ジョブパラメータを指定し、NAMEはパラメータ名、VALUEはパラメータ値であり、指定できるパラメータはhadoop-defaultを参照する.xml.特に-jobconf mapred.job.name='My Job Name'ジョブ名を設定し、-jobconf mapredを使用します.job.priority=VERY_HIGH | HIGH | NORMAL | LOW | VERY_LOWはジョブ優先度を設定し、-jobconf mapredを使用する.job.map.Capacity=M設定同時に最大M個のmapタスクを実行し、-jobconf mapred.job.reduce.Capacity=N設定同時に最大N個のreduceタスクを実行します.一般的なジョブ構成パラメータを次の表に示します.
mapred.job.name
ジョブ名
mapred.job.priority
ジョブ優先度
mapred.job.map.capacity
最大同時実行mapタスク数
mapred.job.reduce.capacity
最大同時実行ジョブ数
hadoop.job.ugi
ジョブ実行権限
mapred.map.tasks
mapタスク個数
mapred.reduce.tasks
reduceタスク数
mapred.job.groups
ジョブ実行可能な計算ノードグループ
mapred.task.timeout
タスクが応答(入出力)しない最大時間
mapred.compress.map.output
mapの出力が圧縮されているかどうか
mapred.map.output.compression.codec
mapの出力圧縮方式
mapred.output.compress
reduceの出力が圧縮されているかどうか
mapred.output.compression.codec
reduceの出力圧縮方式
stream.map.output.field.separator
map出力セパレータ
l-combiner:combiner Javaクラスを指定し、対応するJavaクラスファイルをjarファイルにパッケージして-fileで配布します.
l-partitioner:partitioner Javaクラスを指定し、StreamingはKeyBasedFiledPartitonerおよびIntHashPartitionerを参照するいくつかの実用的なpartitionr実装を提供します.
l-inputformat,-outputformat:Inputformatとoutputformat Javaクラスを指定し、InputFormatとOutputFormatインタフェースをそれぞれ実装するために、入力データの読み出しと出力データの書き込みに使用します.指定しない場合、デフォルトではTextInputFormatとTextOutputFormatが使用されます.
l-cmdenv NAME=VALUE:mapperとreducerプログラムに追加の環境変数を渡し、NAMEは変数名、VALUEは変数値です.
l-mapdebug,-reducedebug:mapperとreducerプログラムが失敗したときに実行するdebugプログラムをそれぞれ指定します.
l-verbose:デバッグに使用できる出力詳細、たとえば配布するファイル、実際のジョブ構成パラメータ値などを指定します.
3.Streaming使用例
   1:   #         streaming           
   2:   $hadoop fs -rmr "$outpath"
   3:    
   4:   #     
   5:   $hadoop streaming \
   6:       -input   "$inpath" \  #       
   7:       -output  "$outpath" \ #       
   8:      -mapper  "$map" \     # map      
   9:       -reducer "$reduce" \  # reduce      
  10:       -file    "$map" \     #                
  11:       -file    "$reduce" \  
  12:       -jobconf mapred.job.name="test_task" \ #     
  13:       -jobconf stream.num.map.output.key.fields=1 \  
  14:       -jobconf mapred.job.priority=HIGH \    #      
  15:       -jobconf mapred.job.map.capacity=100 \ #      map 
  16:       -jobconf mapred.job.reduce.capacity=10 \ #      reduce 
  17:       -jobconf mapred.map.tasks=2000 \         # map   
  18:       -jobconf mapred.reduce.tasks=10          # reduce   
  19:       
  20:    exit $?

<!--
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
-->