1. 程式人生 > >MapReduce開發環境搭建

MapReduce開發環境搭建

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