【问题标题】:Hadoop cluster WorkingHadoop集群工作
【发布时间】:2014-12-27 13:01:49
【问题描述】:

我刚刚开始使用 Hadoop。我的问题对你来说可能很愚蠢,但它令人困惑。

我的问题是,如果我有 10TB 数据和 10 个节点,是否将数据复制到所有节点上,每个节点上都有 1 TB?

如果是这样,我会提交一个字数统计程序。 MapReduce 代码是否在每个节点上运行?如果是这样,一旦映射器完成,reducer 是否会在每个节点上启动?

提前致谢

【问题讨论】:

    标签: hadoop map reduce


    【解决方案1】:

    欢迎使用 Hadoop。

    数据分布取决于您的复制因子(hdfs-site.xml 中的dfs.replication)。如果因子为 1,则意味着所有数据在集群中只存储一次。 2 表示两次,依此类推。因此,在复制因子为 3 的情况下,10TB 的数据在集群中占用 30TB 的空间。大于 1 的复制因子也意味着同一个数据块不会在同一服务器中存储两次,而是副本驻留在其他服务器上。

    一般来说,假设服务器是相同的,数据在整个集群中分布得相当均匀。如果由于某种原因分布不够均匀,您可以运行 Hadoop 平衡器进程来平衡集群。

    数据节点旨在使用它们必须避免数据传输的数据运行映射阶段。所以所有节点都应该参与mapreduce。由于复制因子高于 1,我不确定工作是如何分布的,因为数据位于多个位置,但我想它应该是相当均匀地分布的。

    【讨论】:

    • 每个集群上的数据存储位置。还有一件事如果我有 10 个集群,这意味着 map reduce 代码在每个集群上运行。
    • 我猜你的意思是集群中有 10 台服务器?是的,如果节点有一部分数据,它们应该运行一些mapreduce。
    • @lucys 如果这个答案对你有帮助?你应该接受它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-26
    • 1970-01-01
    • 1970-01-01
    • 2014-06-03
    • 2019-09-08
    • 1970-01-01
    • 2018-04-25
    相关资源
    最近更新 更多