【发布时间】:2015-01-29 18:03:15
【问题描述】:
我了解 distcp 用于集群间/集群内的数据传输。是否可以使用 distcp 将数据从本地文件系统摄取到 HDFS。我知道您可以使用 file:///.... 指向 HDFS 之外的本地文件,但与集群间/集群内传输相比,它的可靠性和速度有多快。
【问题讨论】:
-
没有。 Distcp 只能用于传输源和接收器为 HDFS 的数据。
我了解 distcp 用于集群间/集群内的数据传输。是否可以使用 distcp 将数据从本地文件系统摄取到 HDFS。我知道您可以使用 file:///.... 指向 HDFS 之外的本地文件,但与集群间/集群内传输相比,它的可靠性和速度有多快。
【问题讨论】:
Distcp 是在 hadoop 集群内执行的 mapreduce 作业。从 hadoop 集群的角度来看,您的本地机器不是本地文件系统。那么您不能将您的本地文件系统与distcp一起使用。另一种方法是在您的机器上配置一个 hadoop 集群可以读取的 FTP 服务器。性能取决于网络和使用的协议(使用 hadoop 的 ftp 性能非常差)。
使用 hdfs dfs -put 命令对于少量数据可能会更好,但它不像 distcp 那样并行工作。
【讨论】: