簡體   English   中英

如何通過org.apache.hadoop.conf.Configuration類在Java客戶端中設置hadoop復制?

[英]How to set hadoop replication in java client by class org.apache.hadoop.conf.Configuration?

我使用java Api作為客戶端來上傳文件,但是它總是將dfs.replication設置為3,因此當我使用命令(hadoop dfsadmin -report)檢查情況時,所有塊都處於復制因子下,因為我只是有兩個數據節點要測試。

我只想知道如何通過類org.apache.hadoop.conf.Configuration或以其他方式在java客戶端中設置hadoop dfs.replication? 謝謝您的幫助!

如果文件已通過3塊復制復制到HDFS,則可以使用setReplication API以及文件src和預期的復制計數來設置特定於文件的復制,如下所示:

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

setReplication API描述這里 :公共布爾setReplication(路徑SRC,短復制)

另外,如果要復制具有2個塊復制因子的文件,則可以直接在命令中傳遞復制計數,如下所示:

hadoop fs -D dfs.replication=2 YOUR_COMMANDS

根據Hadoop FileSystem類Java API,您可以在創建輸出流以將文件寫入集群時指定文件的復制因子。 例如

create(Path f, short replication) 

我目前無法在本地進行測試,因為我只有一個Zookeeper節點在此處運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM