基本认识
一. 简介
Apache Hadoop是一款支持数据密集型分布式应用程序并以Apache 2.0许可协议发布的开源软件框架。它支持在商品硬件构建的大型集群上运行的应用程序。Hadoop是根据谷歌公司发表的MapReduce和Google文件系统的论文自行实现而成。所有的Hadoop模块都有一个基本假设,即硬件故障是常见情况,应该由框架自动处理。
Hadoop框架透明地为应用提供可靠性和数据移动。它实现了名为MapReduce的编程范式:应用程序被分割成许多小部分,而每个部分都能在集群中的任意节点上运行或重新运行。此外,Hadoop还提供了分布式文件系统(Hadoop Distributed File System), 简称HDFS,用以存储所有计算节点的数据,这为整个集群带来了非常高的带宽。MapReduce和HDFS的设计,使得整个框架能够自动处理节点故障。它使应用程序与成千上万的独立计算的电脑和PB级的数据连接起来。现在普遍认为整个Apache Hadoop“平台”包括Hadoop内核、MapReduce、Hadoop分布式文件系统(HDFS)以及一些相关项目,有Apache Hive和Apache HBase等等.
hadoop框架核心设计即: MapReduce和HDFS. HDFS为海量数据提供存储, MapReduce为海量的数据提供了计算.
二. 特点
- 高可靠性: Hadoop按位存储和处理数据的能力值得人们信赖.
- 高扩展性: Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中.
- 高效性: Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快.
- 高容错性: Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配.
- 低成本: 与一体机、商用数据仓库以及QlikView、Yonghong Z-Suite等数据集市相比,hadoop是开源的,项目的软件成本因此会大大降低.
三. hadoop大数据处理的意义.
Hadoop得以在大数据处理应用中广泛应用得益于其自身在数据提取、变形和加载(ETL)方面上的天然优势。Hadoop的分布式架构,将大数据处理引擎尽可能的靠近存储,对例如像ETL这样的批处理操作相对合适,因为类似这样操作的批处理结果可以直接走向存储。Hadoop的MapReduce功能实现了将单个任务打碎,并将碎片任务(Map)发送到多个节点上,之后再以单个数据集的形式加载(Reduce)到数据仓库里.
四. 核心架构
hadoop1.0时期架构:

2.hadoop2.0时期架构

3.HDFS架构图

HDFS遵从主从(master/slave)架构. 一个HDFS包括一个NameNode和多个DataNode.
- NameNode: 管理文件系统的命名空间; 处理客户端读写请求; 执行文件系统操作, 比如重命名/关闭/打开文件及目录等.
- DataNode: 处理每个客户端的文件读写请求.
-
Secondary NameNode: 定期合并
fsimage
和edits
日志, 推送给NameNode; 当NameNode节点故障时, 切换为新的NameNode节点.避免单节点失败问题.
4.YARN架构图

5.hadoop1.0与2.0比较图

6.MapReduce执行流程图

7. Hive(基于MapReduce的数据仓库)
由Facebook开源,最初用于海量结构化日志数据统计;
ETL(Extraction-Transformation-Loading)工具构建在Hadoop之上的数据仓库;
数据计算使用 MapReduce,数据存储使用HDFS
Hive 定义了一种类 SQL 查询语言——HQL, 类似SQL,但不完全相同
通常用于进行离线数据处理(采用 MapReduce);
可认为是一个 HQL→MR 的语言翻译器
网友评论