是否有webhdfs的Java接口从hadoop集群获取数据

时间:2012-05-25 01:21:37

标签: java hadoop interface

我想在hadoop集群之外编写一个项目,它可以从集群中读取数据,但是,办公室网站提供的文档只提供“curl”方法。 是否有任何Java接口可以访问hadoop集群?

4 个答案:

答案 0 :(得分:4)

如果您正在使用1.0.0+版本的hadoop,请查看org.apache.hadoop.hdfs.web.WebHdfsFileSystem类。

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

  • dfs.webhdfs.enabled = true

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

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

现在,您可以使用以下命令以progamatically方式使用Web Hdfs:

Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(new URI(), conf);

答案 1 :(得分:0)

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

答案 2 :(得分:0)

是的。有与Web跟踪器节点通信的Web界面,以了解作业的状态和所有客户端信息

答案 3 :(得分:0)

可以使用以下Java库: