Hadoop集羣部署

簡介
Hadoop是Apache軟件基金會旗下的一個開源分佈式計算平臺。以Hadoop分佈式文件系統HDFS(Hadoop Distributed Filesystem)和MapReduce(Google MapReduce的開源實現)爲核心的Hadoop爲用戶提供了系統底層細節透明的分佈式基礎架構。
對於Hadoop的集羣來說,能夠分紅兩大類角色:Master和Salve。一個HDFS集羣是由一個NameNode和若干個DataNode組成的。其中NameNode做爲主服務器,管理文件系統的命名空間和客戶端對文件系統的訪問操做;集羣中的DataNode管理存儲的數據。MapReduce框架是由一個單獨運行在主節點上的JobTracker和運行在每一個從節點的TaskTracker共同組成的。主節點負責調度構成一個做業的全部任 務,這些任務分佈在不一樣的從節點上。主節點監控它們的執行狀況,而且從新執行以前的失敗任務;從節點僅負責由主節點指派的任務。當一個Job被提交時,JobTracker接收到提交做業和配置信息以後,就會將配置信息等分發給從節點,同時調度任務並監控TaskTracker的執行。
從上面的介紹能夠看出,HDFS和MapReduce共同組成了Hadoop分佈式系統體系結構的核心。HDFS在集羣上實現分佈式文件系統,MapReduce在集羣上實現了分佈式計算和任務處理。HDFS在MapReduce任務處理過程當中提供了文件操做和存儲等支持,MapReduce在HDFS的基礎上實現了任務的分發、跟蹤、執行等工做,並收集結果,兩者相互做用,完成了Hadoop分佈式集羣的主要任務。html

安裝包:http://hadoop.apache.org/releases.html#Release+Notesjava

1:環境準備
3臺機器,系統自定
>1. 下載jdk包,配置環境變量  http://www.Oracle.com/technetwork/java/javase/index.html
>2. 配置虛擬環境
    dns解析
    vim  /etc/resolv.conf 
        nameserver 223.5.5.5
    主機路由
    vim /etc/hosts
        127.0.0.1       localhost localhost.localdomain
        10.68.4.49      master
        10.68.4.55      slave1
        10.68.4.56      slave2
    更改主機名
    hostname master  ###退出從新登陸 或者 [root@master ~]#  經過這個能夠看到主機名是否已經變成你須要的
    ####上述很重要,若是仍是localhost的,後續啓動端口時,會以127.0.0.1啓動,主從不能相互通訊

    
>3. 測試
    互ping  ping master;ping slave1 成功說明環境OKnode

2:ssh無祕鑰認證
Hadoop運行過程當中須要管理遠端Hadoop守護進程,在Hadoop啓動之後,NameNode是經過SSH(Secure Shell)來啓動和中止各個DataNode上的各類守護進程的。這就必須在節點之間執行指令的時候是不須要輸入密碼的形式,故咱們須要配置SSH運用無密碼公鑰認證的形式,這樣NameNode使用SSH無密碼登陸並啓動DataName進程,一樣原理,DataNode上也能使用SSH無密碼登陸到 NameNode。
注意:若是你的Linux沒有安裝SSH,請首先安裝SSH
Ubuntu下安裝ssh:sudo apt-get install openssh-server
Fedora下安裝ssh:yum install openssh-server
>1. 建立無密碼祕鑰對
    ssh-keygen  -t rsa
    三回車便可
    根據回車以後的內容能夠判斷在當前用戶的家目錄下產生了id_rsa id_rsa.pub 
    查驗當前用戶家目錄下是否有.ssh 目錄,若無建立此目錄
    ls -al /home/user/
    mkdir /home/user/.ssh
    cd /home/user/.ssh
    cat id_rsa.pub >>authorized_keys   ####把上述建立的文件追到到此文件中
    chmod 700 -R /home/user 
    chmod 755 /home/user/.ssh
    chmod 600 /home/user/.ssh/authorized_keys
>2. 開啓祕鑰認證
    vim /etc/ssh/sshd_config 
    PermitRootLogin yes     ####避免不能登陸,能夠先放開root登陸權限
    RSAAuthentication yes    ###註釋掉這三行即爲開啓祕鑰認證
    PubkeyAuthentication yes
    AuthorizedKeysFile      .ssh/authorized_keysweb

>3. 重啓ssh服務
    /etc/init.d/sshd restart or service sshd restart or centos7:systemctl restart sshd.service 
>4. 把公鑰拷貝到其它機器上,並追加到authorized_keys此文件中apache

>5. 全部機器重複上述操做vim

>6. 校驗
    ssh slave ####第一次認證須要輸入yes,再次測試不須要輸入任何東西登陸成功即爲OKcentos

3:hadoop 安裝,先安裝一臺,其他的直接scp過去便可
>1. 解壓包至你想要的目錄
    個人是/usr/local/hadoop
    mkdir /usr/local/hadoop/tmp
    設置Hadoop環境變量
    export HADOOP_HOME=/usr/hadoop
    export PATH=$PATH :$HADOOP_HOME/bin
>2. 配置文件
    cd /usr/local/hadoop/etc/hadoop
    vim core-site.xml
    <configuration>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/data/hadoop/tmp</value>
                <!--臨時目錄得提早建立才行-->
                 <description>A base for other temporary directories.</description>
         </property>
    <!-- file system properties -->
         <property>
                <name>fs.default.name</name>
                 <value>hdfs://master:9000</value>
         </property>
    </configuration>
    
    vim hadoop-env.sh  ####指定jdk路徑
    export JAVA_HOME=/data/java/jdk安全

    vim 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:/usr/hadoop/dfs/name</value>  
       </property-->
      <!--property>  
              <name>dfs.datanode.data.dir</name>  
              <value>file:/usr/hadoop/dfs/data</value>  
       </property-->
       <property>
               <name>dfs.replication</name>
               <value>3</value>
        </property>
        <property>
                 <name>dfs.webhdfs.enabled</name>
                  <value>true</value>
         </property>
    </configuration>服務器

    vim  mapred-site.xml
    <configuration>
        <!--property>
                <name>mapred.job.tracker</name>
                <value>http://10.68.4.49:9001</value>
        </property-->
          <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>架構

     vim yarn-site.xml 
     <configuration>

    <!-- Site specific YARN configuration properties -->
       <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>
    
    vim  slaves
    slave1
    slave2

>3. 拷貝至其餘機器
    scp -r /usr/local/hadoop user@IP:/usr/local
    
>4. server 格式化hdfs文件系統
    Hadoop namenode -format ###初次啓動才須要
    cd /usr/local/hadoop/sbin
    主從依次啓動
    ./start-all.sh

>5. 校驗
     hadoop dfsadmin -report   查看Hadoop集羣的狀態
    

    也能夠經過jps查看
    
    網頁校驗
    http://10.68.4.49:8088

    
    http://10.68.4.49:50070
    
    若是不行的話就看日誌吧
    日誌默認目錄:/usr/local/hadoop/logs
    能夠自定義,修改此文件:vim /usr/local/hadoop/etc/hadoop/log4j.properties
    
    hadoop dfsadmin -safemode leave  關閉安全模式

    各文件參數詳解見:

    http://www.cnblogs.com/yinghun/p/6230436.html

相關文章
相關標籤/搜索