hadoop是否从其连接的数据源复制数据?

aij0ehis  于 2021-06-04  发布在  Hadoop
关注(0)|答案(3)|浏览(341)

当hadoop连接到一些数据源(如mangodb或mysql)时,它是将这些数据源中的数据复制到hadoop文件系统中,还是只处理这些远程数据?我的期望是hadoop将这些数据复制到自己的文件系统中;否则,在我看来,hadoop的所有优势都将消失,hadoop的优势在于将数据分解为驻留在不同数据节点上的块。我说的对吗?
谢谢

nfg76nw0

nfg76nw01#

不,如果您有db作为输入源,hadoop不会将数据复制到hdfs中。

jgzswidk

jgzswidk2#

在这种情况下,常见的工作流程是使用apachesqoop来启动从数据库源到所选hdfs目录的高效并行复制操作(例如,也可以复制到配置单元表)。
在执行复制操作时,正在写入hdfs的数据与hdfs数据节点并行分布。一旦完成,它就可以被hadoop引擎(如mapreduce、hive等)使用了。

vlf7wbxs

vlf7wbxs3#

是的,乔布斯总是从hdfs获取数据。例如,如果您有一个mysql表,其中包含一些mr作业所必需的元数据,那么您需要将这些数据存储在hdfs中,可以是序列化的,也可以是结构化的(例如tsv)。然后可以使用导入这些文件 DistributedCache.getLocalCacheFiles 并使用元数据。

相关问题