ファイルをアップロードするクライアントとして Java API を使用しますが、dfs.replication
コマンド (hadoop dfsadmin -report) を使用して状況を確認すると、常に 3 に設定されます。テストするノード。
org.apache.hadoop.conf.Configuration
クラスごとまたは別の方法でJavaクライアントでhadoop dfs.replicationを設定する方法を知りたいだけですか? ご協力ありがとうございました!
ファイルをアップロードするクライアントとして Java API を使用しますが、dfs.replication
コマンド (hadoop dfsadmin -report) を使用して状況を確認すると、常に 3 に設定されます。テストするノード。
org.apache.hadoop.conf.Configuration
クラスごとまたは別の方法でJavaクライアントでhadoop dfs.replicationを設定する方法を知りたいだけですか? ご協力ありがとうございました!
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
Hadoop FileSystem クラスの Java API に従って、出力ストリームを作成してクラスターにファイルを書き込むときに、ファイルのレプリケーション ファクターを指定できます。例えば
create(Path f, short replication)
ここでは Zookeeper ノードしか実行していないため、現在これをローカルでテストすることはできません。