Hadoop是否从它连接的数据源复制数据?

时间:2015-01-26 20:54:33

标签: database hadoop bigdata mangodb

当Hadoop连接到某些数据源(如MangoDB或MySQL)时,它是否会将这些数据源中的数据复制到Hadoop文件系统中,或者只是使用该远程数据?我的期望是Hadoop会将这些数据复制到自己的文件系统中;否则,在我看来,Hadoop的所有优点在于打破驻留在不同数据节点上的块中的数据将会消失。我对么?

由于

3 个答案:

答案 0 :(得分:0)

是的,MR作业总是从HDFS中获取数据。 例如,如果您有一些MySQL表,其中包含一些对您的MR作业至关重要的元数据,您将需要存储在HDFS中的这些数据,无论是序列化还是结构化(例如tsv)。 然后,您可以使用DistributedCache.getLocalCacheFiles导入这些文件并使用元数据。

答案 1 :(得分:0)

在这种情况下,常见的工作流程是使用Apache Sqoop启动从数据库源到所选HDFS目录的高效并行复制操作(例如,也可以复制到Hive表)。

执行复制操作时,正在写入HDFS的数据与HDFS Datanode并行分发。完成后,它就可以被Hadoop引擎使用,例如Mapreduce,Hive等。

答案 2 :(得分:0)

如果你有DB作为输入源,那么hadoop不会将数据复制到hdfs中。