hadoop mapreduce的python代碼運(yùn)行

在hadoop上運(yùn)行python程序

準(zhǔn)備文件

測試文件test.txt (/home/hadoop/input/test.txt)

mapper.py (/home/hadoop/input/code/mapper.py)

reducer.py (/home/hadoop/input/code/reducer.py)
以上文件的存放路徑可以自己定義,這里是以我的目前操作環(huán)境來進(jìn)行教程,請自行對照替換路徑
我的HADOOP_HOME是/home/hadoop/hadoop-1.0.4

1.配置好你的hadoop分布式集群,請?jiān)谀愕南到y(tǒng)變量中配置好HADOOP_HOME為hadoop文件夾根目錄

2.啟動hdfs和mapreducer

start-all.sh

3.將你用作測試的輸入文件存放到hdfs上(當(dāng)然是在master主機(jī)上操作啦)

#c創(chuàng)建input文件夾存放測試文件
hadoop dfs -mkdir hdfs://master:9000/user/hadoop/input
#將本地的文件發(fā)送到hdfs
hadoop dfs -copyFromLocal /home/hadoop/input/test.txt hdfs://master:9000/user/hadoop/input

4.開始運(yùn)行你的python程序

#hadoop1.x版本
hadoop jar $HADOOP_HOME/contrib/streaming/hadoop-streaming-1.0.4.jar \
-mapper 'python mapper.py'   -file /home/hadoop/code/mapper.py\
-reducer 'python reducer.py'  -file /home/hadoop/code/reducer.py \
-input hdfs://master:9000/input/* -output hdfs://master:9000/output

$HADOOP_HOME/contrib/streaming/hadoop-streaming-1.0.4.jar
它是個java程序,先運(yùn)行這個程序,它會創(chuàng)建進(jìn)程運(yùn)行運(yùn)行你的python程序,hadoop能運(yùn)行所有語言的程序都依賴于它.

-mapper 'python mapper.py'
mapper后面跟的是個命令,用于啟動你的程序

-file /home/hadoop/code/mapper.py
file指明了你的程序所在的路徑,以便分發(fā)到所有的slave機(jī)器上運(yùn)行

-input hdfs://master:9000/input/*
input指明了輸入文件的路徑,它會讀取input目錄下的所有文件,由標(biāo)準(zhǔn)輸入的方式傳送給你的程序

-output hdfs://master:9000/output
output指明的輸出結(jié)果的存放路徑,它會自動創(chuàng)建該路徑,所以請不要指向一個已經(jīng)存在的文件夾,否則會報(bào)錯

參考網(wǎng)址:http://www.itdecent.cn/p/4c57e7e3f02f

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容