1

クラスorg.apache.hadoop.conf.Configurationまたは別の方法でJavaクライアントでhadoop dfs.replicationを設定する方法は?

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

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

4

2 に答える 2

0

レプリケーションは、クライアント接続構成ではなく、クラスター構成 (???) によって設定されると思います。あなたが尋ねていると思うファイル固有のレプリケーションを構成する方法があるかどうかわからない

ところで、レプリケートされていないブロックの割合は? dfs admin -report コマンドの出力を提供できますか? それは役に立ちます

于 2013-02-12T07:42:26.220 に答える
0

ターミナルでこのコマンドを入力して、ファイルのレプリケーション係数を個別に設定できます。

hadoop fs -D dfs.replication=3 -copyFromLocal file.txt /user/myFolder

Hadoop 自体によって対処される複製不足については、複製不足のブロックの数が変化し続けることがわかります。

レプリケーション ファクターを使用してファイルを書き込むための JAVA API については、次のコードを参照してください。

 public class Write{
        public static void main(String[] args) throws IOException {
        Path pt = new Path("hdfspath:/user/abc");
        FileSystem fs = FileSystem.get(new Configuration());
        BufferedWriter br = new BufferedWriter(new OutputStreamWriter(
                fs.create(pt, true)));
        // TO append data to a file, use fs.append(Path f)
        fs.setReplication(new Path("hdfspath:/user/abc"), (short)3);
        String line;
        line = "This is Written to the File";
        System.out.println(line);
        br.write(line);
        br.close();

    }
    }

ここにコードを入力したばかりなので、構文を確認してください。

于 2013-02-13T08:37:10.400 に答える