分散式系統詳解--框架(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和人工智慧)
獲取更過免費書籍資源視訊資料
知識點超級連結: