1. 程式人生 > >CentOS 6.5環境下搭建HDFS完全分散式

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時表明配置成功。 在這裡插入圖片描述