1. 程式人生 > >hadoop安裝簡要指南

hadoop安裝簡要指南

自己安裝hadoop時遇到了很多坑,這裡把驗證成功的方法記錄一下。

1. 部署叢集

首先你需要有幾臺伺服器,將它們的name和ip都記錄下來,然後將它們記錄到每一臺機器的/etc/hosts檔案中,比如:

192.168.119.128 namenode 192.168.119.129 datanode1 192.168.119.130 datanode2

然後需要配置這幾臺機器之間的免密登入,這一步非常非常容易出錯,一定要當心。首先先生成每臺機器的金鑰:

ssh-keygen -t rsa -P ‘’

然後將所有機器下/root/.ssh/id_rsa.pub的內容貼上到authorized_keys檔案,放在每臺機器的/root/.ssh/目錄下。 然後各個機器之間ssh來回登入一下,將首次免密登入需要輸入的yes給搞定(不來回登入一下的話,之後hadoop安裝可能會報錯)。

2. 安裝hadoop

安裝hadoop時記住自己的使用者名稱,不要隨便用sudo!用sudo建立的目錄是管理員許可權,普通使用者無法建立檔案。 在每一臺機器上建立hadoop的工作資料夾,比如:

mkdir /root/hadoop mkdir /root/hadoop/tmp mkdir /root/hadoop/var mkdir /root/hadoop/dfs mkdir /root/hadoop/dfs/name mkdir /root/hadoop/dfs/data

然後下載一個hadoop放到namenode機器上然後解壓縮,依次修改如下檔案:

  • hadoop-2.8.0/etc/hadoop/slaves,新增datanode的名字
datanode1
datanode2
  • hadoop-2.8.0/etc/hadoop/hadoop-env.sh,新增
export   JAVA_HOME=/usr/java/jdk1.8.0_66
  • hadoop-2.8.0/etc/hadoop/core-site.xml,在configuration之間新增
   <property>
        <name>hadoop.tmp.dir</name>
        <value>/root/hadoop/tmp</value>
   </property>
   <property>
        <name>fs.default.name</name>
        <value>hdfs://namenode:9000</value>
   </property>
  • hadoop-2.8.0/etc/hadoop/hdfs-site.xml,在configuration之間新增
<property>
   <name>dfs.name.dir</name>
   <value>/root/hadoop/dfs/name</value>
</property>
<property>
   <name>dfs.data.dir</name>
   <value>/root/hadoop/dfs/data</value>
</property>
<property>
   <name>dfs.replication</name>
   <value>2</value>
</property>
<property>
      <name>dfs.permissions</name>
      <value>false</value>
</property>
  • 複製hadoop-2.8.0/etc/hadoop/mapred-site.xml.template為mapred-site.xml,新增
<property>
   <name>mapred.job.tracker</name>
   <value>hdfs://namenode:49001</value>
</property>
<property>
      <name>mapred.local.dir</name>
       <value>/root/hadoop/var</value>
</property>
<property>
       <name>mapreduce.framework.name</name>
       <value>yarn</value>
</property>
  • hadoop-2.8.0/etc/hadoop/yarn-site.xml,新增
<property>
        <name>yarn.resourcemanager.hostname</name>
        <value>namenode</value>
   </property>
   <property>
        <name>yarn.resourcemanager.address</name>
        <value>${yarn.resourcemanager.hostname}:8032</value>
   </property>
   <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>${yarn.resourcemanager.hostname}:8030</value>
   </property>
   <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>${yarn.resourcemanager.hostname}:8088</value>
   </property>
   <property>
        <name>yarn.resourcemanager.webapp.https.address</name>
        <value>${yarn.resourcemanager.hostname}:8090</value>
   </property>
   <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>${yarn.resourcemanager.hostname}:8031</value>
   </property>
   <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>${yarn.resourcemanager.hostname}:8033</value>
   </property>
   <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
   </property>
   <property>
        <name>yarn.scheduler.maximum-allocation-mb</name>
        <value>8182</value>
        <discription>單個任務最大可申請記憶體,預設8182MB</discription>
   </property>
   <property>
        <name>yarn.nodemanager.vmem-pmem-ratio</name>
        <value>2.1</value>
   </property>
   <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>2048</value>
        <discription>該節點可使用記憶體</discription>
</property>

然後使用scp命令將hadoop資料夾複製到其他所有節點上。

3. 啟動hadoop

執行初始化指令碼:

hadoop-2.8.0/bin/hadoop namenode -format

啟動hadoop:

hadoop-2.8.0/sbin/start-all.sh

可是使用如下命令檢視啟動後的狀態:

hadoop-2.8.0/bin/hadoop dfs admin -report檢視hadoop狀態

使用50060埠可以檢視hadoop overview,使用8088埠可以檢視hadoop叢集情況。