开发者社区> 问答> 正文

Hadoop中MapReduce所面临的问题是什么?

Hadoop中MapReduce所面临的问题是什么?

展开
收起
游客2k7fijmpxy3ik 2021-12-06 22:23:38 495 0
1 条回答
写回答
取消 提交回答
  • Reduce端的Join,在Map的时候对两个表的两一个key的数据分别打上表的标签,放进同一个key里,然后在Reduce阶段按标签分成两组,再进行Join输出操作。 Map端Join, 适合一端表小的情况,将小表在Map端作为其中一个lookup输入,进行Join操作。 读入输入数据然后产生的中间输出结果必须输出到磁盘,无法在中间内存中处理(Spark可以选择cache在内存里,用空间换时间),重复写磁盘,I/O开销比较大。 Key需要是可比较,会用来排序。 Shuffle和Reduce阶段强制要求对数据按照某key进行排序,某些场景(比如数据量不是特别大的时候,简单hash就够了)会有性能的损失。 不能在线聚合,不论是Map端的combine还是Reduce端的都需要等所有的数据都存放到内存或者磁盘后,再执行聚合操作,存储这些数据需要消耗大量的内存和磁盘空间。如果能够一边获取record一边聚合,那么就会大大的减少存储空间,减少延时。

    2021-12-06 22:25:33
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
《构建Hadoop生态批流一体的实时数仓》 立即下载
零基础实现hadoop 迁移 MaxCompute 之 数据 立即下载
CIO 指南:如何在SAP软件架构中使用Hadoop 立即下载

相关实验场景

更多