MapReduce

MapReduce是一种在Hadoop上工作的模型,可以有效地访问存储在HDFS(Hadoop分布式文件系统)中的大数据。它是Hadoop的核心组件,它将大数据分成小块,并对其进行并行处理。

MapReduce的特点:

  • MapReduce可以在不同的服务器上存储和分配巨大的数据。
  • MapReduce允许用户以地图和还原的形式存储数据,以获得处理。
  • MapReduce能保护系统不被任何未经授权的访问。
  • MapReduce支持并行处理模式。

Hive

Hive是一个由Facebook发起的倡议,为MapReduce编程提供了一个传统的数据仓库接口。对于以SQL方式为MapReduce编写查询,Hive编译器在后台将其转换为在Hadoop集群中执行。它帮助程序员使用他们的SQL知识,而不是专注于开发一种新的语言。

Hive的特点:

  • Hive提供SQL类型的语言,即HQL。
  • Hive帮助查询存储在HDFS(Hadoop分布式文件系统)的大型数据集。
  • Hive是一个开源的工具。
  • Hive支持灵活的项目视图,使数据可视化变得容易。

MapReduce和Hive的区别

S.No MapReduce Hive
1 MapReduce是一种数据处理语言。 Hive是一种类似SQL的查询语言。
2 MapReduce将工作转换为map-reduce函数。 Hive将SQL查询转换为HQL(Hive-QL)。
3 MapReduce提供了低水平的抽象。 Hive提供了高层次的抽象。
4 用户很难进行连接操作。 Hive使用户很容易在HDFS上执行类似SQL的操作。
5 用户需要写10倍于Pig的代码来执行类似的任务。 与MapReduce相比,用户只需写几行代码。
6 MapReduce有多个作业,因此执行时间较长。 代码执行时间更多,但开发工作更少。
7 MapReduce被Hadoop的各个版本所支持。 Hive也支持最近版本的Hadoop。