Hadoop實戰-初級部分 之 Hadoop MapReduce JAVA API
阿新 • • 發佈:2019-02-03
•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來執行
•如何將問題分解成MapReduce作業 –複雜的需求 •在Word Count 程式中,求出單詞出現頻率的總和 •單詞中包含大寫字母H的則轉換為小寫 •在Word Count 程式中,求出單詞出現頻率的總和與單詞的個數 •執行獨立的作業 –假設有Job1,Job2,需要執行 •如果作業是線性的 JobClinet.runjob(conf1) JobClinet.runjob(conf2) •如果更負責的是環形的 – –可以通過Hadoop自帶的JobControl來執行