hadoop集群工作

frebpwbc  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(234)

我刚刚开始使用hadoop。我的问题对你来说可能很傻,但它让人困惑。
我的问题是,如果我有10 tb的数据和10个节点,数据是否在每个节点上都复制了1 tb?
如果有,我提交一个字数计算程序。mapreduce代码是否在每个节点上运行?如果是这样的话,那么在Map程序完成后,是否会在每个节点上启动reducer?
提前谢谢

2jcobegt

2jcobegt1#

欢迎使用hadoop。
数据分布取决于您的复制因素( dfs.replication 在hdfs site.xml中)。如果因子为1,则表示所有数据在集群中只存储一次。2表示两次,以此类推。因此,在复制因子为3的情况下,10tb的数据占用集群中30tb的空间。复制系数大于1还意味着同一个数据块在同一个服务器中永远不会存储两次,但副本驻留在其他服务器上。
一般来说,假设服务器相同,数据在集群中的分布相当均匀。如果由于某种原因,它的分布不够均匀,那么可以运行hadoop平衡器进程来平衡集群。
datanodes意味着使用它们必须的数据来运行Map阶段,以避免数据传输。所以所有的节点都应该参与mapreduce。当复制因子大于1时,我不确定工作是如何分布的,因为数据位于多个位置,但我认为它应该分布得相当均匀。

相关问题