雲端運算-Hadoop兩小時快速入門手冊-第一部分

來源:互聯網
上載者:User

買了一本書《Hadoop權威指南》第二版,書寫的真不錯,就是思維跳躍性太大,看了沒兩章,是前後狂翻(沒辦法,他一說就是看附錄A安裝Hadoop,看附錄C準備NCDC天氣資料)

附錄A需要研究一下,根據自己的需求確定下來,學習階段也就本地模式就夠了,不要玩什麼叢集模式,浪費感情,浪費電腦資源。具體過程上網搜搜吧,好多人寫,不過你需要的就是最基本的模式,只要安裝Java、解壓縮Hadoop,配置hadoop的bin目錄到path環境變數。就可以了。叢集了之類的,不要玩那些沒用的,入門以後再說。我相信你30分鐘都能搞好一個liunx系統,並安裝jdk、解壓縮hadoop,配置JAVA_HOME,和path環境變數。

 

附錄C:準備NCDC天氣資料,這一章節巨崩潰,看了兩天(全是下班後的業餘時間)也就從它所描述的NCDC官網上下載到了我需要的測試資料,好多,看了半天本來就是測試,隨便找兩個溫度測試網站的2年的資料合併一下作為測試資料算了。

下面開始我對前兩章的理解,希望給後來者能通過一晚上的時間,快速學習會第二章節的內容。

1.      準備工作(30分鐘)1)     科普HDFS基礎命令

1,查看目錄(列表)資訊

#bin/hadoop dfs -ls /

 

2,建立目錄test

#bin/hadoop dfs -mkdir test

 

3,刪除目錄test

#bin/hadoop dfs -rmr test

 

4,上傳檔案到HDFS目錄

#bin/haddop dfs -put *.txt test

 

5,下載檔案

#bin/hadoop dfs -get test test1

 

6. 查看一個檔案

#bin/hadoop dfs –tail test

#bin/hadoop dfs –cat test

 

2)     準備天氣預報資料

開啟FTP

ftp://ftp.ncdc.noaa.gov/pub/data/gsod/

隨意下兩個年份的檔案進行分析。

2011/007018-99999-2011.op.gz

2010/999999-94645-2012.op.gz

上傳這兩個gz檔案到Linux伺服器上,解壓縮gz檔案,執行命令合并兩個臨時檔案

cat  007018-99999-2011.op 999999-94645-2012.op> ncdc-all.op

將合并後的溫度檔案,上傳到hdfs上,等待分析備用。

hadoop dfs -put  ncdc-all.op  ./hdfs/temperature

2.      編寫Map-Reduce函數和調度函數(Job)(60分鐘)

    多看看代碼吧,沒壞處。詳見附件。附件沒法上傳,等我上傳到資源裡面吧。

http://download.csdn.net/detail/xzknet/4905094

哦,對了,附件密碼忘記說了,和檔案名稱一樣。哈哈

3.      上傳Jar包到Linux伺服器。(30分鐘)

將第二步編寫的代碼打包成HadoopTest.jar放到本地某一個目錄下,例如:

/home/xzknet/demo/ch02/

   然後進入該目錄執行如下命令

hadoop jar ./ch02.jar /home/xzknet/demo/ch02/hdfs output

   系統返回如下資訊

xzknet@bogon:~/demo/ch02$hadoop jar ./ch02.jar /home/xzknet/demo/ch02/hdfs output

12/12/1807:35:48 INFO jvm.JvmMetrics: Initializing JVM Metrics with processName=JobTracker,sessionId=

12/12/1807:35:48 WARN mapred.JobClient: Use GenericOptionsParser for parsing thearguments. Applications should implement Tool for the same.

12/12/1807:35:48 INFO mapred.FileInputFormat: Total input paths to process : 1

12/12/1807:35:48 INFO mapred.JobClient: Running job: job_local_0001

12/12/1807:35:48 INFO mapred.FileInputFormat: Total input paths to process : 1

12/12/1807:35:48 INFO mapred.MapTask: numReduceTasks: 1

12/12/1807:35:48 INFO mapred.MapTask: io.sort.mb = 100

12/12/1807:35:48 INFO mapred.MapTask: data buffer = 79691776/99614720

12/12/1807:35:48 INFO mapred.MapTask: record buffer = 262144/327680

12/12/1807:35:48 INFO mapred.MapTask: Starting flush of map output

12/12/1807:35:49 INFO mapred.MapTask: Finished spill 0

