第4課書面作業(yè)

1 下載氣象數(shù)據(jù)集部分?jǐn)?shù)據(jù)(下載地址:http://www1.ncdc.noaa.gov/pub/data/noaa/2001/),求每年的最低溫度,部署并運行之,抓圖過程
2 在linux或win下安裝eclipse,并且連接到Hadoop集群(關(guān)鍵步驟是編譯插件),運行習(xí)題1的map-reduce程序作為測試,抓圖整個過程
第3-4題為2選1(請在課程資源下載第4周作業(yè)素材和視頻素材),如能2題均完成為最佳。
3 傳遞參數(shù)問題
請閱讀Exercise_1.java,編譯并且運行。該程序從Test_1改編而來,其主要差別在于能夠讓用戶在結(jié)果文件中的每一行前面添加一個用戶自定義的字符串,而這個字符串將由參數(shù)傳遞到程序中。例如,運行
$hadoop jar Exercise_1.jar input_path output_path hadoop
之后,第三個參數(shù)“hadoop”將會在結(jié)果文件中顯示,例如附件“result_1”所顯示的。
問題:著重考慮Exercise_1.java里面”需要注意的部分“,改寫Test_2程序,得到的結(jié)果必須跟附件"resule_2"一致,并且其中hadoop必須由參數(shù)傳遞。
4 Setup函數(shù)的作用
閱讀Exercise_2.java,這是一個與Exercise_1.java有相同效果的程序,自行搜索關(guān)于setup函數(shù)的資料,回答上述兩個程序的不同。

1、
設(shè)置依賴的環(huán)境變量
[keon@h1 code]$ vim ~/.bash_profile

export HADOOP_HOME=/usr/hadoop-2.7.2

export JAVA_HOME=/usr/jdk1.8.0_101
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$HADOOP_HOME/s
hare/hadoop/common/hadoop-common-2.7.2.jar:$HADOOP_HOME/share/hadoop/hdfs/hadoop
-hdfs-2.7.2.jar:$HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-client-core
-2.7.2.jar:$HADOOP_HOME/share/hadoop/tools/lib/commons-cli-1.2.jar

編譯代碼
[keon@h1 wether]$ javac code/*
[keon@h1 wether]$ cd code/
[keon@h1 code]$ ls
MaxTemperature.class MaxTemperatureMapper.class MaxTemperatureReducer.class
MaxTemperature.java MaxTemperatureMapper.java MaxTemperatureReducer.java

打包class文件
[keon@h1 code]$ jar cvf ./MaxTemperature.jar ./*.class
added manifest
adding: MaxTemperature.class(in = 2665) (out= 1304)(deflated 51%)
adding: MaxTemperatureMapper.class(in = 1893) (out= 818)(deflated 56%)
adding: MaxTemperatureReducer.class(in = 1704) (out= 728)(deflated 57%)

準(zhǔn)備數(shù)據(jù)文件
[keon@h1 data]$ cat * >> wetherdata.txt
[keon@h1 data]$ ls
007026-99999-2016 008415-99999-2016 010014-99999-2001 wetherdata.txt
008411-99999-2016 010000-99999-2001 010015-99999-2001
008414-99999-2016 010010-99999-2001 010017-99999-2001

[keon@h1 hadoop-2.7.2]$ ./bin/hadoop fs -mkdir /input
[keon@h1 hadoop-2.7.2]$ ./bin/hadoop fs -put ~/hadoop/wether/data/wetherdata.txt /input

運行程序
./bin/hadoop jar ~/hadoop/wether/code/Weather.jar /input /output

1.png
2.png

2、
為項目添加hadoopjar包


3.png

添加運行參數(shù)

4.png

運行獲得結(jié)果


5.png

查看結(jié)果


6.png

3、
運行exercise_1


7.png

處理后的數(shù)據(jù)


8.png

添加reduce


9.png

結(jié)果


10.png

4、

11.png

Mapper和reducer的四個方法是setup,map(reduce),cleanup和run。其中,setup和cleanup用于管理生命周期中的資源,setup在完成構(gòu)造,即將開始執(zhí)行動作前調(diào)用,cleanup則在所有的動作完成后被調(diào)用。方法map(reduce)用于對一次輸入的key/value對進(jìn)行map(reduce)動作。run方法執(zhí)行了上面描述的過程,它調(diào)用setup,讓后迭代所有的key/value對,進(jìn)行map(reduce),最后調(diào)用cleanup。

exercise_1獲取名字是在map中進(jìn)行,每次迭代都會進(jìn)行獲取,改為使用setup后,只會獲取一次,提高效率。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容