在hadoop上運行python程序

在hadoop上運行python程序


準(zhǔn)備文件

  1. 測試文件test.txt (/home/hadoop/input/test.txt)
  2. mapper.py (/home/hadoop/input/code/mapper.py)
  3. reducer.py (/home/hadoop/input/code/reducer.py)

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


1.配置好你的hadoop分布式集群

2.請在你的系統(tǒng)變量中配置好HADOOP_HOME為hadoop文件夾根目錄

3.啟動hdfs和mapreducer

start-all.sh

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

#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

5.開始運行你的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程序,先運行這個程序,它會創(chuàng)建進程運行運行你的python程序,hadoop能運行所有語言的程序都依賴于它.

-mapper 'python mapper.py'

mapper后面跟的是個命令,用于啟動你的程序

-file /home/hadoop/code/mapper.py

file指明了你的程序所在的路徑,以便分發(fā)到所有的slave機器上運行

-input hdfs://master:9000/input/*

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

-output hdfs://master:9000/output

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


http://www.cnblogs.com/joyeecheung/p/3756207.html

http://www.michael-noll.com/tutorials/writing-an-hadoop-mapreduce-program-in-python/

HIVE

使用命令schematool -initSchema -dbType mysql初始化mysql數(shù)據(jù)庫 hive

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

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

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