Hadoop分佈式部署

  1. 準備硬件環境

    此次用到三臺計算機,三臺計算機的系統都是Linux,並且以安裝好JAVA。IP地址和角色爲:

    namenode:192.168.0.1

    datanode:192.168.0.2

    datanode:192.168.0.3

    三臺計算機之間能夠正確解析彼此。因此需要修改/etc/hosts文件,主節點上需要將所有節點的IP地址以及相對應的主機名添加到文件中。作datanode的節點則只需將自己以及主節點的IP地址以及相對應的主機名添加到文件中即可。

  2. 安裝Hadoop

    由於Hadoop要求所有機器上hadoop的部署目錄結構要相同,並且都有一個相同的用戶名的帳戶。所以要在三臺計算機上先創建好hadoop用戶並且切換到hadoop用戶。

    選擇將hadoop解壓在hadoop用戶的家目錄中。爲了方便以後hadoop版本更新,可以創建一個軟鏈接:ln -s hadoop-版本 hadoop 


  3. 建立ssh

    hadoop的主節點是通過ssh來控制其他節點的進程的,則需要兩臺計算機之間不需要輸入密碼,所以要公鑰私鑰的方式來認證。

    首先要確保每臺計算機上都有ssh服務並且正常啓動。然後在主節點生成一對密鑰,再將公鑰發給其他的節點。爲了方便管理文件,可在hadoop用戶家目錄中生成新的文件來保存公鑰私鑰。緊接着將所有的公鑰文件的權限修改:chmod 644 authorized_keys,確保其他人不可有寫權限。最後需要對三臺計算機上的sshd服務進行配置,修改文件/etc/ssh/sshd_config。修改如下:

    PasswordAuthentication no

    AuthorizedKeysFile /home/hadoop/.ssh/authorized_keys

    配置完成後可ssh連接看是否是不是不用輸入密碼就可連接(若兩臺主機第一次連接則需要輸入yes)

  4. hadoop環境變量

    在/home/hadoop/hadoop/conf配置文件目錄中找到hadoop-env.sh,設置JAVA_HOME變量

  5. hadoop配置文件

    這conf中找到slaves文件,此文件是指定datanode的,一行指定一個主機名。master文件是用來指定namenode的,則將主節點的主機名填入即可。

    在安裝目錄中找到core-site.xml、hdfs-site.xml以及mapred-site.xml並進行修改。

    core-site.xml:

    <property>

      <name>hadoop.tmp.dir</name>

      <value>/home/hadoop/hadoop/tmp</value>

    </property>

    <property>

      <name>fs.defaultFS</name>

      <value>hdfs://(master IP):9000</value>

    </property>


    mapred-site.xml:
    <property>

      <name>mapreduce.jobtracker.address</name>

      <value>(master IP):9001</value>

      <description>NameNode</description>

    </property>


    hdfs-site.xml不需要修改

  6. 部署hadoop

    將配置好的文件傳給其他節點,保證目錄結構一致

  7. 啓動hadoop

    啓動之前要先格式化namenode,進入/home/hadoop/hadoop下執行:bin/hadoop namenode -format

    bin/下有許多啓動腳本,根據需要來使用:

    start-all.sh  啓動所有守護

    start-mapred.sh  啓動map/reduce守護。Jobtracker和Tasktracker

    start-dfs.sh  啓動hadoop DFS守護。Namenode和Datanode

    有啓動腳本也自然都相對應的停止腳本

  8. hadoop在線添加節點

    在slaves文件添加新節點的IP或者主機名,然後新節點上啓動服務並執行start-balance.sh

  9. hadoop在線刪除節點

    在master上修改mapred-site.xml:

    <property>

      <name>dfs.hosts.exclude</name>

      <value>/home/hadoop/hadoop/conf/datanode-excludes</value>

    </property>

    然後創建datanode-excludes文件,並添加要刪除的主機,一行一個。接着執行:bin/hadoop dfsadmin -refreshNodes進行節點刷新,此操作後會進行後臺遷移數據,等刪除節點的狀態爲Decommissioned即可安全關閉。

  10. datanode白名單

    http://www.tuicool.com/articles/zINvYbf


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章