1. 程式人生 > >分散式系統詳解--框架(Hadoop-叢集搭建)

分散式系統詳解--框架(Hadoop-叢集搭建)

                 分散式系統詳解--框架(Hadoop-叢集搭建)

       前面的文章也簡單介紹了,hadoop的環境搭建分為三種,單機版,偽分散式,全分散式。這篇文章為介紹hadoop的全分散式的架構搭建。

一、步驟總綱

二、搭建規劃

主機名稱 IP地址 功能
MyLinux 192.168.71.233 NameNode、DataNode、resourcemanager、nodemanager
centos01 192.168.71.234 DataNode、nodemanager
centos02 192.168.71.235 DataNode、nodemanager

 

 

 

 

 

三、配置hadoop的相關配置檔案

3.1 vi ./etc/hadoop/hadoop-env.sh 告訴hadoop jdk的安裝目錄。

3.2 vi ./etc/hadoop/core-site.xml 

在<configuration></configuration>裡面進行配置。

<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://Mylinudfs-->0</value>
</property>
<!--配置操作hdfs的緩衝大小--> 
<property>
<name>io.file.buffer.size</name>
<value>4096</value>
</property>
<!--配置臨時資料存放目錄-->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/bigdata/tmp</value>
</property>
</configuration>

3.3 vi ./etc/hadoop/hdfs-site.xml 

在<configuration></configuration>裡面進行配置。

<configuration>
<!--副本數也叫副本因子-->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!--塊大小-->
<property>
<name>dfs.block.size</name>
<value>134217728</value>
</property>

<!--hdfs儲存的元資料位置-->
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoopdata/dfs/name</value>
</property>
<!--hdfs的資料存放位置-->
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoopdata/dfs/data</value>
</property>


<!--hdfs的檢測目錄-->
<property>
<name>fs.checkpoint.dir</name>
<value>/home/hadoopdata/checkpoint/dfs/cname</value>
</property>

<!--hdfs的namenode的web ui地址-->
<property>
<name>dfs.http.address</name>
<value>MyLinux:50070</value>
</property>

<!--hdfs的Secondarynamenode 的web ui地址-->
<property>
<name>dfs.secondary.http.address</name>
<value>MyLinux:50090</value>
</property>

<!--是否開啟web操作hdfs-->
<property>
<name>dfs.webhdfs.enabled</name>
<value>false</value>
</property>

<!--是否開啟hdfs的許可權-->
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>

</configuration>

3.4 vi ./etc/hadoop/mapred-site.xml 

因為在 /etc/hadoop/  下面沒有mapred-site.xml 但是有一個 mapred-site.xml.template 

先進行拷貝:

mv ./etc/hadoop/mapred-site.xml.template ./etc/hadoop/mapred-site.xml

在<configuration></configuration>裡面進行配置。

<configuration>
<!--指定mapreduce的執行框架-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
<final>true</final>
</property>

<!--歷史服務的通訊地址-->
<property>
<name>mapreduce.jobhistory.address</name>
<value>MyLinux:10020</value>
</property>
<!--歷史服務的web ui 通訊地址-->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>MyLinux:19888</value>
</property>

</configuration>

3.5 vi ./etc/hadoop/yarn-site.xml 

在<configuration></configuration>裡面進行配置。

<configuration>

<!--指定resouceManager 所啟動的服務主機名-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>MyLinux</value>
</property>
<!--指定resouceManager 的shuffle  -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>

<!--指定resouceManager 的內部通訊地址  -->
<property>
<name>yarn.resourcemanager.address</name>
<value>MyLinux:8032</value>
</property>

<!--指定resouceManager的scheduler內部通訊地址  -->
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>MyLinux:8030</value>
</property>

<!--指定resouceManager的source-tracker內部通訊地址  -->
<property>
<name>yarn.resourcemanager.source-tracker.address</name>
<value>MyLinux:8031</value>
</property>

<!--指定resouceManager的admin內部通訊地址  -->
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>MyLinux:8033</value>
</property>

<!--指定resouceManager的web ui監控地址  -->
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>MyLinux:8088</value>
</property>

</configuration>

3.6 vi ./etc/hadoop/slaves

MyLinux
centos01
centos02

四、分發hadoop檔案到所有機子上去

4.1 刪除其他兩臺機器的hadoop檔案(原來是配置了單機安裝)

rm -rf /opt/hadoop-2.7.5

4.2 執行命令複製 

scp -r ../hadoop-2.7.5/ centos01:/opt/

scp -r ../hadoop-2.7.5/ centos02:/opt/

如果出現下面的情況:則需要在/etc/hosts 的檔案中新增其他主機IP地址。

五、格式化檔案

hadoop namenode -format 成功後

檢視檔案

六、啟動

6.1 啟動方式

(1)全啟動 start-all.sh

(2)模組啟動   

start-dfs.sh

start-yarn.sh

(3)單個程序啟動

hadoop-daemon.sh start/stop namenode

hadoop-daemons.sh start/stop datanode

yarn-daemon.sh start/stop namenode

yarn-daemons.sh start/stop datanode

mr-jobhistory-daemon.sh start/stop historyserver

6.2 測試模組啟動

進入hadoop-2.7.5 輸入 ./sbin/start-dfs.sh 要求輸入多次密碼

(1)程序按照規劃出現

A。輸入jps 檢視程序分別是 伺服器MyLinux、centos01、centos02 

B。在sbin目錄下面,啟動yarn命令 start-yarn.sh

(2)檢視對應模組的web ui監控是否正常。192.168.71.233:50070

可以檢視網站圖示:

倘若出現該伺服器步驟一中,程序均已開啟,而在windows下訪問該埠卻無法訪問的情況。進行下面的操作。

第一步:開啟防火牆 service iptables start

第二步:關閉防火牆 service iptables stop

(3)檢測上傳下載檔案(hdfs),跑mapreduce作業

A。從任意目錄中上傳檔案到hdfs系統的根目錄中。

hdfs dfs -put ./README.txt /

解決方案:關閉datanode的防火牆(所有伺服器均關閉)

上傳完成

命令 hdfs dfs -cat /README.txt 來檢視上傳的檔案開啟詳情

命令 hdfs dfs -ls /  來檢視該hdfs系統下的檔案列表

B。跑一個mapreduce作業查詢單詞數。

yarn jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.5.jar wordcount /README.txt /out/00

檢視命令 hdfs dfs -cat /out/part-r-00000

在這裡記錄了每一個單詞的個數,hdfs叢集搭建成功。

歡迎訂閱公眾號(JAVA和人工智慧)

                                                                        獲取更過免費書籍資源視訊資料

                                                     

 

知識點超級連結:

 1,分散式系統詳解--基礎知識(概論

 2,分散式系統詳解--基礎知識(執行緒)

 3,分散式系統詳解--基礎知識(通訊)

 4,分散式系統詳解--基礎知識(CAP)

 5,分散式系統詳解--基礎知識(安全)

 6,分散式系統詳解--基礎知識(併發)

 7,分散式系統詳解--架構簡介(微服務)

 8,分散式系統詳解--Linux(許可權)

 9,分散式系統詳解--框架(Hadoop-單機版搭建)

10,分散式系統詳解--架構(Hadoop-克隆伺服器)

11,分散式系統詳解--框架(Hadoop-叢集搭建)