4

「クラスター」で Cloudera Manager Free Edition を使用し、単一のマシンですべてのサービスを使用しています。

私のマシンは、データノード、ネームノード、およびセカンダリネームノードとして機能します。

レプリケーションに関連する HDFS の設定、

dfs.replication                                   - 1
dfs.replication.min, dfs.namenode.replication.min - 1
dfs.replication.max                               - 1   

それでもブロックのレプリケートが不十分なため、健康状態が悪くなります。

Namenode ログには、次のように書かれています。

Requested replication 3 exceeds maximum 1
java.io.IOException: file /tmp/.cloudera_health_monitoring_canary_files/.canary_file_2013_10_21-15_33_53 on client 111.222.333.444
Requested replication 3 exceeds maximum 1
    at org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.verifyReplication(BlockManager.java:858)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.startFileInternal(FSNamesystem.java:1848)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.startFileInt(FSNamesystem.java:1771)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.startFile(FSNamesystem.java:1747)
    at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.create(NameNodeRpcServer.java:439)
    at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.create(ClientNamenodeProtocolServerSideTranslatorPB.java:207)
    at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java:44942)
    at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:453)
    at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:1002)
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1751)
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1747)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:396)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1408)
    at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1745)

値を変更し、保存し、クライアント構成を展開し、再起動しました。それはまだ同じです。

1CM がレプリケーション ファクターをではなくとして読み取るようにするには、どのプロパティを設定する必要があり3ますか?

4

6 に答える 6

3

クライアントの設定です。クライアントはファイルを 3 回レプリケートしたいと考えています。カナリア テストはクライアントとして機能します。hdfs カナリア テスト設定を調整する必要があるようです。または、おもちゃは Cloudera managr を使用して、複製係数 prop を final として設定することもできます。クライアントがこのプロパティを変更することを禁止します。

于 2013-11-11T20:15:22.143 に答える
0
$ hadoop fs -setrep -R 1 /

また

hdfs-site.xmlファイルのプロパティを更新する

dfs.replication=1
于 2015-02-10T04:07:16.210 に答える
-1

まあ、同じノードにセカンダリ namenode と namenode の両方を保持することはお勧めできません。より良い結果を得るには、別のマシンに入れます。

あなたの質問に来てください。同じマシンでテストしていることを願っています。Cloudera は、レプリカが 3 つあると誤って認識したため、この問題が発生しました。個別のクラスターを形成し、最低 4 つのシステムが必要です。

まず、hdfc 構成hdfs-site.xmlがこの構成であるかどうかを確認します

<property>
  <name>dfs.replication</name>
  <value>3</value>
</property>

クラスタに 2 つまたは 3 つのシステムがあり、残りのレプリカが適切に複製されず、この問題が発生したことを願っています。

この問題は解決できます。ターミナルを開いてこのコマンドを入力するだけです

$ hadoop fs -setrep -R 1 /

現在、レプリケーションはこの問題を上書きして解決するか、既存のクラスターに 3 つ以上のシステムをいくつか追加します。それは手数料プロセスが確実にあなたの問題を解決することを意味します.

于 2014-12-06T15:02:29.917 に答える