1、hadoop streaming 命令格式
$HADOOP_HOME/bin/hadoop jar hadoop-streaming.jar \
-D mapred.job.name="streaming_wordcount" \
-D mapred.map.tasks=3 \
-D mapred.reduce.tasks=3 \
-D mapred.job.priority=3 \
-input /input/ \
-output /output/ \
-mapper python mapper.py \
-reducer python reducer.py \
-file ./mapper.py \
-file ./reducer.py
-
參數說明
- mapred.job.name:作業名稱
- mapred.map.tasks:map任務數量
- mapred.reduce.tasks:reduce任務數量
- mapred.job.priority:作業優先級
- -input:在HDFS上的作業輸入路徑,支持通配符,支持多個文件
- -output:在HDFS上的作業結果輸出路徑
- -mapper:mapper可執行程序或Java類
- -reducer:reducer可執行程序或Java類
- -file:分發本地文件
- 注:在hadoop2.x版本中,hadoop-streaming.jar 程序存放在
$HADOOP_HOME/share/hadoop/tools/lib
目錄下;在hadoop1.x版本中,hadoop-streaming.jar程序存放在$HADOOP_HOME/contrib/streaming
目錄下
2、hadoop streaming 常用參數
參數 |
說明 |
-input <path> |
輸入數據路徑 |
-output <path> |
輸出數據路徑 |
-mapper <cmd/JavaClassName> |
mapper可執行程序或Java類 |
-reducer <cmd/JavaClassName> |
reducer可執行程序或Java類 |
-file <file> Optional |
分發本地文件 |
-cacheFile <file> Optional |
分發HDFS文件 |
-cacheArchive <file> Optional |
分發HDFS壓縮文件 |
-numReduceTasks <num> Optional |
reduce任務個數 |
-jobconf -D NAME=VALUE Optional |
作業配置參數 |
-combiner <JavaClassName> Optional |
Combiner Java類 |
-partitioner <JavaClassName> Optional |
Partitioner Java類 |
-inputformat <JavaClassName> Optional |
InputFormat Java類 |
-outputformat <JavaClassName> Optional |
OutputFormat Java類 |
-inputreader <spec> Optional |
InputReader配置 |
-cmdenv <n>=<v> Optional |
傳給mapper和reducer的環境變量 |
-mapdebug <path> Optional |
mapper失敗時運行的debug程序 |
-reducedebug <path> Optional |
reducer失敗時運行的debug程序 |
-verbose Optional |
詳細輸出模式 |
- -jobconf -D NAME=VALUE Optional作業參數說明
作業參數 |
作業參數說明 |
mapred.job.name |
作業名 |
mapred.job.priority |
作業優先級 |
mapred.job.map.capacity |
最多同時運行map任務數 |
mapred.job.reduce.capacity |
最多同時運行reduce任務數 |
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輸出分隔符 |
3、參考資料