hadoop2.0 ha failoverで発生した問題

3127 ワード

最近hadoop 2をテストしています.0のha、failoverの場合、standby namenodeはactive namenodeのeditログを同期します.
editファイルが多い場合、standby namenodeはjournalnodeに頻繁にアクセスします.同期帯域幅に制限がないため、standby namenodeはjournalnodeの帯域幅を占有し、active namenodeはjournalnodeにアクセスできません.timeoutになるとactivenamenodeが切られます.Active namenodeのログは次のとおりです.
192.168.24.71:8485: Call From l-datalogm2.data.cn1/192.168.24.73 to l-datalog3.data.cn1:8485 failed on connection exception: java.net.ConnectException: Connection refused; For more details see:  http://wiki.apache.org/hadoop/ConnectionRefused
        at org.apache.hadoop.hdfs.qjournal.client.QuorumException.create(QuorumException.java:81)
        at org.apache.hadoop.hdfs.qjournal.client.QuorumCall.rethrowException(QuorumCall.java:223)
        at org.apache.hadoop.hdfs.qjournal.client.AsyncLoggerSet.waitForWriteQuorum(AsyncLoggerSet.java:142)
        at org.apache.hadoop.hdfs.qjournal.client.QuorumJournalManager.selectInputStreams(QuorumJournalManager.java:460)
        at org.apache.hadoop.hdfs.server.namenode.JournalSet.selectInputStreams(JournalSet.java:252)
        at org.apache.hadoop.hdfs.server.namenode.FSEditLog.selectInputStreams(FSEditLog.java:1237)
        at org.apache.hadoop.hdfs.server.namenode.FSEditLog.selectInputStreams(FSEditLog.java:1265)
        at org.apache.hadoop.hdfs.server.namenode.FSEditLog.selectInputStreams(FSEditLog.java:1249)
        at org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImage(FSImage.java:609)
        at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:264)
        at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFSImage(FSNamesystem.java:787)
        at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFromDisk(FSNamesystem.java:568)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.loadNamesystem(NameNode.java:443)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:491)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:684)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:669)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1254)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1320)

テストは何度もこの問題が発生します.
時間制限と帯域幅に関係している以上、プロファイルに関連する2つの構成を探します.よく調べてみると、いくつかの構成が見つかりました.
        <property>
                <name>ha.failover-controller.cli-check.rpc-timeout.ms</name>
                <value>60000</value>
        </property>
        <property>
                <name>ipc.client.connect.timeout</name>
                <value>60000</value>
        </property>

// timeout , image   edit , 1M

        <property>
                <name>dfs.image.transfer.bandwidthPerSec</name>
                <value>1048576</value>
        </property>


2個のnamenodeを再起動し、各種failoverを行い、問題は再発しなかった.keep moving!