paulwong

          配置secondarynamenode

          NAME NODE起保存DATA NODE上文件的位置信息用,主要有兩個保存文件:FsImage和EditLog,FsImage保存了上一次NAME NODE啟動時的狀態,EditLog則記錄每次成功后的對HDFS的操作行為。當NAME NODE重啟時,會合并FsImage和EditLog成為一個新的FsImage,清空EditLog,如果EditLog非常大的時候,則NAME NODE啟動的時間會非常長。因此就有SECOND NAME NODE。


          SECOND NAME NODE會以HTTP的方式向NAME NODE要這兩個文件,當NAME NODE收到請求時,就會韋一個新的EditLog來記錄,這時SECOND NAME NODE就會將取得的這兩個文件合并,成一個新的FsImage,再發給NAME NODE,NAME NODE收到后,就會以這個為準,舊的就會歸檔不用。


          SECOND NAME NODE還有一個用途就是當NAME NODE DOWN了的時候,可以改SECOND NAME NODE的IP為NAME NODE所用的IP,當NAME NODE用。

          secondary namenoded 配置很容易被忽視,如果jps檢查都正常,大家通常不會太關心,除非namenode發生問題的時候,才會想起還有個secondary namenode,它的配置共兩步:

          1. 集群配置文件conf/master中添加secondarynamenode的機器
          2. 修改/添加 hdfs-site.xml中如下屬性:

          <property>
           <name>dfs.http.address</name>
           <value>{your_namenode_ip}:50070</value>
           <description>
           The address and the base port where the dfs namenode web ui will listen on.
           If the port is 0 then the server will start on a free port.
           </description>
           </property>


          這兩項配置OK后,啟動集群。進入secondary namenode 機器,檢查fs.checkpoint.dir(core-site.xml文件,默認為${hadoop.tmp.dir}/dfs/namesecondary)目錄同步狀態是否和namenode一致的。

          如果不配置第二項則,secondary namenode同步文件夾永遠為空,這時查看secondary namenode的log顯示錯誤為:


          2011-06-09 11:06:41,430 INFO org.apache.hadoop.hdfs.server.common.Storage: Recovering storage directory /tmp/hadoop-hadoop/dfs/namesecondary from failed checkpoint.
          2011-06-09 11:06:41,433 ERROR org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode: Exception in doCheckpoint: 
          2011-06-09 11:06:41,434 ERROR org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode: java.net.ConnectException: Connection refused
          at java.net.PlainSocketImpl.socketConnect(Native Method)
          at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
          at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:211)
          at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
          at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
          at java.net.Socket.connect(Socket.java:529)
          at java.net.Socket.connect(Socket.java:478)
          at sun.net.NetworkClient.doConnect(NetworkClient.java:163)
          at sun.net.www.http.HttpClient.openServer(HttpClient.java:394)
          at sun.net.www.http.HttpClient.openServer(HttpClient.java:529)
          at sun.net.www.http.HttpClient.<init>(HttpClient.java:233)
          at sun.net.www.http.HttpClient.New(HttpClient.java:306)
          at sun.net.www.http.HttpClient.New(HttpClient.java:323)
          at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:970)
          at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:911)
          at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:836)
          at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1172)
          at org.apache.hadoop.hdfs.server.namenode.TransferFsImage.getFileClient(TransferFsImage.java:151)
          at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.downloadCheckpointFiles(SecondaryNameNode.java:256)
          at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.doCheckpoint(SecondaryNameNode.java:313)
          at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.run(SecondaryNameNode.java:225)
          at java.lang.Thread.run(Thread.java:662)


          可能用到的core-site.xml文件相關屬性

          <property>
          <name>fs.checkpoint.period</name>
          <value>300</value>
          <description>The number of seconds between two periodic checkpoints.
          </description>
          </property>

          <property>
           <name>fs.checkpoint.dir</name>
           <value>${hadoop.tmp.dir}/dfs/namesecondary</value>
           <description>Determines where on the local filesystem the DFS secondary
           name node should store the temporary images to merge.
           If this is a comma-delimited list of directories then the image is
           replicated in all of the directories for redundancy.
           </description>
          </property>

          posted on 2013-01-31 17:39 paulwong 閱讀(341) 評論(0)  編輯  收藏 所屬分類: 分布式HADOOP云計算

          主站蜘蛛池模板: 定西市| 清水县| 盘锦市| 闽清县| 齐齐哈尔市| 利川市| 广丰县| 开远市| 乌拉特中旗| 固原市| 扎鲁特旗| 桃园市| 芦溪县| 衡阳县| 日喀则市| 从江县| 志丹县| 收藏| 友谊县| 蕲春县| 全南县| 嫩江县| 都兰县| 自贡市| 平和县| 固镇县| 稷山县| 色达县| 武宁县| 玛曲县| 泉州市| 平凉市| 绍兴市| 伊吾县| 土默特右旗| 慈利县| 大邑县| 乐昌市| 蓬安县| 防城港市| 平山县|