2

ファイルをアップロードするクライアントとして Java API を使用しますが、dfs.replicationコマンド (hadoop dfsadmin -report) を使用して状況を確認すると、常に 3 に設定されます。テストするノード。

org.apache.hadoop.conf.Configurationクラスごとまたは別の方法でJavaクライアントでhadoop dfs.replicationを設定する方法を知りたいだけですか? ご協力ありがとうございました!

4

2 に答える 2

1

IF ファイルが既に 3 ブロックのレプリケーションで HDFS にコピーされている場合、setReplication API をファイル src および予想されるレプリケーション カウントと共に使用して、以下のようにファイルに固有のレプリケーションを設定できます。

FileSystem fs = FileSystem.get(new Configuration());
fs.setReplication(new Path("hdfs_path:/foldername/filename"), (short)2);

setReplication API はここで説明されています: public boolean setReplication(Path src, short replication)

また、2 ブロックのレプリケーション ファクターでファイルをコピーする場合は、次のようにコマンドでレプリケーション カウントを直接渡すことができます。

hadoop fs -D dfs.replication=2 YOUR_COMMANDS
于 2013-03-27T23:00:51.850 に答える
0

Hadoop FileSystem クラスの Java API に従って、出力ストリームを作成してクラスターにファイルを書き込むときに、ファイルのレプリケーション ファクターを指定できます。例えば

create(Path f, short replication) 

ここでは Zookeeper ノードしか実行していないため、現在これをローカルでテストすることはできません。

于 2013-03-27T13:57:38.123 に答える