curl -i -X PUT "http://SomeHostname:50070/webhdfs/v1/file1?op=CREATE"
HTTP/1.1 307 TEMPORARY_REDIRECT
Content-Type: application/octet-stream
Location: http://sslave0:50075/webhdfs/v1/file1?op=CREATE&overwrite=false
Content-Length: 0
Server: Jetty(6.1.26)
这里它为datanode返回sslave0,看起来像是我的内部地址
答案 0 :(得分:0)
使用WebHDFS,您的案例中的NameNode Web界面@port 50070接受put请求并分配有关要存储的文件的元数据信息。然后它返回一个重定向到数据节点地址(ssalve0:50075地址),其中实际的Http PUT完成。
底线 - 名称节点不存储任何实际数据,仅存储元数据。它是存储文件实际信息的数据节点 - 因此是重定向
如果您想拥有一个代理节点,您不必通过这种方式处理数据节点,那么您需要改为配置HttpFs。