云服務(wù)器搭建Hadoop分布式的過程詳解
1.服務(wù)器配置
服務(wù)器 | 主機名 | 配置 |
---|---|---|
115.157.197.82 | s1 | 10核 |
115.157.197.84 | s2 | 10核 |
115.157.197.109 | s3 | 10核 |
115.157.197.31 | s4 | 10核 |
115.157.197.60 | gracal | 10核 |
所有的軟件安裝在/opt/module下,軟件安裝包在/opt/softs下
2.Java環(huán)境
所有的服務(wù)器的java統(tǒng)一1.8版本,查看java版本
java --version
? 若存在java環(huán)境不統(tǒng)一,或者沒有1.8版本的jdk
無1.8版本的java
yum install -y java-1.8.0-openjdk*
環(huán)境不統(tǒng)一
#查看java版本 alternates --config java #選擇1.8版本的數(shù)字
相關(guān)的JAVA_HOME、Hadoop_HOME環(huán)境變量都保存在
/etc/profile.d/my_env.sh
中
3. 安裝Hadoop
- 確保Hadoop統(tǒng)一版本:hadoop3.1.3
- 編寫文件分發(fā)腳本,可以在一臺服務(wù)器分發(fā)到其他服務(wù)器:xsync腳本,在
/home/gaochuchu/bin
目錄下
4. 集群配置
各個組件的分布情況
s1 | s2 | s3 | s4 | gracal | |
---|---|---|---|---|---|
HDFS | NameNode DataNameNode | DataNameNode | SecondaryNameNode DataNameNode | DataNameNode | DataNameNode |
YARN | NodeManager | ResourceManager NodeManager | NodeManager | NodeManager | NodeManager |
常用端口配置 (分Hadoop2.x和Hadoop3.x的區(qū)別)
端口名稱 | Hadoop2.x | Hadoop3.x |
---|---|---|
NameNode內(nèi)部通信端口 | 8020/9000 | 8020/ |
NameNode HTTP UI | 50070 | 9870 |
MapReduce查看執(zhí)行任務(wù)端口 | 8088 | 8088(容易和框架端口沖突,本文配置的7666) |
歷史服務(wù)器通信端口 | 19888 | 19888 |
- 在客戶端機器(筆記本)配置ip和服務(wù)器主機名的映射,希望能通過主機名+端口號在瀏覽器訪問各個Web頁面
- 問題:通過s2:7666無法訪問ResourceManger的web UI,而通過直接的ip:7666又可以訪問其webUI
- 遇到這個問題我無法理解為什么會出問題
- 漫長的排錯過程:
- 1.檢查了服務(wù)器之間的ip和主機名的映射,各個服務(wù)器主機之間通過主機名可以ping通,說明映射沒有問題
- 2.檢查客戶端mac本機的hosts文件映射未發(fā)現(xiàn)問題,并且在客戶端的終端也能ping通各個主機名,說明映射沒有問題
- 3.且查看各個服務(wù)器的防火墻也處于關(guān)閉狀態(tài)
- 4.通過
netstat -nltp|grep 7666
查看端口的監(jiān)聽情況,也是正常監(jiān)聽狀態(tài) - 5.在網(wǎng)上搜索很多相關(guān)解決方案:關(guān)閉防火墻,設(shè)置etc/sysconfig/selinux的級別為disable,都沒有結(jié)果
- 因此,我認為應(yīng)該在客戶端本機出現(xiàn)問題,驗證問題過程
- 問題:通過s2:7666無法訪問ResourceManger的web UI,而通過直接的ip:7666又可以訪問其webUI
6.1 發(fā)現(xiàn)在本地主機telnet s2 7666
可以成功訪問,但是curl s2:7666
沒有輸出頁面的任何信息
6.2 使用cur -v s2:7666查看相關(guān)信息
- 發(fā)生地址的重定位,然后使用命令
curl -v http://s2:7666/cluser
成功返回了相關(guān)的html信息,說明頁面其實是可以訪問的
6.3 但是瀏覽器端還是無法訪問:后查詢到瀏覽器可能配置了代理服務(wù)器,而’curl’命令未配置代理。代理服務(wù)器會煩擾瀏覽器的訪問。
因此我關(guān)閉了VPN代理,成功訪問到s2:7666頁面??!
以后VPN代理一定要慎用?。?!排查了這么久發(fā)現(xiàn)最后居然是代理問題
- 啟動集群測試
- 啟動HDFS
[gaochuchu@s1 hadoop-3.1.3]$ sbin/start-dfs.sh
- 啟動YARN
[gaochuchu@s1 hadoop-3.1.3]$ sbin/start-yarn.sh
問題:
解決:
- 這里的hadoop配置的是root用戶創(chuàng)建的hadoop環(huán)境,本地用戶無權(quán)限
- 修改環(huán)境變量/etc/profile,注釋配置的HADOOP_HOME,重新source
運行hadoop自帶的wordcount示例程序報錯,并且一直卡在Running Job位置,報錯信息如下:
java.io.IOException: Got error, status=ERROR, status message , ack with firstBadLink as [某ip]:9866
at org.apache.hadoop.hdfs.protocol.datatransfer.DataTransferProtoUtil.checkBlockOpStatus(DataTransferProtoUtil.java:134)
at org.apache.hadoop.hdfs.protocol.datatransfer.DataTransferProtoUtil.checkBlockOpStatus(DataTransferProtoUtil.java:110)
at org.apache.hadoop.hdfs.DataStreamer.createBlockOutputStream(DataStreamer.java:1778)
at org.apache.hadoop.hdfs.DataStreamer.nextBlockOutputStream(DataStreamer.java:1679)
at org.apache.hadoop.hdfs.DataStreamer.run(DataStreamer.java:716)
......
Caused by: java.net.NoRouteToHostException: No route to host
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:716)
at org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:206)
at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:531)
at org.apache.hadoop.ipc.Client$Connection.setupConnection(Client.java:700)
at org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:804)
at org.apache.hadoop.ipc.Client$Connection.access$3800(Client.java:421)
at org.apache.hadoop.ipc.Client.getConnection(Client.java:1606)
at org.apache.hadoop.ipc.Client.call(Client.java:1435)
... 19 more
如何解決這種問題?
- 注意報錯信息:No route to host ,說明沒有到host的路由,排查思路,確定與對應(yīng)服務(wù)器端口是否聯(lián)通
- 首先測試某ip自身9866端口是否聯(lián)通,說明聯(lián)通
說明s1服務(wù)器和…31:9866可能是不連通的
經(jīng)查找相關(guān)資料說明是…31服務(wù)器的icmp(Internet Control Message Protocol)被禁用導(dǎo)致。
命令查看iptable是否有防火墻設(shè)置:
iptables -L INPUT --line-numbers
發(fā)現(xiàn):
命令刪除這條記錄:
iptables -D INPUT 28
5. 編寫集群的啟動腳本
因為每次集群啟動需要在NameNode節(jié)點的HADOOPHOME目錄下使用命令啟動HDFS
sbin/start-dfs.sh
在Yarn節(jié)點上通過命令啟動Yarn(ResourceManager)
sbin/start-yarn.sh
配置了歷史服務(wù)器,還需要在歷史服務(wù)器的節(jié)點上使用命令啟動歷史服務(wù)器
mapred --daemon start historyserver
相應(yīng)的停止集群也需要通過以下三個命令來停止集群
sbin/stop-dfs.sh sbin/stop-yarn.sh mapred --daemon stop historyserver
因此,可以編寫相關(guān)的腳本啟停(HDFS Yarn Historyserver)
- 在
/home/gaochuchu/bin
目錄下編寫myhadoop.sh腳本啟停Hadoop集群
#啟動Hadoop集群 myhadoop.sh start #停止Hadoop集群 myhadoop.sh stop
服務(wù)器各節(jié)點的狀態(tài)都需要通過在筆不同服務(wù)器上通過jps
命令查看,比較麻煩
- 在
/home/gaochuchu/bin
目錄下編寫jpsall
腳本,可以查看所有服務(wù)器上的節(jié)點狀態(tài)
到此這篇關(guān)于云服務(wù)器搭建Hadoop分布式的過程詳解的文章就介紹到這了,更多相關(guān)云服務(wù)器搭建Hadoop內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Apache Hudi數(shù)據(jù)布局黑科技降低一半查詢時間
這篇文章主要介紹了Apache Hudi數(shù)據(jù)布局黑科技幫你降低一半查詢時間,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪2022-03-03dell r710 服務(wù)器配置RAID5(3塊硬盤做RAID5)
這篇文章主要介紹了dell r710 服務(wù)器配置RAID5圖文教程,需要的朋友可以參考下2014-08-08ubuntu20.04部署ntp服務(wù)器ntpd(ntpdate?)的詳細過程
這篇文章主要介紹了ubuntu20.04部署ntp服務(wù)器ntpd(ntpdate?)的詳細過程,本文分步驟給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-09-09Ubuntu Server Rsync服務(wù)端與Windows cwRsync客戶端數(shù)據(jù)同步配置方法
這篇文章主要介紹了Ubuntu Server Rsync服務(wù)端與Windows cwRsync客戶端數(shù)據(jù)同步配置方法,需要的朋友可以參考下2015-07-07HTTP常見的狀態(tài)碼HTTP Status Code
這篇文章主要介紹了HTTP常見的狀態(tài)碼HTTP Status Code2017-01-01