在hadoop上運行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)境來進行教程,請自行對照替換路徑
我的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