1. 程式人生 > >Hadoop實戰-初級部分 之 Hadoop MapReduce JAVA API

Hadoop實戰-初級部分 之 Hadoop MapReduce JAVA API

•MapReduce程式可以以以下三種模式執行 – –Local(Standalone) Mode:只有一個 Java 虛擬機器在跑,完全沒有分散式的成分。且不使用HDFS檔案系統,而是使用本機的Linux檔案系統。 –Pseudo-distributed Mode:在同一臺機器上啟動獨立數個 JVM 程序,每一個hadoop daemon執行在一個單獨的JVM程序中,進行“偽分散式”操作。 –Fully-distributed Mode:真正的可以運行於多臺機器上的分散式模式。其中, Standalone mode 使用local filesystem 以及 local MapReducer job runner, Distributed mode 使用HDFS 以及 MapReduce daemons •對應的配置檔案 conf/core-site.xml:     為Hadoop設定預設的檔案系統  <configuration>   <property>          <name> fs.default.name </name>          <value>       VALUE      </value> </property> </configuration> Standalone mode:    VALUE=file:/// Pseudo-distributed mode: VALUE=hdfs://localhost:9000 Fully-Distributed mode:   VALUE=hdfs://namenode •對應的配置檔案 conf/mapred-site.xml <configuration>
 <property>      <name> mapred.job.tracker </name>       <value>            VALUE         </value>  </property> </configuration> Standalone mode:          VALUE=local Pseudo-distributed mode: VALUE=localhost:9001 Fully-Distributed mode:   VALUE=jobtracker:9001 HDFS client使用這個屬性來決定NameNode的位置,這樣HDFS client就可以連線到該NameNode. 第五部分:叢集上執行Word Count •打包 •啟動 •MapReduce網路使用者介面 •獲取結果 •除錯作業 •打包 步驟 在專案上,選擇[File]=>Export,匯出專案為一個jar包 •啟動 – 步驟 hadoop jar yourjar.jar mainClassName  -conf inputfolder outputfolder •MapReduce網路使用者介面 – url •獲取結果 –Hadoop fs –ls outputfolder •除錯作業 –加入傳統的Log輸出 –使用Reporter 來做錯誤源的輸出比對 第六部分:Mapreduce 工作流
•如何將問題分解成MapReduce作業   –複雜的需求   •在Word Count 程式中,求出單詞出現頻率的總和   •單詞中包含大寫字母H的則轉換為小寫   •在Word Count 程式中,求出單詞出現頻率的總和與單詞的個數 •執行獨立的作業   –假設有Job1,Job2,需要執行    •如果作業是線性的       JobClinet.runjob(conf1)       JobClinet.runjob(conf2)    •如果更負責的是環形的   –   –可以通過Hadoop自帶的JobControl來執行