gpt4 book ai didi

hadoop - 如何在Java应用程序的不同hadoop集群之间传输数据?

转载 作者:行者123 更新时间:2023-12-02 21:52:59 24 4
gpt4 key购买 nike

我的示例Java应用程序是从一个hadoop集群读取数据并将其存储在另一个hadoop集群中(每个说A,B)。

这是从A读取数据的示例代码。

    StringBuilder result=new StringBuilder();
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(conf);
FileStatus[] status=fs.listStatus(new Path("/result/test1"));
for(FileStatus file:status){
System.out.println(file.getPath().toString());
if(file.getPath().toString().contains("part")){
FSDataInputStream inputStream=fs.open(file.getPath());
String inputString;
while((inputString=inputStream.readLine())!=null){
result.append(inputString);
}
}
}

下面的代码是访问B
    conf.set("fs.default.name", "hdfs://10.101.51.221:9000");
conf.set("mapred.job.tracker", "hdfs://10.101.51.221:9001");
fs=FileSystem.get(conf);

此示例Java应用程序的buildpath中包含A的hadoop / conf / *以访问A,我认为我也可以通过更改fs.default.name和mapred.job.tracker来访问B,但是它不起作用。错误消息就像
13/08/21 14:41:08 INFO ipc.Client: Retrying connect to server: Already tried 0 time(s).
...
13/08/21 14:41:26 INFO ipc.Client: Retrying connect to server: Already tried 9 time(s).
Exception in thread "main" java.net.ConnectException: Call to server failed on connection exception: java.net.ConnectException: Connection refused: no further information

关于这个问题的任何提示将不胜感激

最佳答案

DistCp(分布式副本)是用于大型集群间/集群内复制的工具。

  • bash $ hadoop distcp hdfs:// src:8020 / foo / bar hdfs:// dest:8020 / bar / foo

  • http://hadoop.apache.org/docs/stable/distcp.html#cpver

    在Java应用程序中,可以使用 org.apache.hadoop.tools.DistCp

    关于hadoop - 如何在Java应用程序的不同hadoop集群之间传输数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18349936/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com