<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    herodby
    技術 筆記
    posts - 14,  comments - 14,  trackbacks - 0

    1.     Hadoop基本組成

          NameNode 主要存放文件映射和文件更改日志

          SecondaryNameNode 一個守護進程 定時從NameNode同步文件更改日志并合并成一條日志,方便hadoop每次重啟時 找到上次宕機的還原點。在后續的版本中會被backupNameNodenameNode集群取代。

          Jobtracker 任務調度守護進程

          Tasktracker 任務執行進程

          DataName  數據存儲節點,往往和Tasktracker部署在同一臺機器上。

    1.     安裝平臺:

    GNU/Linux hadoop不建議在win32平臺上使用,顧這里只介紹在linux系統上的 安裝和配置

    2.      所需的軟件:

    JavaTM1.5.x及以上的版本,必須安裝,建議選擇Sun公司發行的Java版本。

    ssh 必須安裝并且保證 sshd一直運行,以便用Hadoop 腳本管理遠端Hadoop守護進程。

    3.     下載

      本文使用的是 hadoop-0.20.203.0,筆者當前的穩定版本。

    下載地址 http://hadoop.apache.org/common/releases.html#Download

     

    4.     部署

    本文 使用的是 4 linux機器,hadoop.master 作為namenode節點,hadoop.second作為secondaryNameNode節點,hadoop.slave1 作為第一datanode節點,hadoop.slave2作為第二個datanode節點。

    5.     環境配置

    7.1  公共配置(集群中所有機器都需要的配置)

    Ø        編輯環境變量

    建議直接編輯 /etc/profile文件 增加 JAVA_HOMEHADOOP_HOME環境變量,具體事例如下所示:

       [root@hadoop ~]# vi /etc/profile

       增加如下幾行代碼

    export JAVA_OPTS='-Xms256m -Xmx512m'

    export JAVA_HOME=/usr/local/java

    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

    export JRE_HOME=/usr/local/java/jre

    export PATH=$JAVA_HOME/bin:$PATH

    export HADOOP_HOME=/usr/local/hadoop

    export PATH=$PATH:$HADOOP_HOME/bin

    筆者為了以后方便起停hadoop hadoopbin也目錄加到path中。

       : wq

       讓環境變量即時生效

       [root@hadoop ~]# source /etc/profile

    Ø         修改 hosts文件

       [root@hadoop ~]# vi /etc/hosts

       在打開的文件中添加如下配置

       192.168.2.17 hadoop.master

    192.168.2.19 hadoop.slave1

    192.168.2.14 hadoop.slave2

    192.168.1.197 hadoop.second

       增加如上幾個域名,具體ip地址由各自的實際情況定,這里只列出筆者實驗環境所需的。 Hadoop集群環境中 使用域名訪問的,所以需要把slavemaster等域名加到每臺服務器上。

    Ø        建立hadoop專屬用戶

       Groupadd  hadoop

       Useradd hadoop –g hadoop

       Passwd hadoop

       Changing password for user hadoop.

    New UNIX password:

    123456

    Retype new UNIX password:

    123456

    Ø        安裝軟件

       安裝JDK/usr/local下命名為java

    將下載好的hadoop-0.20.3.tar.gz文件上傳到master/usr/local/hadoop
    tar zxvf hadoop-0.20.3.tar.gz #
    解壓文件

    設置hadoop目錄的訪問權限

    chown –R hadoop:hadoop /usr/local/hadoop

    Ø        改機器名

         把每臺機器的 機器名改成localhost

         Vi /etc/sysconfig/network

         修改HOSTNAME  = localhost

         此處是沒搞清楚為什么的地方,實驗結果表明 必須改成localhost hadoop才能正常啟動。具體原理 目前還沒有搞清楚,只知其然,其所以然有待于以后研究。 

    7.2  每個節點不同的配置

    7.2.1               配置hadoop

       Hadoop的配置文件 在早期版本中都放在同一個文件里 hadoop-site.xml,在新版本中hadoop把配置文件做了區分,分成了:

    Core-site.xml        配置Common組件的屬性

    Hadoop-site.xml      配置HDFS組件的屬性

    Mapred-site.xml      配置map-reduce組件的屬性

    除了這3個配置文件以外 還有 hadoop-env.xml 用來設置 hadoop用到的環境變量;masters文件用來配置 SNN 節點地址 注意必須配置域名slaves文件 配置所有DN節點的地址,必須是域名

    7.2.2            Core-site.xml 配置實例

     DN節點 以及 NN節點,snn節點配置一至

       <property>

           <name>fs.default.name</name>           // 配置NN節點地址和端口號

           <value>hdfs://hadoop.master:9000</value>  //注意格式必須是 host:port的形式

    </property>

    <property>

           <name>hadoop.tmp.dir</name>           //hadoop臨時目錄用來存放nn臨時文件

           <value>/usr/local/hadoop/tmp</value>      //該目錄必須預先手工創建不能刪除

    </property>

    <property>

           <name>fs.checkpoint.period</name>      //snn檢查nn日志的時間周期

            <value>60</value>                   //單位是秒,正式環境上建議配置成12小時

    </property>

    <property>

            <name>fs.checkpoint.size</name>      //snn每次從nn上讀取的數據大小

            <value>67108864</value>            //通常情況下默認值就可以

    </property>

    7.2.3                Hdfs-site.xml

    Ø         NN 節點

        <property>

            <name>dfs.name.dir</name>        // 指定name 鏡像文件存放目錄,如不指定則

            <value>/usr/local/hadoop/hdfs/name</value> //默認為core-site中配置的tmp目錄

        </property>

    <property>

            <name>dfs.replication</name>     //數據節點冗余備份的數量,由于實驗只有2

            <value>1</value>                // NN 顧設置唯一,實際配置是可由實際情況

        </property>                         //配置,建議盡量大于3

        <property>

            <name>dfs.permissions</name>    //是否需要角色權限驗證,上傳文件時會用到,

            <value>false</value>             //如果為true ,需要綁定hadoop用戶角色

        </property>

        <property>

            <name>dfs.secondary.http.address</name>  //SNN web訪問地址。

            <value>hadoop.second:50090</value>

        </property>

    Ø         DN節點配置

        <property>

           <name>dfs.data.dir</name>             // 數據存放的目錄,如果不寫 默認為

           <value>/usr/local/hadoop/hdfs/data</value>  // core-site中配置的tmp目錄

        </property>

        <property>

           <name>dfs.replication</name>      //數據節點冗余備份的數量,由于實驗只有2

           <value>1</value>                 // NN 顧設置唯一,實際配置是可由實際情況

        </property>                         //配置,建議盡量大于3

        <property>

           <name>dfs.permissions</name>     //是否需要角色權限驗證,上傳文件時會用到

           <value>false</value>              //如果為true ,需要綁定hadoop用戶角色

        </property>

        <property>

           <name>dfs.secondary.http.address</name>   //SNN web訪問地址

           <value>hadoop.second:50090</value>

    </property>

    Ø           SN節點的配置

        <property>

           <name>dfs.name.dir</name> // 指定name 鏡像文件存放目錄,如不指定則

           <value>/usr/local/hadoop/hdfs/name</value> //默認為core-site中配置的tmp目錄

        </property>

        <property>

           <name>dfs.replication</name>    //數據節點冗余備份的數量,由于實驗只有2

           <value>1</value>                // NN 顧設置唯一,實際配置是可由實際情況

        </property>                       //配置,建議盡量大于3

        <property>

           <name>dfs.permissions</name>

           <value>false</value>

        </property>

        <property>

            <name>dfs.http.address</name>    NN web訪問地址,注意此處和其他節點不同

            <value>hadoop.master:50070</value>

        </property>

    Ø         Mapred-site.xml配置

    所有節點都一致

      <property>

        <name>mapred.job.tracker</name>

        <value>hadoop.master:9001</value> //必須為hostport的形式,不能直接寫ip

      </property>

    Jobtracker的分布式的配置方法目前沒設置成功,有待于繼續研究

    Ø         Masters文件配置和slaves文件配置 所有節點全部一致

    所有節點的masters 里面均配置 SNN的域名

    所有節點的slaves 里面均配置所有DN的域名,一行一個DN

    Ø         Hadoop-env.sh 文件配置

    里面是hadoop運行時定義的環境變量

    其他的都可以用默認值,但是有一項必須修改 就是javahome環境變量,指定到實際的javahome目錄。實例:

     export JAVA_HOME=/usr/local/java  

    1.     hadoop無用戶登錄配置

    hadoop用戶進入每臺機器:

    進入 /home/hadoop 目錄

    ssh-keygen -t rsa  #建立ssh目錄,敲回車到底

    1)        登錄NN服務器

    2)        進入/home/hadoop/.ssh目錄

    3)        scp -r id_rsa.pub hadoop@hadoop.slave1:/home/hadoop/.ssh/authorized_keys

    #master上的密鑰傳到slave1hadoop用戶下,重命名為authorized_keys

    4)        scp -r id_rsa.pub hadoop@hdoop.slave2:/home/hadoop/.ssh/authorized_keys

    #master上的密鑰傳到slave2hadoop用戶下,重命名為authorized_keys

    5)        scp -r id_rsa.pub hadoop@hadoop.second:/home/hadoop/.ssh/authorized_keys

    #master上的密鑰傳到snnhadoop用戶下,重命名為authorized_keys

     

    6)        hadoop用戶進入hadoop.slave1 /home/hadoop/.ssh目錄

    7)        cat id_rsa.pub >> authorized_keys

    #把自己的id_rsa.pub內容也放到authorized_keys

    8)        scp -r id_rsa.pub hadoop@hadoop.master:/home/hadoop/.ssh/authorized_keys_s1
    #
    slave1上的密鑰傳到masterhadoop用戶下

     

    9)        hadoop用戶進入hadoop.slave2  /home/hadoop/.ssh目錄

    10)     cat id_rsa.pub >> authorized_keys

    #把自己的id_rsa.pub內容也放到authorized_keys

    11)     scp -r id_rsa.pub hadoop@hadoop.master:/home/hadoop/.ssh/authorized_keys_s2
    #
    slave2上的密鑰傳到masterhadoop用戶下

    12)     hadoop用戶進入hadoop.second  /home/hadoop/.ssh目錄

    13)     cat id_rsa.pub >> authorized_keys

    #把自己的id_rsa.pub內容也放到authorized_keys

    14)     scp -r id_rsa.pub hadoop@hadoop.master:/home/hadoop/.ssh/authorized_keys_second
    #
    snn上的密鑰傳到masterhadoop用戶下

     

    15)     master,上執行以下操作

    16)     cat id_rsa.pub >> authorized_keys

    #將本地密鑰添加authorized_keys

    17)     cat authorized_keys_s1 >> authorized_keys

    18)     cat authorized_keys_s2 >> authorized_keys

    19)     cat authorized_keys_second >> authorized_keys

    20)     rm authorized_keys_second

    21)     rm authorized_keys_s1

    22)     rm authorized_keys_s2

    這樣主節點和從節點之間就可以不用密碼直接ssh訪問

    特別注意 authorized_keys 文件的訪問權限 必須設置成600

    登錄每臺機器 執行 chmod 600 authorized_keys

    2.     啟動hadoop

    hadoop用戶進入nn服務器的 /usr/local/hadoop/hadoop-0.20.203.0/bin目錄

    Ø         格式化hadoop

    Hadoop namenode –format

    Ø         啟動hadoop

    ./start-all.ssh  ,不建議這樣啟動 建議單獨啟動守護進程。

    Ø         Hadoop日志目錄

    /usr/local/hadoop/hadoop-0.20.203.0/logs

    啟動完檢查下啟動日志,啟動后 nn上查看

    hadoop-hadoop-namenode-master.log

    hadoop-hadoop-jobtracker-master.log

    因為 我們的 nn jobtracker 部署在同一臺機器上,所有master上會有2個日志

    登錄snn節點服務器 查看

    hadoop-hadoop-secondarynamenode-master.log

    這幾個沒錯誤就OK

    這時候就可以進入管理頁面看看了


    posted on 2011-12-08 13:14 鄧兵野 閱讀(3507) 評論(2)  編輯  收藏

    FeedBack:
    # re: 基于hadoop的云計算 第一篇 安裝配置篇
    2011-12-10 13:03 | tb
    好資料 學習了   回復  更多評論
      
    # re: 基于hadoop的云計算 第一篇 安裝配置篇
    2011-12-16 18:58 | -274°C
    好資料,收藏了,改天仔細看。  回復  更多評論
      

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    <2011年12月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(2)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲?V无码乱码国产精品| 亚洲精品偷拍视频免费观看| a级在线观看免费| 亚洲av片一区二区三区| 亚洲午夜一区二区三区| 久久亚洲高清观看| 99麻豆久久久国产精品免费| 不卡一卡二卡三亚洲| 72pao国产成视频永久免费| 在线观看亚洲天天一三视| 久久高潮一级毛片免费| 国产美女亚洲精品久久久综合| 黄色视屏在线免费播放| 国产亚洲精久久久久久无码| 四虎影视成人永久免费观看视频 | 久久久久久精品免费免费自慰| 亚洲欧洲日韩不卡| 亚洲免费中文字幕| 中文字幕无码精品亚洲资源网久久 | 亚洲视频免费在线看| 又大又硬又爽又粗又快的视频免费| 亚洲欧洲中文日产| 麻豆国产精品入口免费观看| 美女免费视频一区二区| 亚洲永久无码3D动漫一区| 8x8x华人永久免费视频| 国产精品亚洲午夜一区二区三区| 日韩a在线观看免费观看| 一区在线免费观看| 色婷婷六月亚洲婷婷丁香| 成年人视频在线观看免费| 深夜a级毛片免费视频| 亚洲精品无码久久久久去q | 永久免费av无码网站韩国毛片| 国产亚洲漂亮白嫩美女在线 | 亚洲Av永久无码精品黑人| 亚洲一区精品伊人久久伊人| 亚洲日韩国产精品乱| 6080午夜一级毛片免费看6080夜福利 | 免费精品一区二区三区在线观看| 一区二区三区免费精品视频 |