走向云计算之Hadoop基本介绍及生态系统
一、Hadoop基本架构
Hadoop有许多发行版本,基本可以分为1.x版本和2.x版本。两者基本组成如下:
1、HDFS(Hadoop Distributed File System)
其基本思想源自于Google的GFS论文,HDFS是GFS克隆版。
- HDFS特点
1、良好的扩展性
2、高容错性
3、适合PB级以上海量数据的存储 - 基本原理
1、将文件切分成等大的数据块,存储到多台机器上
2、将数据切分、容错、负载均衡等功能透明化,对用户开发API
3、可将HDFS看成一个容量巨大、具有高容错性的磁盘 - 应用场景
1、海量数据的可靠性存储
2、数据归档
2、YARN(Yet Another Resource Negotiator)
- YARN是什么
1、Hadoop 2.0新增系统
2、负责集群的资源管理和调度
3、使得多种计算框架可以运行在一个集群中 - YARN的特点
1、良好的扩展性、高可用性
2、对多种类型的应用程序进行统一管理和调度
3、自带了多种多用户调度器,适合共享集群环境,如下图所示:
3、MapReduce
其设计理念源自于Google的MapReduce论文,Hadoop MapReduce是Google MapReduce克隆版。
- MapReduce特点
1、良好的扩展性
2、高容错性
3、适合PB级以上海量数据的离线处理
二、Hadoop的生态系统
针对Hadoop1.x和Hadoop2.x有不同的生态系统,详情如下。
Hadoop1.x生态系统:
Hadoop2.x生态系统:
1、HBase(分布式数据库)
其设计理念源自Google的Bigtable论文,HBase是Google Bigtable克隆版。
- HBase特点
1、高可靠性
2、高性能
3、面向列
4、良好的扩展性
2、Hive(基于MR的数据仓库)
Hive由facebook开源,最初用于解决海量结构化的日志数据统计问题;本质上是一个ETL(Extraction-Transformation-Loading)工具。
Hive是构建在Hadoop之上的数据仓库,数据计算使用MapReduce,数据存储使用HDFS。Hive 定义了一种类 SQL 查询语言——HQL,类似SQL,但不完全相同。 通常用于进行离线数据处理(采用MapReduce),可认为是一个HQLMR的语言翻译器。
- 应用场景:
1、日志分析,例如统计网站一个时间段内的pv、uv
2、多维度数据分析
3、海量结构化数据离线分析
4、低成本进行数据分析(不直接编写MR)
3、Pig
Pig由yahoo!开源,设计理念是提供一种基于MapReduce的ad-hoc数据分析工具,也是构建在Hadoop之上的数据仓库。Pig定义了一种数据流语言——Pig Latin,通常用于进行离线分析。
4、Zookeeper(分布式协作服务)
其设计理念源自Google的Chubby论文,Zookeeper是Chubby克隆版。
Zookeeper解决了分布式环境下数据管理问题例如:统一命名、状态同步、集群管理、配置同步等。
5、Sqoop(数据同步工具)
Sqoop连接Hadoop与传统数据库之间的桥梁,支持多种数据库,包括MySQL、DB2等;还支持插拔式,用户可根据需要支持新的数据库。Sqoop本质上是一个MapReduce程序,它充分利用了MR分布式并行和高容错性的特点。
6、Flume(日志收集工具)
Flume是Cloudera开源的日志收集系统,具有如下特点:
- 分布式
- 高可靠性
- 高容错性
- 易于定制与扩展