在 Hortonworks Hadoop (AWS EC2) 上访问 WebHDFS



我在 Amazon EC2 机器上遇到 WebHDFS 访问问题。顺便说一句,我已经安装了 Hortonworks HDP 2.3

我可以通过以下http请求从浏览器(chrome(中的本地计算机检索文件状态:

http://<serverip>:50070/webhdfs/v1/user/admin/file.csv?op=GETFILESTATUS

这工作正常,但是如果我尝试使用 ?op=OPEN 打开文件,那么它会将我重定向到我无法访问的计算机的私有 DNS:

http://<privatedns>:50075/webhdfs/v1/user/admin/file.csv?op=OPEN&namenoderpcaddress=<privatedns>:8020&offset=0

我还尝试使用以下命令从AWS机器本身访问WebHDFS:

[ec2-user@<ip> conf]$ curl -i http://localhost:50070/webhdfs/v1/user/admin/file.csv?op=GETFILESTATUS
curl: (7) couldn't connect to host

有谁知道为什么我无法连接到本地主机或为什么本地计算机上的 OPEN 不起作用?不幸的是,我找不到任何教程来为亚马逊机器配置WebHDFS。

提前致谢

发生的情况是名称节点将您重定向到数据节点。似乎您安装了单节点集群,但从概念上讲,名称节点和数据节点是不同的,在您的配置中,数据节点在 EC2 VPC 的私有端实时/侦听。

您可以重新配置集群以在公共 IP/DNS 上托管数据节点(请参阅 HDFS 对多宿主网络的支持(,但我不会那样做。我认为正确的解决方案是添加一个 Know 网关,这是一个用于从公共 API 访问专用集群的专用组件。具体来说,您必须配置数据节点 URL,请参阅第 5 章。将内部节点映射到外部 URL。那里的例子似乎适合您的情况:

例如,使用 WebHDFS 服务上传文件时:

  • 外部客户端向网关 WebHDFS 服务发送请求。

  • 网关使用服务 URL 将请求代理到 WebHDFS。

  • WebHDFS 确定在哪些数据节点上创建文件并返回 作为 HTTP 重定向中的位置标头上传的路径,该路径 包含数据节点主机信息。

  • 网关根据数据节点主机名扩充路由策略 在重定向中,将其映射到外部可解析的主机名。

  • 外部客户端继续通过网关上传文件。

  • 网关使用增强型将请求代理到数据节点 路由策略。

  • 数据节点再次返回上传和网关的状态 在不公开任何内部群集的情况下转换信息 详。

最新更新