初學者搭建Hadoop環境容易陷入細節漩渦中,並非說細節不重要,在程序世界中,細節偏偏是決定成敗的關鍵。然而,若是能在深刻細節以前對總體有全面、邏輯性的認識,那麼遇到細節時也能準肯定位本身所處位置,知道如何退、如何進。node
搭建Hadoop總的來講分爲如下步驟:ssh
檢查集羣機子環境,準備合適的Hadoop部署文件,通常有如下內容:分佈式
檢查Java安裝(通常不用自帶的openJDK,具體緣由暫不清楚);工具
自編譯Hadoop 64位部署文件(32bit Hadoop部署文件在x64機子上會有些小問題)oop
分佈式環境下對機子進行整理,羅列其ip(更改/ect/hosts文件須要),劃分其Master、Slaver職責(也能夠劃分更細的ResourceManager、SecondNameNode等,通常來講每一個機子都充分利用,均充當DataNode)測試
「規劃」Hadoop文件夾結構,包括安裝目錄、數據文件(hadoop_data)、臨時文件(hadoop_tmp)等;通常來講,建議一個hadoop x.x.0目錄下,分別設立hadoop x.x.0目錄(解壓的Hadoop部署文件存放位置)、hadoop-data(數據文件)、hadoop_tmp(臨時文件);固然這是筆者本身的實踐,若是不是「行業標準」,請勿見笑;
優化
配置運行環境,這裏指的是除Hadoop部署文件中配置文件以外的與系統相關的配置:spa
修改/etc/hosts文件;.net
對各Master-Slaver設置ssh無密碼訪問;code
配置Hadoop參數:
對{Hadoop_Home}/etc/hadoop/下的配置文件進行修改,包括hadoop-env.sh、yarn-env.sh、core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml,以及slaves文件(hadoop 2.2.0中無masters,參考 masters 和 slaves 文件)。
初次安裝,參數儘可能最小化配置,少配就行,以後集羣優化的工做多得是;
配置支持lzo(此次正是太拘泥於細節,栽在了這個上面,其實分兩個步驟):
安裝lzo(由於集羣須要原生lzo安裝目錄下的一些庫);
安裝hadoop-lzo(集羣須要一些針對Hadoop的hadoop-lzo下的一些庫);
lzop(可選,若是須要測試效果,可用該工具生成一些.lzo文件)
啓動集羣:
格式化NameNode:${Hadoop_Home}/bin/hdfs namenode –format
一鍵式啓動:${Hadoop_Home}/sbin/start-all.sh(該方法官方不建議使用,但仍是能用:This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh)
檢查進程情況: jps(來自JDK的工具)
細化步驟:
開啓守護進程
[hadoop@hadoop01 ~]$ hadoop-daemon.sh start namenode
[hadoop@hadoop01 ~]$ hadoop-daemon.sh start datanode
開啓yarn守護進程
[hadoop@hadoop01 ~]$ yarn-daemon.sh start resourcemanager
[hadoop@hadoop01 ~]$ yarn-daemon.sh start nodemanager
[hadoop@hadoop01 ~]$ start-yarn.sh
粗略的步驟正是如此,博文是粗製,接下來一兩天會繼續更新。
對於細節(總體脈絡清晰了,對其中步驟不解時就能夠參考對比多篇博文),附上不錯的幾篇參考文章:單節點hadoop2.2.0 安裝、Hadoop 2.2.0 (YARN)搭建筆記、lzo安裝說明。
整理這些步驟是爲了讓本身能對整個過程有個全局性的認識,不單單是針對Hadoop這個集羣,也是提醒本身在往後的漫長時刻中,若是被諸多繁雜的細節纏住了,不妨擡起頭來看看總體,這樣會清爽許多。(固然,這對本身來講很難,遇到一個細節,老是非弄清楚再去作別的事情不可;既然這樣的話,過後總結也是頗有必要的。)
若是文章對你有用,請在收藏之餘「頂/贊」一下以示鼓勵吧 (/ω\)