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