實驗室Hadoop環境搭建

Hadoop分布式集群搭建流程記錄


軟件環境

  • Hadoop版本:hadoop-2.7.2.tar.gz
  • JAVA版本 :jdk-8u77-linux-x64.tar.gz
  • Linux版本 :Ubuntu 15.04(64位)

主機IP

  • Master.Hadoop XX.XX.XXX.173 Master節點
  • Slave1.Hadoop XX.XX.XXX.171 工作節點1
  • Slave2.Hadoop XX.XX.XXX.201 工作節點2
  • Slave3.Hadoop XX.XX.XXX.156 工作節點3

Step1:Ubuntu基本配置

  • 添加root登錄 (可選)
```code

為root賬戶設置密碼:sudo passwd root
測試root賬戶: su -
輸入root密碼,進入root終端
圖形化界面下執行: gedit /usr/share/lightdm/lightdm.conf.d
在打開的文件末尾添加如下代碼,保存并退出
user-session=ubuntu
greeter-show-manual-login=true
all-guest=false
重啟計算機即可使用root登錄圖形界面

##注意
     * 使用root登錄后雖然方便,但要謹慎操作,防止誤操作刪除重要文件
***

 * 更新Ubuntu源

  * `gedit /etc/apt/sources.list` 打開源列表
  * 清空原有的數據,并添加如下源  
  ```code
   #搜狐源:
deb http://mirrors.sohu.com/ubuntu/ vivid main restricted universe multiverse
deb http://mirrors.sohu.com/ubuntu/ vivid-security main restricted universe multiverse
deb http://mirrors.sohu.com/ubuntu/ vivid-updates main restricted universe multiverse
deb http://mirrors.sohu.com/ubuntu/ vivid-proposed main restricted universe multiverse
deb http://mirrors.sohu.com/ubuntu/ vivid-backports main restricted universe multiverse
deb-src http://mirrors.sohu.com/ubuntu/ vivid main restricted universe multiverse
deb-src http://mirrors.sohu.com/ubuntu/ vivid-security main restricted universe multiverse
deb-src http://mirrors.sohu.com/ubuntu/ vivid-updates main restricted universe multiverse
deb-src http://mirrors.sohu.com/ubuntu/ vivid-proposed main restricted universe multiverse
deb-src http://mirrors.sohu.com/ubuntu/ vivid-backports main restricted universe multiverse
   #阿里源:
deb http://mirrors.aliyun.com/ubuntu/ vivid main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ vivid-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ vivid-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ vivid-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ vivid-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ vivid main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ vivid-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ vivid-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ vivid-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ vivid-backports main restricted universe multiverse
#網易源:
deb http://mirrors.aliyun.com/ubuntu/ vivid main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ vivid-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ vivid-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ vivid-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ vivid-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ vivid main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ vivid-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ vivid-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ vivid-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ vivid-backports main restricted universe multiverse

添加完畢保存并退出,執行sudo apt-get update以及sudo apt-get dist-upgrade

  • 修改當前機器名
  • 執行 gedit /etc/hostname 將主機名改為對應的名稱(Slave1.Hadoop等)
  • 配置host文件
  • 為了讓幾臺主機之間互相“認識”,我們必須修改主機的host,這是主機用來盤配置DNS服務的信息,記載Lan內
    各主機對應的Hostname------IP關系
  • 執行gedit /etc/hosts 以Master為例子,為每個節點加入類似如下數據:
  • XX.XX.XXX.171 Slave1.Hadoop

Step2:配置JAVA環境

  • 為所有的節點部署JAVA環境
  • 用root身份登錄"Master.Hadoop"后在"/home"下創建"jdk"文件夾,再將"jdk-8u77-linux-x64.tar.gz"復制到"/home/jdk"文件夾中,然后解壓即可。查看"/home/jdk"下面會發現多了一個名為"jdk-8u77-linux-x64"文件夾
    ,將其重命名為java8
  • 執行命令gedit /etc/profile打開profile文件,配置JAVA路徑,在文件末尾添加如下命令:
export JAVA_HOME=/home/jdk/java8
export JRE_HOME=/home/jdk/java8/jre
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
  • 重啟Ubuntu

Step3:配置SSH實現節點之間免密碼安全連接

  • 這一步的意義如下:
    • Master和Slave之間連接不能依靠手動輸入密碼,要在確保安全的情況下進行免密鑰相互連接,所以我們要配置SSH免密碼登錄。
    • 原理:以Master為例1,在Master上生成一個公鑰和一個私鑰,默認存儲在/home/username/.ssh目錄下。
  • 具體操作流程:
    • 安裝SSH: 執行sudo apt-get install openssh-server
    • 啟動服務時候遇到了錯誤提示:ssh: Could not resolve hostname : Name or service not known,解決辦法是在/etc/hosts里添加進該主機及對應的IP.
    • 執行: ssh-keygen命令,生成無密碼密鑰對。
    • 執行ls -a | grep .ssh檢查是否有兩個密鑰。
    • 執行cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys將公鑰追加授權到key里面。
    • 檢查authorized_keys的權限,不對則使用chmod 600 authorized_keys命令修改權限。
    • 檢查sshd_config文件(gedit /etc/ssh/sshd_config),看下列三行是否注釋掉,沒注釋掉則注釋:

