gpt4 book ai didi

java - Java客户端连接远程Hadoop机器错误

转载 作者:行者123 更新时间:2023-12-02 21:50:07 25 4
gpt4 key购买 nike

我正在编写一个Java客户端程序,该程序可以与远程hadoop群集进行交互并打印所有正在运行的作业。

我的本地计算机能够ping运行hadoop的远程计算机。
我尝试下面的代码,并坚持使用参数。我在哪里可以得到这些配置参数值

Configuration conf = new Configuration();
// this should be like defined in your mapred-site.xml
conf.set("mapred.job.tracker", "Hadoopmaster:54311");
// like defined in hdfs-site.xml
conf.set("fs.default.name", "hdfs://namenode.com:9000");

System.out.println("got configuration : "+conf);
InetSocketAddress jobtracker = new InetSocketAddress("jobtracker.mapredhost.myhost", 8021);
JobClient jobClient = new JobClient(jobtracker, conf);
JobStatus[] jobs = jobClient.jobsToComplete();

for (int i = 0; i < jobs.length; i++) {
JobStatus js = jobs[i];
if (js.getRunState() == JobStatus.RUNNING) {
JobID jobId = js.getJobID();
System.out.println(jobId);
}
}
}

map-red.xml
<property>
<name>mapred.job.tracker</name>
<value>Hadoopmaster:54311</value>
<description>test </description>
</property>

core-site.xml
<property>
<name>fs.default.name</name>
<value>hdfs://Hadoopmaster:54310</value>
<description>test.</description>
</property>

最佳答案

在提供的样本中,配置属性与客户端和群集fs.default.name不匹配
为了通过Java连接到远程hadoop集群,我做了以下代码:

public static void main(String a[]) {
UserGroupInformation ugi
= UserGroupInformation.createRemoteUser("root");

try {


ugi.doAs(new PrivilegedExceptionAction<Void>() {

public Void run() throws Exception {

conf = new Configuration();
//fs.default.name should match the corresponding value
// in your core-site.xml in hadoop cluster
conf.set("fs.default.name","hdfs://hostname:9000");
conf.set("hadoop.job.ugi", "root");
// in case you are running mapreduce job , need to set
// 'mapred.job.tracker' as you did
conf.set("mapred.job.tracker", "hostname:port");

// do your code here.

return null;
}
});

} catch (Exception e) {
e.printStackTrace();
}

}

如果需要默认值,请检查:

http://hadoop.apache.org/docs/current2/hadoop-project-dist/hadoop-common/core-default.xml



http://hadoop.apache.org/docs/stable/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml

关于java - Java客户端连接远程Hadoop机器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21761021/

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