在浏览器中打开 HDFS 文件
Posted
技术标签:
【中文标题】在浏览器中打开 HDFS 文件【英文标题】:Opening a HDFS file in browser 【发布时间】:2015-01-17 04:06:53 【问题描述】:我正在尝试使用 URL:hdfs://localhost:8020/user/input/Summary.txt 在我的浏览器中打开一个文件(存在于 HDFS 位置:/user/input/Summary.txt),但我我的 Firefox 浏览器出现错误:
Firefox doesn't know how to open this address, because the protocol (hdfs) isn't associated with any program.
如果我将协议从 hdfs
更改为 http
(理想情况下应该不起作用),那么我会收到以下消息:It looks like you are making an HTTP request to a Hadoop IPC port. This is not the correct port for the web interface on this daemon.
这存在于core-site.xml
文件中:
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:8020</value>
</property>
请告诉我如何完成这项工作。我不确定问题是否与 firefox 浏览器有关,或者我缺少一些配置设置,或者我使用了不正确的 url。
编辑:
当我尝试从 java 代码访问它时,我得到一个异常:unknown protocol: hdfs
。
static
URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());
public static void main(String[] args) throws MalformedURLException, IOException
final String url = "hdfs://localhost:8020/user/input/Summary.txt";
InputStream is = new URL(url).openStream();
请建议如何从 java 代码访问hdfs protocol
。
【问题讨论】:
【参考方案1】:HDFS 8020 是 IPC 端口,你需要打开 HDFS 浏览器的 HDFS Web UI,它的默认端口是 50070,从你的 Web 浏览器打开以下 URL
http://localhost:50070/
,然后转到 Live nodes
选项 -> 从那里选择一个数据节点 -> 点击浏览文件系统
【讨论】:
是不是不能直接从浏览器打开IPC端口?在这种情况下,我可以从我的 java 代码中读取 Summary.txt 文件吗(使用 URL 类)? 您无法从浏览器打开IPC端口,您可能可以从Java读取文件。在创建 Path 实例时,您可以按如下方式定义路径 Path inFile = new Path(hdfs://localhost:8020/dir1/file1.txt); hadoop 版本>3.0.0 端口改为9870以上是关于在浏览器中打开 HDFS 文件的主要内容,如果未能解决你的问题,请参考以下文章