在浏览器中打开 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 文件的主要内容,如果未能解决你的问题,请参考以下文章

Hive在哪里存储HDFS中的文件?

HDFS 错误:只能复制到 0 个节点,而不是 1 个

大数据接私活200元,做个简易的HDFS浏览器

大数据接私活200元,做个简易的HDFS浏览器

HDFS架构及文件读写流程

HDFS 和kerberos,浏览器配置