hadoop 2.2.0集群安裝詳細步驟(簡單配置,無HA)


  1. 安裝環境
    操作系統:CentOS 6.5 i586(32位)
    java環境:JDK 1.7.0.51
    hadoop版本:社區版本2.2.0,hadoop-2.2.0.tar.gz
  2. 安裝准備
    設置集群的hosts,切換到root用戶下,用vi編輯器修改/etc/hosts配置文件:
    vi /etc/hosts
    
    10.1.5.125 master
    10.1.5.126 slave1
    10.1.5.127 slave2
    
    127.0.0.1 localhost

    配置集群各個節點之間的ssh無密碼互信,也就是從master開始,ssh到master、slave1和slave2上都不需要密碼,反向ssh到master則不必設置。互信設置需要在hadoop2用戶下執行命令如下:

    ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 
    cat  ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
    scp ~/.ssh/authorized_keys hadoop@slave1:/home/hadoop/.ssh/
    scp ~/.ssh/authorized_keys hadoop@slave2:/home/hadoop/.ssh/

    這樣就將生成的授權秘鑰拷貝到了slave1和slave2的/home/hadoop2/.ssh目錄下,還需要執行非常重要的一步才能實現無密碼互信,修改權限:

    chmod 600 ~/.ssh/authorized_keys

    該步驟必須在master、slave1和slave2上分別執行

  3. hadoop安裝
    將hadoop-2.2.0.tar.gz拷貝到hadoop2用戶的工作目錄/home/hadoop2,執行解壓命令,並修改文件夾名稱為hadoop2:
    tar -zxvf hadoop-2.2.0.tar.gz
    mv hadoop-2.2.0 hadoop2

    先配置hadoop2的環境變量,修改~/.bash_profile(JAVA_HOME、PATH和CLASSPATH已經在root用戶下設置在/etc/profile文件中):

    vi .bash_profile
    
    export HADOOP_HOME=$HOME/hadoop2
    export HADOOP_MAPRED_HOME=${HADOOP_HOME}
    export HADOOP_COMMON_HOME=${HADOOP_HOME}
    export HADOOP_HDFS_HOME=${HADOOP_HOME}
    export YARN_HOME=${HADOOP_HOME}
    export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
    export HDFS_CONF_DIR=${HADOOP_HOME}/etc/hadoop
    export YARN_CONF_DIR=${HADOOP_HOME}/etc/hadoop
    export HADOOP_LOG_DIR=${HADOOP_HOME}/logs
    export HADOOP_PID_DIR=/var/hadoop/pids
    
    執行source命令,立即生效:
    source .bash_profile

    進入hadoop2的配置文件夾~/hadoop2/etc/hadoop/目錄下,修改配置各個文件,
    core-site.xml:

    vi core-site.xml
    
    <configuration>
    <property>
    <name>fs.defaultFS</name>
    <value>hdfs://master:9000</value>
    </property>
    
    <property>
    <name>io.file.buffer.size</name>
    <value>131072</value>
    </property>
    
    <property>
    <name>hadoop.tmp.dir</name>
    <value>file:/home/hadoop2/tmp</value>
    <description>Abase for other temporary directories.</description>
    </property>
    
    </configuration>

     hdfs-site.xml:

    vi hdfs-site.xml
    
    <configuration>
    <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>master:9001</value>
    </property>
    
    <property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/home/hadoop2/dfs/name</value>
    </property>
    
    <property>
    <name>dfs.datanode.data.dir</name>
    <value>file:///home/hadoop2/dfs/data,/hdfs/data</value>
    </property>
    
    <property>
    <name>dfs.replication</name>
    <value>2</value>
    </property>
    
    <property>
    <name>dfs.webhdfs.enabled</name>
    <value>true</value>
    </property>
    
    </configuration>

    hadoop-env.sh(本機的安裝路徑為/opt/jdk1.7):

    vi hadoop-env.sh
    
    export JAVA_HOME=${JAVA_HOME}

    yarn-site.xml:

    vi yarn-site.xml
    
    <configuration>
    <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
    </property>
    
    <property>
    <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
    <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
    
    <property>
    <name>yarn.resourcemanager.address</name>
    <value>master:8032</value>
    </property>
    
    <property>
    <name>yarn.resourcemanager.scheduler.address</name>
    <value>master:8030</value>
    </property>
    
    <property>
    <name>yarn.resourcemanager.resource-tracker.address</name>
    <value>master:8031</value>
    </property>
    
    <property>
    
    <name>yarn.resourcemanager.admin.address</name>
    <value>master:8033</value>
    </property>
    
    <property>
    <name>yarn.resourcemanager.webapp.address</name>
    <value>master:8088</value>
    </property>
    </configuration>

    mapred-site.xml:

    vi mapred-site.xml
    
    <configuration>
    <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    </property>
    
    <property>
    <name>mapreduce.jobhistory.address</name>
    <value>master:10020</value>
    </property>
    
    <property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>master:19888</value>
    </property>
    
    </configuration>

    slaves:

    vi slaves
    
    master
    slave1
    slave2

    此設置中,將master也作為一個datanode節點來使用,只有在集群機器數量不足的情況下才會如此設置
    這樣就設置完成了,然后將/home/hadoop2/hadoop2目錄,整個拷貝到slave1和slave2的hadoop2的工作目錄下,就算完成了安裝:

    scp -r /home/hadoop2/hadoop2  slave1:/home/hadoop2
    scp -r /home/hadoop2/hadoop2  slave2:/home/hadoop2

     

  4. 啟動集群
    執行hadoop2的sbin目錄下的啟動腳本:

    sbin/start-dfs.sh
    (此命令啟動了namenode、secondaryNamenode以及datanode)
    
    sbin/start-yarn.sh
    (此命令啟動了ResourceManager和NodeManager,相當於hadoop1中的jobtracker和TaskTracker)

    然后用jps命令來查看運行的java進程,如果下列進程都存在,則說明集群正常啟動:

    NameNode
    SecondaryNameNode
    ResourceManager
    NodeManager
    DataNode

    至此,hadoop 2.2.0集群安裝完畢。

  5.  

    注意事項
    需要注意的一點是:hadoop集群的進程pid文件默認保存在linux的/tmp目錄下,而/tmp目錄為保存臨時文件的目錄,會定期清除,所以我們最好手動修改hadoop集群的pid文件的存放目錄。配置步驟如下:
    在/var目錄下創建目錄/var/hadoop/pids,作為hadoop的pid文件存放目錄,並且需要修改目錄的所有者和所屬組群,因為hadoop2用戶需要向該目錄下寫入pid文件

    cd /var
    sudo mkdir hadoop
    cd hadoop
    sudo mkdir pids
    
    sudo chown -R hadoop2:hadoop2 /var/hadoop/pids

    然后修改hadoop2的配置文件如下:

    vi hadoop-env.sh
    
    export HADOOP_PID_DIR=/var/hadoop/pids
    
    
    vi yarn-env.sh
    
    export YARN_PID_DIR=/var/hadoop/pids

    然后重新啟動集群就可以了。

  6.  

    轉載請注明出處:http://www.cnblogs.com/bxljoy/p/3880250.html 
     


免責聲明!

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



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