将本地文件复制到hdfs需要在hdfs集群上?

时间:2016-05-30 05:33:54

标签: hdfs

据我所知,copyFromLocal或put命令用于将本地文件复制到HDFS。我的问题是,如果我们想要运行命令将文件复制到HDFS,是否必须在群集上? 假设我有3个节点集群为a1,a2和a3,其中a1是主节点,a2和a3是数据节点。 1.要将任何文件复制到数据节点,我需要登录到任何节点(a1,a2或a3) 2.要将任何文件从群集外的任何其他位置(例如机器x1)复制到数据节点,如何将文件从x1复制到群集?

感谢 -Brijesh

2 个答案:

答案 0 :(得分:1)

您可以使用ssh上传文件:

cat your_local_file_to_upload | ssh username@YOUR_HADOOP_GATEWAY "hadoop dfs -put - hadoopFolderName/file_name_in_hdfs"

此处,YOUR_HADOOP_GATEWAY是其中一个节点的IP,或者是配置为充当hadoop集群的网关的计算机

它也适用于二进制文件。

如果要下载文件,您可以类似地执行以下操作:

ssh username@YOUR_HADOOP_GATEWAY "hdfs dfs -cat src_path_in_HDFS " > local_dst_path

答案 1 :(得分:0)

另外,请查看WebHDFS,它是一个用于与群集交互的REST API,通常与名称节点在同一主机上运行。