2、Mapreduce
Hadoop MapReduce是提供数据处理的核心Hadoop生态系统组件。MapReduce是一个大数据计算框架,用于处理Hadoop分布式文件系统中存储的大量结构化和非结构化数据的计算应用程序。MapReduce程序本质上是并行的,因此对于使用集群中的多台计算机执行大规模数据分析非常有用。因此,它提高了集群并行处理的速度和可靠性。
在MapReduce中,有两个阶段,分别是Map阶段和Reduce阶段。每个阶段都有键值对作为输入和输出。Map函数获取一组数据并将其转换为另一组数据,其中个元素分解为元组(键值对)。Reduce函数将Map的输出作为输入,并根据键组合这些数据元组,并相应地修改键的值。
该框架拥有运行处理PB级数据的能力,以及快速、高容错性等特点,是Hadoop生态圈中很重要的技术框架。
3、YARN
Hadoop Yarn(Yet Another Resource Negotiator),是提供资源管理的Hadoop生态系统组件。Yarn也是Hadoop生态系统中最重要的组件之一。 YARN被称为Hadoop的操作系统,因为它负责管理和监视工作负载。它允许多个数据处理引擎(例如实时流和批处理)处理存储在单个平台上的数据。
Yarn具有灵活性的特点,除了可以用于批处理计算框架,比如MapReduce外,还可以用于其他模式的数据处理,比如交互式和流式处理模式。由于这个优势,其他的计算框架也可以在Yarn的资源调度下,与MapReduce程序一起运行,提高了Hadoop集群的服务效率。另外,Yarn还具有高共享性的特点,在多个工作负载之间提供稳定、可靠、安全的共享操作服务,所以在对于数据处理的过程中,可以使用其他的编程模型,比如图形处理模型或迭代模型等。
4、ZooKeeper
Apache Zookeeper是Hadoop生态系统的重要组件,提供了分布式应用程序的协调服务,它是一个为分布式应用提供一致性服务的软件,包括阿配置维护、域名服务、分布式同步、组服务等。
Zookeeper的特性有以下几个方面:
* 顺序一致性,从同一个客户端发起的事务请求,最终将会严格地按照其发起顺序被应用到Zookeeper中去。
* 原子性,所有事务请求的处理结果在整个集群中所有机器上的应用情况是一致的,即整个集群要么都成功应用了某个事务,要么都没有应用。
* 单一视图,无论客户端连接的是哪个 Zookeeper 服务器,其看到的服务端数据模型都是一致的。
* 可靠性,一旦服务端成功地应用了一个事务,并完成对客户端的响应,那么该事务所引起的服务端状态变更将会一直被保留,除非有另一个事务对其进行了变更。
* 实时性,Zookeeper 保证在一定的时间段内,客户端最终一定能够从服务端上读取到最新的数据状态。
这个技术的出现,在总体上解决了我们所说的拜占庭将军问题,也就是分布式系统中最大的难题,即协调一致的问题。当然,顺便提一句,在分布式系统领域,有一篇很重要的论文,名字叫做《Paxos Made Simple》,有兴趣各位可以读一下。
5、Hive
Apache Hive是一个开源数据仓库系统,是一个数据分析框架,其用于查询和分析存储在Hadoop文件中的大型数据集。Hive具有三个主要功能:数据汇总,查询和分析。Hive使用称为HiveQL(HQL)的语言,与SQL相似。 HiveQL自动将类似SQL的查询转换为MapReduce作业,该作业将在Hadoop上执行。简而言之,Hive就是在Hadoop上架了一层SQL接口,可以将SQL翻译成MapReduce去Hadoop上执行,这样就使得数据开发和分析人员很方便的使用SQL来完成海量数据的统计和分析。