posts - 28, comments - 37, trackbacks - 0, articles - 0

          hadoop-0.23 hdfs搭建1

          Posted on 2011-11-10 21:29 俞靈 閱讀(3072) 評論(3)  編輯  收藏

          使用hadoop-0.23 搭建hdfs,  namenode + datanode

          1.       HDFS-1052引入了多namenode, HDFS架構變化較大, 可以參考hortonworks的文章: http://hortonworks.com/an-introduction-to-hdfs-federation/.

          我將在接下來的博客里把此文章翻譯一下(另外還有: http://developer.yahoo.com/blogs/hadoop/posts/2011/03/mapreduce-nextgen-scheduler/).

          所有namenode共享datanode, 各個namenode相互獨立, 互不影響, 每個namenode都有一個backupNodeSecondaryNamenode,提供主備切換功能和備份元數據的功能.

          下文的配置信息主要參考HDFS-2471.

          2.       環境:

          a)         五臺機器 ,linux系統,

          b)         互相添加ssh-key,后應該可以不用密碼互連

          c)         編譯好的0.23版本的包: hadoop-0.23.0-SNAPSHOT.tar.gz

          d)         每臺機器需要安裝java1.6或以上版本.并把JAVA_HOME加到$PATH.

          e)         最好加上psshpscp工具.

          這里把五臺機器命名為:

           Myhost1

                Myhost2

                Myhost3

          Myhost4

                Myhost5

               假設我們需要搭建如下集群:

          Myhost1Myhost2開啟 namenode, 另外三臺機器啟動datanode服務.

          3.       首先把分配到五臺機器上,然后解壓.(推薦使用pscp, pssh命令)

          4.       然后在五臺機器上安裝java,并把JAVA_HOME加到$PATH

          5.       進入解壓后的hadoop目錄, 編輯 etc/hadoop/hdfs-site.xml

          a)         Myhost1的配置如下(其中hadoop存放在/home/yuling.sh/目錄下):

           <property>
              <name>fs.defaultFS</name>
              <value>hdfs:// Myhost1:9000</value>
            </property>

            <property>
              <name>dfs.namenode.name.dir</name>
              <value>/home/yuling.sh/cluster-data</value>
            </property>

          b)         Myhost2的配置如下(其中hadoop存放在/home/yuling.sh/目錄下):

           <property>
              <name>fs.defaultFS</name>
              <value>hdfs:// Myhost2:9000</value>
            </property>

            <property>
              <name>dfs.namenode.name.dir</name>
              <value>/home/yuling.sh/cluster-data</value>
            </property>

           

          c) 這里把Myhost1集群起名ns1, Myhost1集群起名ns2, 三臺slavaetc/hadoop/hdfs-site.xml配置如下:

           <property>
              <name>dfs.federation.nameservices</name>
              <value>ns1,ns2</value>
            </property>


            <property>
              <name>dfs.namenode.rpc-address.ns1</name>
              <value>hdfs:// Myhost1:9000</value>
            </property>


            <property>
              <name>dfs.namenode.http-address.ns1</name>
              <value> Myhost1:50070</value>
            </property>

            <property>
              <name>dfs.namenode.rpc-address.ns2</name>
              <value>hdfs:// Myhost2:9000</value>
            </property>
            <property>
              <name>dfs.namenode.http-address.ns1</name>
              <value> Myhost2:50070</value>
            </property>

            <property>
              <name>dfs.datanode.data.dir</name>
              <value>/home/yuling.sh/datanode</value>
            </property>  

          d) 解釋:namenode需要指定兩個參數, 用于存放元數據和文件系統的URL. Datanode需指定要連接的namenode rpc-addresshttp-address. 以及數據存放位置dfs.datanode.data.dir.

          6.       然后編輯兩臺namenodehadoop目錄下 etc/hadoop/slaves文件. 加入三臺slave機器名:

          Myhost3

          Myhost4

                Myhost5

           

          7.       現在需要格式化namenode, 由于namenode共享datanode, 因此它們的clusterid需要有相同的名字.這里我們把名字設為 yuling .命令如下:

          bin/hdfs namenode –format –clusterid yuling

          兩臺機器格式話之后會在/home/yuling.sh/cluster-data下生成元數據目錄.

          8.       啟動Myhost1Myhost2上的namenodeslavedatanode服務. 命令如下:

             sbin/start-hdfs.sh

          分別在Myhost1Myhost2下運行.

          9.       啟動之后打開瀏覽器, 分別查看兩namenode啟動后狀態. URL:

          Myhost1:50070Myhost2:50070

          10.   這期間可能會遇到許多問題, 但是可以根據拋出的異常自己解決, 我這里就不多說了.

          下一篇博客將講述如何啟動backupNodeSecondaryNamenode

           

          Feedback

          # re: hadoop-0.23 hdfs搭建1  回復  更多評論   

          2011-11-23 15:10 by doban
          建議博主寫一個篇比較詳盡的安裝文檔。我根據這個文檔調試了1天時間都沒能正常運行起來。

          # re: hadoop-0.23 hdfs搭建1  回復  更多評論   

          2011-11-28 17:17 by klose
          defaultFS應該在$HADOOP_CONF_DIR/core-site.xml配置,關注Hadoop0.23.請關注http://blog.sina.com.cn/jiangbinglover

          # re: hadoop-0.23 hdfs搭建1  回復  更多評論   

          2012-02-09 16:12 by sunceenjoy
          我按照本文最終試驗成功,這里的步驟是對的。不過遺漏了幾點:
          1.要在hadoop-env.sh里面配置JAVA_HOME,(把注釋exprot java_home改成你的目錄)。注意:hadoop-0.23 里是yarn-env.sh 要改成hadoop-env.sh,具體原因在libexec的某個腳本里面
          2.把slaves跟這個hadoop-env都移動到etc/hadoop里面去。具體原因也在libexec的某個腳本里面(做了個判斷,如果conf目錄存在,則用此作為目錄,否則用etc/hadoop為配置目錄)。這真是瞎搞,統一一下不就得了。

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


          網站導航:
           
          主站蜘蛛池模板: 平乡县| 锡林浩特市| 和硕县| 合川市| 疏附县| 商河县| 玛沁县| 福建省| 临邑县| 通海县| 彰化县| 盱眙县| 哈尔滨市| 德州市| 莱阳市| 漯河市| 桐城市| 丹棱县| 荥阳市| 营口市| 建阳市| 台东县| 旬阳县| 秭归县| 苗栗市| 鹰潭市| 财经| 寿光市| 丹凤县| 承德县| 龙州县| 阜城县| 奉贤区| 双流县| 灵丘县| 嵊泗县| 青田县| 金华市| 绥芬河市| 蒲江县| 商水县|