欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

云服務(wù)器搭建Hadoop分布式的過程詳解

 更新時間:2023年10月26日 11:51:16   作者:幾窗花鳶  
這篇文章主要介紹了云服務(wù)器搭建Hadoop分布式的過程,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

1.服務(wù)器配置

服務(wù)器主機名配置
115.157.197.82s110核
115.157.197.84s210核
115.157.197.109s310核
115.157.197.31s410核
115.157.197.60gracal10核

所有的軟件安裝在/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. 集群配置

各個組件的分布情況

s1s2s3s4gracal
HDFSNameNode DataNameNodeDataNameNodeSecondaryNameNode DataNameNodeDataNameNodeDataNameNode
YARNNodeManagerResourceManager NodeManagerNodeManagerNodeManagerNodeManager

常用端口配置 (分Hadoop2.x和Hadoop3.x的區(qū)別)

端口名稱Hadoop2.xHadoop3.x
NameNode內(nèi)部通信端口8020/90008020/
NameNode HTTP UI500709870
MapReduce查看執(zhí)行任務(wù)端口80888088(容易和框架端口沖突,本文配置的7666)
歷史服務(wù)器通信端口1988819888
  • 在客戶端機器(筆記本)配置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)問題,驗證問題過程

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)文章

最新評論