MapReduce開發環境搭建
阿新 • • 發佈:2019-01-01
1. 概述
在使用UDH 過程中,難免需要開發M apReduce 程式,本文介紹如何搭建基於Eclipse的UDH MapReduce的開發環境。
2. 準備
UDH叢集:
這個可以是已經搭建好的遠端UDH叢集,也可以是本地偽叢集,本文就以使用遠端UDH叢集為例進行說明。
客戶端開發環境:
Eclipse+JDK1.7(JDK1.8)
3. Maven Project
4. 修改遠端UDH叢集配置 在core-site.xml新增下面配置項(非必需,如果不用mapred,需要自己在UDH 叢集中建立使用者,並賦權)。 建議通過UDH Manager管理介面新增 ,不然重啟服務後,會覆蓋已修改配置。
<property>
<name>hadoop.proxyuser.mapred.groups</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.mapred.hosts</name>
<value>*</value>
</property>
在遠端UDH叢集的HDFS上建使用者目錄
# sudo –u hdfs Hadoop fs –mkdir /user/mapred
# sudo –u hdfs Hadoop fs –chown –R mapred:hadoop /user/mapred
5. 下載遠端UDH叢集配置
/etc/hadoop/conf
從UDH叢集上的其中一個主機的目錄/etc/hadoop/conf下載hadoop的相關配置檔案:hdfs-site.xml、mapred-site.xml、yarn-site.xml、core-site.xml,並覆蓋Maven Project中的相關檔案 。
6. 修改本地客戶端開發環境配置
如果開發壞境是windows,需要在mapred-site.xml 中的新增以下配置項:
<property>
<name>mapreduce.app-submission.cross-platform</name>
<value>true</value>
</property>
7. 打包Map及Reduce類
在本地Eclipse中提交Job,需要先將開發的Map及Reduce類打包,並將jar包上傳的遠端UDH叢集的HDFS上。
# sudo -u hdfs hadoop fs -put /opt/mapreducedemo.jar /usr/mapred/lib/mapreducedemo.jar
8. 客戶端排程執行MapReduce(提交Job)
把mapreduce包載入到執行上下文中:
job.addFileToClassPath(new Path("/user/mapred/lib/mapreducedemo.jar"));
指定相關使用者執行,詳細見原始碼
9. 輸入及結果檢視
輸入:
[[email protected] conf]# sudo -u hdfs hadoop fs -ls /user/mapred/input/
Found 1 items
-rw-r--r-- 3 mapred hadoop 34 2016-10-26 02:40 /user/mapred/input/txt
結果:
# sudo -u hdfs hadoop fs -cat /user/mapred/output/part-r-00000
4. 修改遠端UDH叢集配置 在core-site.xml新增下面配置項(非必需,如果不用mapred,需要自己在UDH 叢集中建立使用者,並賦權)。 建議通過UDH Manager管理介面新增 ,不然重啟服務後,會覆蓋已修改配置。