搭建hadoop、hdfs環境--ubuntu(完全分布式)


最近在學習hadoop相關知識,就在本機上安裝了hadoop,遇到了一些坑,也學到了不少。僅此記錄我的安裝過程,及可能遇到的問題。供參考。交流溝通見頁末。

軟件准備

>  虛擬機(VMware)

個人情況下,不太可能有多台電腦,裝一個虛擬機來進行實驗。虛擬機中我用的是Linux的ubuntu版本。

具體安裝就不在這里說明了,提示的是:安裝的網絡模式選bridged,如果出現無法上網或者不能與本機鏈接,可以使用多網卡,增加NAT模式(如工作網絡導致這種情況)。

>hadoop:去apache下載hadoop(http://hadoop.apache.org/releases.html),我選的是2.6.5版本;

>  Java環境

JDK:去(http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)下載jdk,我選的是tar.gz,這樣就知道解壓到哪里了。

 

>  WinScp

后期三台虛擬機之間需要進行文件的互通,這里使用winscp可能會更方便(當然也有其他方式,比如wget下載網絡文件,scp進行虛擬機之間的文件傳輸。)

 

  安裝啦!

 

 

 >第一步:裝好VMware,創建三個虛擬機(hadoop至少需要三個,一個master,兩個node。為什么需要以后再說啦!)並將下載的hadoop2.6.5和jdk導入到VMware中

chap1:VMware:有master、nod1、nod2,使用的是個人創建賬號(shj,網絡上都是創建了hadoop賬號來進行管理,我這里就不費那個事了。)

 

通過WinScp導入文件時,提示虛擬機沒有開啟SFTP服務。這時需要對虛擬機做一些配置。

chap2:開通SSH服務進入虛擬機的命令行(CRTL+ALT+T),使用root賬號(sudo su )

首先更新源文件(atp-get update)-->下載/安裝yum文件(apt-get install -y yum)-->下載/安裝ssh服務(apt-get install -y openssh-server)-->啟動服務(service ssh start,默認開啟 )

   --->

chap3:文件傳輸:使用WinScp成功登陸到虛擬機中,將hadoop和jdk文件導入。我放到/home/shj/Documents中

chap4:解壓文件到指定目錄

切換回shj賬號(su shj)

hadoop解壓:tar -xzvf /home/shj/Documents/hadoop-2.6.5.tar.gz -C ~/hadoop     --->將壓縮文件解壓到指定目錄中(沒有該目錄則創建,mkdir -p ~/hadoop)

jdk解壓:tar -xzvf /home/shj/Documents/jdk-8u144linux-x64.tar.gz -C~/jdk    --->將壓縮文件解壓到指定目錄中(同上)

 

另外兩台機器,重復上述操作。

 

第二步:配置SSH秘鑰

我們使用的shj賬號,配置的目的使得三台虛擬機能夠通過該賬號相互進行通信。(對root賬號,不可行)

chap1:生成ssh密鑰對(私鑰和公鑰)

  mkdir -p ~/.ssh(如果沒有.ssh則生成一個,ubuntu的好像是沒有的) -->ssh-keygen -t dsa -p '' -f ~/.ssh/key_id(生成ssh密鑰對,放在~/.ssh目錄下)

 將生成的key_id.pub寫入文件(authorized_keys)中,確保文件名沒有問題。

chap2:進行本機的免密登錄:ssh localhost

如果報錯,要求輸入密碼,則有問題(一般重啟一下就可以了,如果還有問題,則可能是你的家目錄和私鑰的權限不對,導致系統不允許免密登錄)

chap3:另外兩台機器同等操作

同chap2

chap4:匯總三台虛擬機的key_id.pub,三個公鑰追加到同一個authorized_keys

通過scp命令(WinScp也可以)將三個公鑰並共享該公鑰。也就是三台虛擬機的公鑰是相同的。

chap5:配置/etc/hosts、/etc/hostname文件

將ip對應的主機名進行映射

chap6:三台虛擬機之間的免密登錄(修改了配置文件,服務需要重啟。)

第一次登錄,會問要不要。當然yes啦!!!完成這一步了。

 

第三步:配置系統環境

這一步我們需要告訴Linux,我們裝的東西在哪里,裝了哪些命令

配置系統環境變量(vim /etc/bash.bashrc)

在文件末尾追加:

export JAVA_HOME=/home/shj/jdk(這里我做了一些變化,解壓后的地址應該不是這些。以實際為准)

export HADOOP_INSTALL=/home/shj/hadoop(同上)

export PATH=$PATH:/home/shj/hadoop/bin:/home/shj/jdk/bin(同上)

完成后,激活一下配置。執行命令:source /etc/bash.bashrc

驗證jdk是否完成配置:java -version

沒有問題!

另外兩台機器,重復上述(也可以后期拷貝到另外兩台機器上。見仁見智!)

 

第四步:配置hadoop的site文件

>chap1:四個文件(地址:~/hadoop/etc/hadoop)

 core-site.xml(全局配置)、mapred-site.xml(MR配置)、hdfs-site.xml(hdfs配置)、hadoop-env.sh(...)

 文件: core-site.xml

文件:mapred-site.xml.template

 

 

文件:hdfs-site.xml

 

 文件:hadoop-env.sh

需要絕對路徑,要不然會有問題的!

>chap2:寫主機名文件

vim masters

 

vim slaves 

>chap3:將配置的文件同步到另外兩台機器

完成所有機器相同配置

 

 第四步:啟動hadoop

如果這些事情都做完了(當然系統配置不要忘了,這個用scp不好使。)那么我們開始啟動我們的hadoop吧(如果困難,重啟試試

>  chap1:格式化

  在master節點上格式化:hadoop namenode -format

>  cha2:啟動

  cd ~/hadoop/sbin  -->source start-all.sh -->沒有問題,則執行命令:jps

在master節點執行jps

 

在node節點執行jps

 

這樣就結束了。成功的啟動了你的hadoop。

 

hadoop支持web界面,可以在瀏覽器中輸入http://192.168.74.134:50070 

你可以在web界面中查看你的hadoop運行情況。是不是很爽?!

 

 

注意事項/個人經驗

  1、由於是dhcp網絡配置,如果重啟可能會導致ip地址的變化,這個時候要么將網絡設置成靜態網絡要么重新配置一些/etc/hosts文件

  2、不同的階段問題的的原因可能不一樣,其中ssh配置出的問題會多一點。基本上重啟一下就能解決。

  3、在啟動hadoop時,如果遇到問題就查看對應目錄下的/hadoop/logs文件。master和node哪個錯了,查看哪個的日志,直接翻到最后一行,往上捋

 

 

轉載請注明出處!歡迎郵件溝通:shj8319@sina.com

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM