您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)hadoop-streaming是什么的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
Hadoop Streaming是Hadoop提供的一個編程工具,它允許用戶使用任何可執(zhí)行文件或者腳本文件作為Mapper和Reducer,例如:
采用shell腳本語言中的一些命令作為mapper和reducer(cat作為mapper,wc作為reducer)
bin/hadoop jar contrib/streaming/hadoop-0.20.2-streaming.jar -input input -output output -mapper /bin/cat -reducer /usr/bin/wc
mapper和reducer會從標(biāo)準(zhǔn)輸入中讀取用戶數(shù)據(jù),一行一行處理后發(fā)送給標(biāo)準(zhǔn)輸出。Streaming工具會創(chuàng)建MapReduce作業(yè),發(fā)送給各個tasktracker,同時監(jiān)控整個作業(yè)的執(zhí)行過程。
如果一個文件(可執(zhí)行或者腳本)作為mapper,mapper初始化時,每一個mapper任務(wù)會把該文件作為一個單獨進程啟動,mapper任務(wù)運行時,它把輸入切分成行并把每一行提供給可執(zhí)行文件進程的標(biāo)準(zhǔn)輸入。 同時,mapper收集可執(zhí)行文件進程標(biāo)準(zhǔn)輸出的內(nèi)容,并把收到的每一行內(nèi)容轉(zhuǎn)化成key/value對,作為mapper的輸出。 默認(rèn)情況下,一行中第一個tab之前的部分作為key,之后的(不包括tab)作為value。如果沒有tab,整行作為key值,value值為null。
對于reducer,類似。
以上是Map/Reduce框架和streaming mapper/reducer之間的基本通信協(xié)議。
Hadoop Streaming用法
Usage: $HADOOP_HOME/bin/hadoop jar \
$HADOOP_HOME/contrib/streaming/hadoop-*-streaming.jar [options]
options:
(1)-input:輸入文件路徑
(2)-output:輸出文件路徑
(3)-mapper:用戶自己寫的mapper程序,可以是可執(zhí)行文件或者腳本
(4)-reducer:用戶自己寫的reducer程序,可以是可執(zhí)行文件或者腳本
(5)-file:打包文件到提交的作業(yè)中,可以是mapper或者reducer要用的輸入文件,如配置文件,字典等。
(6)-partitioner:用戶自定義的partitioner程序
(7)-combiner:用戶自定義的combiner程序(必須用java實現(xiàn))
(8)-D:作業(yè)的一些屬性(以前用的是-jonconf),具體有:
1)mapred.map.tasks:map task數(shù)目
2)mapred.reduce.tasks:reduce task數(shù)目
3)stream.map.input.field.separator/stream.map.output.field.separator: map task輸入/輸出數(shù)
據(jù)的分隔符,默認(rèn)均為\t。
4)stream.num.map.output.key.fields:指定map task輸出記錄中key所占的域數(shù)目
5)stream.reduce.input.field.separator/stream.reduce.output.field.separator:reduce task輸入/輸出數(shù)據(jù)的分隔符,默認(rèn)均為\t。
6)stream.num.reduce.output.key.fields:指定reduce task輸出記錄中key所占的域數(shù)目
另外,Hadoop本身還自帶一些好用的Mapper和Reducer。
感謝各位的閱讀!關(guān)于“hadoop-streaming是什么”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。