12/12/1807:35:49 INFO mapred.TaskRunner: Task:attempt_local_0001_m_000000_0 is done.And is in the process of commiting

12/12/1807:35:49 INFO mapred.LocalJobRunner:file:/home/xzknet/demo/ch02/hdfs/temperature:0+99802

12/12/1807:35:49 INFO mapred.TaskRunner: Task 'attempt_local_0001_m_000000_0' done.

12/12/1807:35:49 INFO mapred.LocalJobRunner:

12/12/1807:35:49 INFO mapred.Merger: Merging 1 sorted segments

12/12/1807:35:49 INFO mapred.Merger: Down to the last merge-pass, with 1 segments leftof total size: 7878 bytes

12/12/1807:35:49 INFO mapred.LocalJobRunner:

12/12/1807:35:49 INFO mapred.TaskRunner: Task:attempt_local_0001_r_000000_0 is done.And is in the process of commiting

12/12/1807:35:49 INFO mapred.LocalJobRunner:

12/12/1807:35:49 INFO mapred.TaskRunner: Task attempt_local_0001_r_000000_0 is allowedto commit now

12/12/1807:35:49 INFO mapred.FileOutputCommitter: Saved output of task'attempt_local_0001_r_000000_0' to file:/home/xzknet/demo/ch02/output

12/12/1807:35:49 INFO mapred.LocalJobRunner: reduce > reduce

12/12/1807:35:49 INFO mapred.TaskRunner: Task 'attempt_local_0001_r_000000_0' done.

12/12/1807:35:49 INFO mapred.JobClient:  map 100%reduce 100%

12/12/1807:35:49 INFO mapred.JobClient: Job complete: job_local_0001

12/12/1807:35:49 INFO mapred.JobClient: Counters: 13

12/12/1807:35:49 INFO mapred.JobClient:  FileSystemCounters

12/12/1807:35:49 INFO mapred.JobClient:    FILE_BYTES_READ=244318

12/12/1807:35:49 INFO mapred.JobClient:    FILE_BYTES_WRITTEN=78028

12/12/1807:35:49 INFO mapred.JobClient:  Map-Reduce Framework

12/12/1807:35:49 INFO mapred.JobClient:    Reduce input groups=2

12/12/1807:35:49 INFO mapred.JobClient:    Combine output records=0

12/12/1807:35:49 INFO mapred.JobClient:     Mapinput records=718

12/12/1807:35:49 INFO mapred.JobClient:    Reduce shuffle bytes=0

12/12/1807:35:49 INFO mapred.JobClient:    Reduce output records=2

12/12/1807:35:49 INFO mapred.JobClient:    Spilled Records=1432

12/12/1807:35:49 INFO mapred.JobClient:     Mapoutput bytes=6444

12/12/1807:35:49 INFO mapred.JobClient:     Mapinput bytes=99802

12/12/1807:35:49 INFO mapred.JobClient:    Combine input records=0

12/12/1807:35:49 INFO mapred.JobClient:     Mapoutput records=716

12/12/1807:35:49 INFO mapred.JobClient:    Reduce input records=716

然後查看目前的目錄,產生output目錄,開啟此目錄,可以看到產生結果檔案,我們會看到此目錄包含crc檔案,是一個HDFS檔案夾。

我們可以直接開啟此結果檔案,我們即可以看到兩年的最高氣溫

xzknet@bogon:~/demo/ch02$ls

ch02.jar  hdfs ncdc-all.op  output

xzknet@bogon:~/demo/ch02$cd output

xzknet@bogon:~/demo/ch02/output$ls

part-00000

xzknet@bogon:~/demo/ch02/output$ls

part-00000

xzknet@bogon:~/demo/ch02/output$tail part-00000

2010    85.4

2012    73.7

   注意:eclipse的匯出Jar包時,export選項中有MainClass選項,注意設定該選項,否則:運行hadoop jar 命令時在***.jar後面需要指定包括包路徑的mainclass類名.

 

 跟書上的命令不大一樣,不過他那裡是指的local的方式,

這裡ch02.jar在本地,要分析的資料檔案temperature 在hdfs上,產生的輸出在hdfs上,output是一個檔案夾

xzknet@bogon:~/demo/ch02$ hadoop dfs -cat ./output/part-00000

2010    85.4

2012    73.7

xzknet@bogon:~/demo/ch02$ hadoop dfs -tail ./output/part-00000

2010    85.4

2012    73.7

到這裡,恭喜你,你已經入門了。並用Hadoop開發了自己第一個雲端運算程式。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.