我想知道如何在hadoop集群节点上分发数据。
我有一个包含3个节点的集群。我想在HDFS上复制3GB数据。我的问题是, 当我执行命令
时hadoop dfs -put /readme.txt /review/readme.txt
是否会在所有3个节点上复制数据?如何分发数据?
答案 0 :(得分:1)
假设您有3GB数据并且未更改默认复制因子(3),那么您将在节点上存储大约9GB。
复制因子是将在群集上创建的副本数。
您的数据将被拆分为块,每块最大124MB(新API中的默认最大块大小)。然后,每个块将被复制两次并发送到不同的节点。
我认为,有两个原因可以复制数据:
数据位置:处理本地存储的数据比从网络获取数据然后处理数据更快。
备份:Hadoop节点经常出现故障。如果他们持有一部分输入数据并且您没有备份,则整个作业将失败。另一方面,如果您也在其他节点上保留副本,那么单个节点故障不会对该作业产生太大影响。
blackSmith是对的,this post包含你问题的答案,但也许你不熟悉数据复制的关键概念。