CentOS 6.5環境下搭建HDFS完全分散式
準備工作
首先需要準備4臺CentOS6.5虛擬機器,並且將網路與JDK配置完全,如需配置JDK詳見上次部落格。 注意:在安裝JDK時需要先確認一下系統中是否自帶JDK,控制檯輸入java -version如果顯示了JDK版本,最好先解除安裝後安裝並配置自己下載的JDK
之後我們需要對這四臺虛擬機器做出合理設計,如我的虛擬機器主機名分別為Lucian-01到Lucian-04。Lucian-01主要為NameNode,Lucian-02為SecondaryNameNode與DataNode,Lucian-03和04都為DataNode。其中各個組成的作用已在上篇做出總結,這裡就不重複了。
分工好後需要進一步配置hosts: 命令列:vi /etc/hosts/ 檔案開啟後在檔案結尾處分別新增上四臺虛擬機器對應的IP地址與主機名。 注意:四臺虛擬機器都需要修改hosts檔案
配置免密登入
配置免密登入之前需要先弄清楚幾臺虛擬機器之間的連線關係,即NameNode連線其餘所有節點。所以本次將會用Lucian-01連線自身與其餘節點。 首先在每個節點的命令列中輸入:ssh-keygen -t rsa,這樣就會在每個節點下的根目錄中的 .ssh目錄中生成一個公鑰與私鑰。 最後在NameNode節點(Lucian-01)中執行:
配置Hadoop檔案
首先下載並解壓Hadoop檔案。下載地址.
之後修改Hadoop/etc路徑下的hdfs-site.xml,將以下資料新增到標籤中
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>Lucian-02:50090</value>
</property>
注意:如果主機名不為Lucian-02時注意修改其中的程式碼
再將以下資料新增到hadoop/etc中的core-site.xml中的<configuration>
標籤中
<property>
<name>fs.defaultFS</name>
<value>hdfs:Lucian-01:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/var/abc/hadoop/local</value>
</property>
注意:如果主機名不為Lucian-01時注意修改其中的程式碼
最後將目錄下的slaves中新增DataNode節點的主機名 注意:每個主機名之間必須換行,也不要有多餘的空格
將配置好的Hadoop檔案分發到其餘節點上
因為之前的操作都是在Lucian-01上進行的,所以需要執行一下命令將檔案遠端傳送給其餘節點。 scr -r hadoop-2.6.5 [email protected]:/opt/software/ scr -r hadoop-2.6.5 [email protected]:/opt/software/ scr -r hadoop-2.6.5 [email protected]:/opt/software/ 注意:需要根據主機名、自身檔案路徑與目標路徑對語句進行簡單調整
HDFS初始化與服務啟動
首先需要控制檯輸入 jps 來確認每個節點中都沒有Hadoop服務的相關程序,如果有可以使用 killall java命令 來終止程序。 使用hdfs namenode -format命令來對HDFS初始化,如果提示hdfs命令不存在請參考上篇配置Hadoop環境。 再初始化完成後可以執行hadoop/sbin目錄中的start-dfs.sh來啟動Hadoop服務。 最後通過瀏覽器輸入 NameNode主機名:50070 來確認是否配置成功。如圖,當Hadoop首頁Live Node為3時表明配置成功。