1. 程式人生 > >Ubuntu16.04搭建hadoop偽分散式環境

Ubuntu16.04搭建hadoop偽分散式環境

參考自:https://blog.csdn.net/hliq5399/article/details/78193113

 

原材料:

1.Ubuntu16.04作業系統成品(在vmware上安裝成功)

2.jdk-7u67-linux-x64.tar.gzjdk-7u67-linux-x64.tar.gz 下載地址:http://download.oracle.com/otn/java/jdk/7u67-b01/jdk-7u67-linux-x64.tar.gz

3.hadoop-2.6.5.tar.gz 下載地址:https://www-eu.apache.org/dist/hadoop/common/hadoop-2.6.5/hadoop-2.6.5.tar.gz

其中下載jdk時可能需要登入,如果你嫌登入麻煩,也可以直接從我給的百度雲連結下載:

連結:https://pan.baidu.com/s/1XtfhgZ8K3VRjyjwNBzYRoQ    提取碼:gj10 

 

步驟:

1.使用命令 sudo mkdir  /opt/modules 建立modules目錄用於存放與hadoop相關的檔案,再使用命令sudo chown hadoop:hadoop -R /opt/modules  將/opt/modules目錄及其子目錄下所有檔案和資料夾的UID和GID改為hadoop

2.將windows上下載的jdk與hadoop壓縮檔案複製到/opt/modules目錄下,我用的是與windows共享目錄的方法

3.使用linux的 tar -zxvf命令解壓檔案

4.刪除壓縮檔案

5.將hadoop-2.6.5檔名改為hadoop,jdk1.7.0_67資料夾名改為jdk

6.配置java和hadoop環境變數。使用命令 sudo gedit /etc/profile 開啟/etc/profile,在檔案末尾寫入

export JAVA_HOME=/opt/modules/jdk

export HADOOP_HOME=/opt/modules/hadoop

export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

然後儲存退出,重啟虛擬機器

7.輸入命令java -version以及hadoop version檢視java環境變數以及hadoop環境變數是否配置正確。如果現實如下結果,則證明配置正確;否則應該再檢查下自己哪裡寫錯了

8.輸入命令 cd $HADOOP_HOME/etc/hadoop/,進入hadoop配置檔案所在的目錄,使用命令 gedit hadoop-env.sh mapred-env.sh yarn-env.sh,在這三個檔案末尾新增 export JAVA_HOME=/opt/modules/jdk

9.配置core-site.xml.使用命令 gedit core-site.xml,在<configuration></configuration>之間插入以下內容:

<property>
                   <name>fs.defaultFS</name>
                   <value>hdfs://hadoop:8020</value>
           </property>

<property>
                   <name>hadoop.tmp.dir</name>
                   <value>/opt/data/tmp</value>
           </property>

其中第一個property是配置預設檔案系統所在的位置,我設定的是hadoop:8020(hadoop為我的主機名,8020為埠號)

第二個property是配置hadoop臨時目錄所在位置,我設定的是/opt/data/tmp,此時這個目錄還不存在,稍後得通過命令建立該目錄

10.通過命令 sudo mkdir -p /opt/data/tmp建立上一步指定的hadoop臨時目錄,並使用命令 chown hadoop:hadoop -R /opt/data 將/opt/data目錄及其所有子目錄的UID和GID都設定為hadoop

11.配置hdfs-site.xml.在<configuration></configuration>之間插入以下內容:

    <property>
                       <name>dfs.replication</name>
                       <value>1</value>
               </property>

該property是配置分散式檔案系統對於每個檔案塊的副本數量設定,預設為3,而在偽分散式環境下設定為1,因為只有一個節點

12.將mapred-site.xml.template複製一份為mapred-site.xml,再配置mapred-site.xml.在<configuration></configuration>之間插入以下內容:

<property>
                   <name>mapreduce.framework.name</name>
                   <value>yarn</value>
           </property>

該property是配置進行mapreduce計算任務的框架,設定為yarn

13.配置yarn-site.xml.在<configuration></configuration>之間插入以下內容:

<property>
                   <name>yarn.nodemanager.aux-services</name>
                   <value>mapreduce_shuffle</value>
           </property>
           <property>
                   <name>yarn.resourcemanager.hostname</name>
                   <value>hadoop</value>
          </property>

第一個property配置的是mapreduce使用混洗重組模式,第二個property指定了yarn框架中資源管理者的主機名,因為就一個節點,所以也設定為hadoop

14.配置本機ssh免密登入。這一步詳情可以檢視 https://blog.csdn.net/smart_ferry/article/details/84446479 

15.使用命令 hdfs namenode -format 對namenode進行格式化。若格式化成功,則/opt/data/tmp(第9步建立的hdfs臨時目錄)目錄下會生成一個新目錄dfs;否則,即為失敗,應往回檢查是否哪裡設定錯誤

16.使用命令 start-all.sh 開啟所有節點(偽分散式只有本機一個節點)及節點所開啟的所有服務,並使用jps檢視該節點的對應服務是否開啟成功。如果現實一下內容,則證明配置成功。

17.在/opt/data目錄中新建一個檔案input.txt,輸入內容如下圖所示

18.在hdfs檔案系統中建立目錄/test/input。命令:hdfs dfs -mkdir -p /test/input  並使用命令 hdfs dfs -ls / 檢視目錄是否建立成功

19.將17建立的input.txt上傳至hdfs中的/test/input目錄下。命令:hdfs dfs -put /opt/data/input.txt /test/input   使用命令 hdfs dfs -cat /test/input/input.txt  檢視是否上傳成功

20.使用hadoop自帶的WordCount程式對input.txt檔案進行單詞計數。命令:

yarn jar /opt/modules/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.5.jar wordcount /test/input /test/output 

引數 wordcount 為該jar包的主類名 /test/input 為輸入資料夾(是資料夾,不是檔案!!!) /test/output 為輸出資料夾(是資料夾,不是檔案!!!並且,在執行此命令之前,hdfs中不能有/test/output目錄!!!)

21.檢視單詞統計結果。命令:hdfs dfs -cat /test/output/part-r-00000

至此,偽分散式的hadoop環境已經安裝並且測試成功...遨遊吧,少年