集群搭建Hadoop 環(huán)境為CentOS7/JDK1.8

在看這一篇之前請先看:http://www.reibang.com/p/bcb2f77d90e8 單機搭建Hadoop 保證可以熟悉hadoop的單機配置澈缺,這樣不至于無腦粘貼xml文件內容導致各種問題停撞。這邊單機部署采用的是hadoop3這邊我們回歸到hadoop2.7去搭集群侮穿,其實都一樣瘫拣。

1.準備

本次要求準備三臺服務器搏明,這邊演示使用VMware開了三個環(huán)境亚再。

192.168.20.3 Master
192.168.20.4 Slave1
192.168.20.5 Slave2

這里要說一下郭膛,首先三個環(huán)境都要有一個相同名字的用戶,我創(chuàng)建了hadoop用戶氛悬,并互相配置好互信则剃。
我們一步一步進行。
在Master/Slave1/Slave2的環(huán)境如捅,執(zhí)行命令sudo vim /etc/hosts

請依照自己具體ip進行設置

然后創(chuàng)建hadoop用戶棍现,我再Master已經有hadoop用戶了,這邊在Salve1和Slave2創(chuàng)建镜遣。原因就是如果我們不使用相同名字的用戶己肮,ssh配置會比較麻煩,很容易用自身用戶名去做另外機器的用戶名悲关,從而出現用戶無權限的問題谎僻。
具體創(chuàng)建方法:
root權限下分別執(zhí)行
adduser hadoop
passwd hadoop
然后visudo 修改一下內容,給hadoop用戶權限寓辱。
然后配置互信艘绍,執(zhí)行ssh-keygen -t rsa 創(chuàng)建目錄,和之前一樣秫筏,這里不做贅述诱鞠。唯一要提醒的一點是:
ssh 對目錄的權限有要求,代碼中要設置下新生成的config文件權限才行这敬。
~目錄權限是750航夺,~/.ssh 的是700, ~/.ssh/* 的是600崔涂,~/.ssh/config 是700
否則容易出現權限問題阳掐。
配置好了之后,三臺機器兩兩互信∶常可以采用兩種方式:
1.ssh-copy-id -i
2.直接互相把ras.pub的內容粘貼到 authorized_keys 文件中觅闽。
都可以,我用的第二種涮俄,比較暴力蛉拙,注意,一定要看好用戶3骨住T谐!別問我怎么知道的苞尝。
配置好了檢查一下畸肆,如果互相可以ssh ip date就證明成功啦!比如在Master進行 ssh Slave1 date
第一次要寫個yes再回車宙址,等第二次就可以直接不輸入密碼得到結果了轴脐。這樣準備工作就完成了。

2.正式搭建

集群和單機的區(qū)別就是準備工作稍微復雜一些抡砂。其他的差不多大咱,我們把Master作為主節(jié)點,NameNode和ResourceManager都在主節(jié)點上注益,這邊我把Secondary NameNode也放在主節(jié)點上了碴巾。Slave1和Salve2作為從節(jié)點,主要運行NodeManager和DataNode丑搔。
簡單解釋一下:

  • NameNode:主要是管理文件系統(tǒng)的命名空間厦瓢,維護文件系統(tǒng)樹和文件與目錄。這些信息以兩個文件形式永久保存在本地磁盤上:命名空間鏡像文件和日志編輯文件啤月。應該放在主節(jié)點上煮仇。
  • DataNode:文件系統(tǒng)的工作節(jié)點。他們需要儲存并檢索數據塊顽冶,并且定期向NameNode發(fā)送他們所儲存的塊的列表欺抗。適合放在Slave節(jié)點上售碳。
  • Secondary NameNode:輔助NameNode强重,它不能當作NameNode。定期合并編輯日志與命名空間鏡像贸人,防止編輯日志過大间景,一般單獨的物理機上運行,當然也可以放主節(jié)點上艺智。
  • ResourceManager:基于程序對資源的需求進行調度倘要,是一個中心服務,做的工作就是去調度、啟動每一個 Job 所屬的 ApplicationMaster封拧、另外監(jiān)控 ApplicationMaster 的存在情況志鹃。放主節(jié)點上。
  • NodeManager:是每臺機器框架代理泽西,是執(zhí)行應用程序的容器曹铃,監(jiān)控應用程序資源的使用情況(CPU,內存捧杉,硬盤陕见,網絡)。然后向調度器也就是ResourceManager進行匯報味抖。

好了评甜!我們現在Master機器上搞事情!
在hadoop目錄下仔涩,創(chuàng)建一個dfs目錄忍坷,里面創(chuàng)建三個文件夾,分別是name熔脂、data承匣、namesecondary
如果完成過之前帖子的單機部署那么我們需要,清理一下里面的current文件夾锤悄,直接刪掉就ok韧骗。防止因為Version問題導致的不同步從而無法啟動。
我又創(chuàng)建了一個tmp文件夾
hadoop下目錄結構應該是這樣的:


hadoop目錄

好的零聚,那么我們去etc/hadoop目錄下去依次修改配置文件袍暴!
再一次注意!里面的路徑和端口號不要無腦粘貼隶症,請根據自己具體的路徑去配置政模。
首先修改的是hdfs-site.xml

<configuration>
<property>
    <name>dfs.replication</name>
    <value>2</value>
</property>
<property>
    <name>dfs.namenode.name.dir</name>
    <value>/opt/soft/hadoop-2.7.1/dfs/name</value>
</property>
<property>
    <name>dfs.datanode.data.dir</name>
    <value>/opt/soft/hadoop-2.7.1/dfs/data</value>
</property>
<property>
    <name>dfs.webhdfs.enabled</name>
    <value>true</value>
</property>
<property>
    <name>dfs.permissions</name>
    <value>false</value>
</property>
<property>
  <name>dfs.namenode.secondary.http-address</name>
  <value>Master:50090</value>
</property>
</configuration>

然后是core-site.xml

<configuration>
        <property>
          <name>hadoop.tmp.dir</name>
          <value>/opt/soft/hadoop-2.7.1/tmp</value>
          <description>Abase for other temporary directories.</description>
        </property>
         <property>
           <name>fs.defaultFS</name>
           <value>hdfs://Master:9000</value>
         </property>
</configuration>

然后是mapred-site.xml

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

然后是yarn-site.xml

<configuration>
 <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>Master</value>
  </property>
    <!-- Site specific YARN configuration properties -->
   <property>
       <name>yarn.nodemanager.aux-services</name>
       <value>mapreduce_shuffle</value>
   </property>
   <property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
  </property>
  <property>
    <name>yarn.log-aggregation.retain-seconds</name>
    <value>604800</value>
  </property>
</configuration>

最后是slaves文件

Slave1
Slave2

好的!蚂会!這樣Master就配置好了A苎!胁住!接下來就是配置Slave1和Slave2的時間了趁猴!我們可以采用簡單暴力的方式去搞。直接把Master的hadoop文件夾傳過去彪见!對儡司!就是直接傳過去就行了,啥都不用改余指。

執(zhí)行一下hdfs namenode -format格式化
如果成功了證明沒啥問題捕犬,直接啟動所有!start-all.sh
等待之后我們用jps指令看一下
Master:

Master

Slave1:
Slave1

Slave2:
Slave2

證明節(jié)點都正常。去web ui去看一下是否真正常碉碉。
我是去Master的50070端口查看
點擊Datanodes選項卡可以看到:
http://192.168.20.3:50070

可以看到Slave1和Slave2的DataNode也都真實存在柴钻,證明集群部署成功!可以使用啦~垢粮!

PS:如果最后結果不正常顿颅,請分別查看hadoop的logs文件夾下的日志文件。會有錯誤提示足丢。

---------------------------------------分割線-------------------------------------------------
當時寫的太粗糙了粱腻,其實啟動應該按照hdfs和yarn分別啟動這樣的方式。
hdfs就用 start-dfs.sh
yarn用start-yarn.sh
因為ResourceManager不一定會配置在Master上斩跌,如果在Slave1上绍些,我們必須去Slave啟動yarn,否則會執(zhí)行失敗耀鸦。

還有一點柬批,我們需要啟動jobhistoy去看日志。這一點要配置mapred-site.xml配置文件

<configuration>
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
        <!-- 設置jobhistoryserver 沒有配置的話 history入口不可用 -->
        <property>
                <name>mapreduce.jobhistory.address</name>
                <value>Master:10020</value>
        </property>
        <!-- 配置web端口 -->
        <property>
                <name>mapreduce.jobhistory.webapp.address</name>
                <value>Master:19888</value>
        </property>
        <!-- 配置正在運行中的日志在hdfs上的存放路徑 -->
        <property>
                <name>mapreduce.jobhistory.intermediate-done-dir</name>
                <value>/history/done_intermediate</value>
        </property>
        <!-- 配置運行過的日志存放在hdfs上的存放路徑 -->
        <property>
                <name>mapreduce.jobhistory.done-dir</name>
                <value>/history/done</value>
        </property>
</configuration>

然后使用指令:
./mr-jobhistory-daemon.sh start historyserver
啟動袖订,當然停止就換成stop
我們以后就可以通過master:19888 去查詢歷史日志了氮帐。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市洛姑,隨后出現的幾起案子上沐,更是在濱河造成了極大的恐慌,老刑警劉巖楞艾,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件参咙,死亡現場離奇詭異,居然都是意外死亡硫眯,警方通過查閱死者的電腦和手機蕴侧,發(fā)現死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來两入,“玉大人净宵,你說我怎么就攤上這事」桑” “怎么了择葡?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長痊夭。 經常有香客問我刁岸,道長脏里,這世上最難降的妖魔是什么她我? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上番舆,老公的妹妹穿的比我還像新娘酝碳。我一直安慰自己,他們只是感情好恨狈,可當我...
    茶點故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布疏哗。 她就那樣靜靜地躺著,像睡著了一般禾怠。 火紅的嫁衣襯著肌膚如雪返奉。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天吗氏,我揣著相機與錄音芽偏,去河邊找鬼。 笑死弦讽,一個胖子當著我的面吹牛污尉,可吹牛的內容都是我干的。 我是一名探鬼主播往产,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼被碗,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了仿村?” 一聲冷哼從身側響起锐朴,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蔼囊,沒想到半個月后包颁,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡压真,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年娩嚼,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片滴肿。...
    茶點故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡岳悟,死狀恐怖,靈堂內的尸體忽然破棺而出泼差,到底是詐尸還是另有隱情贵少,我是刑警寧澤,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布堆缘,位于F島的核電站滔灶,受9級特大地震影響,放射性物質發(fā)生泄漏吼肥。R本人自食惡果不足惜录平,卻給世界環(huán)境...
    茶點故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一麻车、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧斗这,春花似錦动猬、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至免钻,卻和暖如春彼水,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背极舔。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工猿涨, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人姆怪。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓叛赚,卻偏偏與公主長得像,于是被迫代替她去往敵國和親稽揭。 傳聞我的和親對象是個殘疾皇子俺附,可洞房花燭夜當晚...
    茶點故事閱讀 43,627評論 2 350

推薦閱讀更多精彩內容

  • 本文用以記錄hadoop分布式集群搭建過程 基礎環(huán)境準備 1、軟件環(huán)境 centos 6.5 三臺服務器分配的IP...
    遠方的貓dj閱讀 977評論 0 2
  • 最近在學習大數據技術溪掀,朋友叫我直接學習Spark事镣,英雄不問出處,菜鳥不問對錯揪胃,于是我就開始了Spark學習璃哟。 為什...
    Plokmijn閱讀 26,512評論 6 26
  • 1 準備工作 1.1 節(jié)點準備 在開始安裝系統(tǒng)之前,我們需要先準備5個節(jié)點喊递,他們均通過CentOS 7 Minim...
    Jackeroo閱讀 3,787評論 0 2
  • 1.Linux安裝前的配置 1.1.關閉防火墻 本站文檔是假定「服務器在防火墻以內」的前提下編纂的随闪,在這個前提下...
    lao男孩閱讀 3,315評論 0 4
  • 五月的劍 將萌發(fā)的新綠 斬斷 堅守百年的鐵門 像矗立大地的盲人拐杖 血跡斑斑 你說的曙光 粗獷而野蠻 大水涌來 睜不開眼
    窗外自輕風閱讀 607評論 0 2