我想写一个用于将web资源推送到hadoop的程序.我使用hadoop 2.2.0,发现'put'不能像这样工作:
hadoop fs -put http://localhost/test.log hdfs://localhost:9000/log/
有没有办法把文件放到hdfs,而不先下载它?
PS:假设我没有hadoop服务器和Web资源服务器的权限.
将文件管道化为Jigar建议工作:
curl http://stackoverflow.com/questions/22188311/is-there-a-command-for-downloading-a-web-resource-to-hdfs | hadoop fs -appendToFile - question.html
从技术上讲,这个用例需要一个独特的"客户端",它作为一个单独的流连接到远程URL并将其内容泵入HDFS.可以直接从一个HDFS数据节点执行该命令,以避免使字节转移到补充客户端主机.无论如何,在下载时HDFS节点之间的网络通信是无法避免的,因为文件将物理地存储在多个节点中.