performance - 如何使用hadoop mapreduce比较两个大型数据集?

标签 performance hadoop mapreduce hive

我是hadoop和mapreduce的新手。我们有一个普通的Java应用程序,在其中我们从hadoop文件系统中读取了一个文件(大小为8 GB),并对这些数据应用了一些规则。应用规则后,我们得到Java哈希图(大小很大),并将该数据保留在缓存或缓冲区中。同时,我们通过对hive进行查询来从hive中获取数据,并准备一个Java哈希图,该哈希图的大小仍然很大。现在,我们比较这两个哈希图数据以准备最终报告以检查数据的准确性。

在上面的过程中,由于我们使用普通的Java程序来完成工作,因此我们面临以下问题。

  • 要处理这些巨大的数据,需要很长时间才能完成工作。由于输入文件中包含数千万条记录,因此我们需要在每一行上应用规则以提取数据。完成工作需要几天的时间。同时,配置单元还包含相同数量的数据,查询花费太多时间从配置单元返回数据。
  • 由于我们将数据保留在缓冲区中,因此我们面临内存问题。

  • 现在,我们尝试在hadoop mapreduce中实现相同的功能。
  • 实现以上方案的最佳方法是什么?
  • 在mapreduce中实现上述方案的最佳方法是什么?
  • 如何使用mapreduce提高应用程序性能?
  • 最佳答案

    8 GB是一个很小的数据集。我可以将其中4个“数据集”放入我的笔记本电脑RAM中!只需将其倾倒在任何关系引擎中,然后对其进行适当按摩,直到奶牛回家。这不是“大数据”。

    作为记录,在Hive中处理两个真正的大型数据集(例如每个+1 TB)的方法是排序合并存储桶联接(又名SMB联接)。阅读LanguageManual JoinOptimization,观看Join Strategies in Hive

    关于performance - 如何使用hadoop mapreduce比较两个大型数据集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22759775/

    相关文章:

    python - Apache Pig - 如何维护分布式查找表供我的 python UDF 访问?

    java - Hadoop 中的简单程序得到 ClassNotFoundException

    hadoop - Pig - Order by - 不同的 reducer ?

    java - case-statement 或 if-statement 效率视角

    android - Android SQLite 上的 TEXT vs BLOB 坐标值

    Excel - 文件优化

    python - 使用 NumPy 平均符号标准化数据段的最快方法?

    hadoop - Hive - 如何在命令行中显示 Hive 查询结果以及列名

    hadoop - pig + hbase + hadoop2 集成

    performance - 哪些指标可衡量MapReduce应用程序的效率?