在不访问数据节点的情况下从 HDFS 读取文件
Read files from HDFS without access to the data nodes
我的小组目前有一个 Hadoop 集群设置用于测试 (Cloudera),其中每个人都可以通过 LAN 访问主要和次要名称节点,以及一些连接到单独交换机但无法通过 LAN 访问的数据节点。
通过此设置,我能够从我的开发人员笔记本电脑连接到名称节点并执行与文件元数据有关的操作,例如获取目录中的文件列表。但是,我无法读取任何实际文件内容。
有什么方法可以让我只通过名称节点读取文件内容吗?还是我必须硬着头皮正确修复不稳定的网络设置?
谢谢!
您必须使用 HttpFS Gateway,也称为 Hadoop HDFS over HTTP。通过使用此服务,100% 兼容 webhdfs API,您将能够执行 2 步 操作(即那些在第一阶段访问 Namenode,然后接收重定向到一个Datanode,最后在第二阶段访问这样的Datanode)只访问运行HttpFS的节点;这是因为 HttpFS 在重定向中指向自身。
在你的例子中,在 Namenode 中安装 HttpFS。
我的小组目前有一个 Hadoop 集群设置用于测试 (Cloudera),其中每个人都可以通过 LAN 访问主要和次要名称节点,以及一些连接到单独交换机但无法通过 LAN 访问的数据节点。
通过此设置,我能够从我的开发人员笔记本电脑连接到名称节点并执行与文件元数据有关的操作,例如获取目录中的文件列表。但是,我无法读取任何实际文件内容。
有什么方法可以让我只通过名称节点读取文件内容吗?还是我必须硬着头皮正确修复不稳定的网络设置?
谢谢!
您必须使用 HttpFS Gateway,也称为 Hadoop HDFS over HTTP。通过使用此服务,100% 兼容 webhdfs API,您将能够执行 2 步 操作(即那些在第一阶段访问 Namenode,然后接收重定向到一个Datanode,最后在第二阶段访问这样的Datanode)只访问运行HttpFS的节点;这是因为 HttpFS 在重定向中指向自身。
在你的例子中,在 Namenode 中安装 HttpFS。