1

我想在hadoop集群之外写一个项目,可以从集群中读取数据,但是office网站提供的文档只给出了“curl”的方法。Java有没有接口可以访问hadoop集群?

4

4 回答 4

4

如果您使用的是 1.0.0+ 版本的 hadoop,请查看该org.apache.hadoop.hdfs.web.WebHdfsFileSystem课程。

如果它尚未启用,您应该能够通过在 hdfs-core.xml 中设置以下配置属性来“启用”它:

  • dfs.webhdfs.enabled=true

进行此更改后,您需要重新启动名称节点,您应该在名称节点日志文件中看到以下内容:

2012-05-22 06:23:42,176 INFO org.apache.hadoop.http.HttpServer: dfs.webhdfs.enabled = true
2012-05-22 06:23:42,177 INFO org.apache.hadoop.http.HttpServer: Added filter 'SPNEGO' (class=org.apache.hadoop.hdfs.web.AuthFilter)
2012-05-22 06:23:42,179 INFO org.apache.hadoop.http.HttpServer: addJerseyResourcePackage: packageName=org.apache.hadoop.hdfs.server.namenode.web.resources;org.apache.hadoop.hdfs.web.resources, pathSpec=/webhdfs/v1/*
2012-05-22 06:23:42,191 INFO org.apache.hadoop.http.HttpServer: Port returned by webServer.getConnectors()[0].getLocalPort() before open() is -1. Opening the listener on 50070
2012-05-22 06:23:42,192 INFO org.apache.hadoop.http.HttpServer: listener.getLocalPort() returned 50070 webServer.getConnectors()[0].getLocalPort() returned 50070
2012-05-22 06:23:42,192 INFO org.apache.hadoop.http.HttpServer: Jetty bound to port 50070

现在您可以使用以下内容以编程方式使用 Web Hdfs:

Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(new URI(), conf);
于 2012-05-30T00:55:45.940 回答
0

看看 cloudera 的 HOOP...提供对所有 HDFS 操作的访问,包括通过 HTTP 和 HTTPS 进行读/写。

于 2012-05-27T20:48:03.987 回答
0

是的。有 Web 界面可以与 Job tracker 节点进行通信,以了解作业的状态和所有客户端信息

于 2012-05-29T07:04:08.523 回答
0

可以使用以下 Java 库:

于 2016-01-08T12:33:17.787 回答