2016-05-30 104 views
1

据我所知,copyFromLocal或将命令用于本地文件复制到HDFS。我的问题是,如果我们想要运行命令将文件复制到HDFS,那么是否需要在群集上? 假设,我有3个节点的集群为A1,A2和A3,其中A1是主节点和A2和A3是数据节点。 1.要复制到的数据节点的任何文件,我需要登录到任何节点(A1,A2或A3) 2.要到数据节点的任何文件从任何其他位置之外簇说机X1复制的,如何可以将文件从x1复制到群集?将本地文件复制到hdfs需要在hdfs集群上?

感谢 -Brijesh

+0

顺便说一句,它被认为是礼貌的接受答案,其他人给你(或它为什么没有解决你的问题发表评论)。我注意到你没有接受你之前发布的问题的答案。当Stackoverflow用户注意到这种行为时,他们沉默地回答你的问题。 – cabad

回答

0

可以使用SSH上传文件:

cat your_local_file_to_upload | ssh [email protected]_HADOOP_GATEWAY "hadoop dfs -put - hadoopFolderName/file_name_in_hdfs"

这里,YOUR_HADOOP_GATEWAY是一个节点的IP地址,或者被配置为充当一台机器网关到Hadoop集群

它适用于二进制文件了。

如果你想下载的文件,你同样可以做到以下几点:

ssh [email protected]_HADOOP_GATEWAY "hdfs dfs -cat src_path_in_HDFS " > local_dst_path

0

此外,看一看WebHDFS这是与集群交互的REST API,通常在同一个运行主机作为名称节点。

相关问题