RSAAuthentication yes # 啟用 RSA 認證
PubkeyAuthentication yes # 啟用公鑰私鑰配對認證方式
AuthorizedKeysFile %h/.ssh/authorized_keys # 公鑰文件路徑

  * 重啟SSH服務,執行`service ssh restart`
  * 將公鑰拷貝到要實現免密碼登錄的遠程主機上:執行`ssh-copyid root@Slave1.HAdoop`拷貝到Slave1節點(本機是Masgter)
  * 驗證免密碼登錄:
     * 本機執行`ssh root@Slave1.Hadoop`即可免密碼登錄Slave1
  * 其他節點之間同理操作,下面附上Slave2.Hadoop遠程免密鑰登錄Master節點截圖:

![Slave2.Hadoop遠程Master](http://upload-images.jianshu.io/upload_images/1863312-6dbd97ed27900622.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
***
#Step4:Hadoop集群部署
* 實驗室配置路徑交代:
  * 以Master配置為例,解壓Hadoop,放在`/usr/hadoop`位置。
* 在"**/usr/hadoop**"下面創建**tmp**文件夾,并把Hadoop的安裝路徑添加到"**/etc/profile**"中
   *  執行`gedit /etc/profile`,在最下面加上如下命令:
```code
# set hadoop path
export HADOOP_HOME=/usr/hadoop
export $Path=$PATH:$HADOOP_HOME/bin
  • 下面進行Hadoop的配置,需要配置的文件在/usr/hadoop/etc/hadoop
    • 分別是slaves、core-site.xml、hadfs-site.xml、mapred-stie.xml、yarn-stie
    • slaves: 將作為 DataNode 的主機名寫入該文件,每行一個(Master可以作為工作節點)
      Master節點的salves
    • core-site.xml 改為下面的配置:
<configuration>
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://Master.Hadoop:9000</value>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/usr/hadoop/tmp</value>
                <description>Abase for other temporary directories.</description>
        </property>
</configuration>
  • 文件 hdfs-site.xml,默認的工作節點數(一個子節點則設為1):
<configuration>
        <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>Master:50090</value>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>1</value>
        </property>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>/usr/hadoop/tmp/dfs/name</value>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>/usr/hadoop/tmp/dfs/data</value>
        </property>
</configuration>
  • mapred-site.xml (先重命名,去掉.template),配置修改如下:
<configuration>
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
        <property>
                <name>mapreduce.jobhistory.address</name>
                <value>Master:10020</value>
        </property>
        <property>
                <name>mapreduce.jobhistory.webapp.address</name>
                <value>Master:19888</value>
        </property>
</configuration>
  • 文件 yarn-site.xml
<configuration>
        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>Master.Hadoop</value>
        </property>
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
</configuration>
  • 配置完成后,將Master上的/usr/hadoop文件上傳到各個節點上,執行命令;
cd /usr
sudo rm -r ./hadoop/tmp     # 刪除 Hadoop 臨時文件
sudo rm -r ./hadoop/logs/*   # 刪除日志文件
tar -zcf ~/hadoop.master.tar.gz ./hadoop   # 先壓縮再復制
cd ~
scp ./hadoop.master.tar.gz Slave1.Hadoop:/usr/hadoop

在Slave1.Hadoop上執行:

sudo rm -r /usr/hadoop    # 刪掉舊的(如果存在)
sudo tar -zxf ~/hadoop.master.tar.gz -C /usr
sudo chown -R hadoop /usr/hadoop

另外你也可以使用U盤進行拷貝(親測)

  • 首次啟動需要再Master上執行hdfs namenode -format對NadmeNode格式化
  • 啟動Hadoop:
start-all.sh   #這個可執行文件在`/usr/hadoop/sbin`下

通過命令 jps可以查看各個節點所啟動的進程。正確的話,在 Master 節點上可以看到 如下進程:

測試啟動結果

Slave節點可以看到如下進程:
Slave節點查看驗證

注意:缺少進程代表出現問題,另外還需要在 Master 節點上通過命令 hdfs dfsadmin -report查看 DataNode 是否正常啟動,如果 Live datanodes 不為 0 ,則說明集群啟動成功。


  • 通過Web頁面查看hadoop集群:
通過Web查看集群
節點Slave2在線
通過Web查看集群

今后將分享Hadoop分布式集群的使用過程,406-讓我們共同成長。


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,702評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,143評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,553評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,620評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,416評論 6 405
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,940評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,024評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,170評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,709評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,597評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,784評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,291評論 5 357
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,029評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,407評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,663評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,403評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,746評論 2 370

推薦閱讀更多精彩內容