您的位置:首页 > 运维架构

Hadoop生态系统相关理论总体了解

2016-07-11 13:44 393 查看
Hadoop生态系统相关理论总体了解
一、关于版本
1.0时代:HDFS和MapReduce
2.0时代:HDFS、MapReduce、Yarn
3.0时代:期待中。。
二、关于优点
1.开源(免费)
2.社区活跃,参与者多
3.涉及到分布式存储和计算的方方面面
4.已得到企业的认证
三、主要模块介绍
1.分布式存储系统HDFS(HadoopDistributed File System)(分布式存储层)
1>是一个分布式存储系统,源自于Google的GFS论文,发表于2003年10月,HDFS是GFS克隆版。
2>提供了高可靠性、高扩展性和高吞吐率的数据存储服务。

3>特点:良好的扩展性、高容错性、适合PB级以上海量数据的存储。
4>基本原理:
1)将文件切分成等大的数据块,存储到多台机器上
2)将数据切分、容错、负载均衡等功能透明化
3)可将HDFS看成一个容量巨大、具有高容错性的磁盘
5> 应用场景
1)海量数据的可靠性存储
2)数据归档
2.资源管理系统YARN(YetAnother Resource Negotiator)(集群资源管理层)
1> Hadoop 2.0新增系统,负责集群资源的统一管理和调度, 使得多种计算框架可以运行在一个集群中
2>YARN的特点:
1)良好的扩展性、高可用性
2)对多种类型的应用程序进行统一管理和调度
3)自带了多种多用户调度器,适合共享集群环境
3.分布式计算框架MapReduce(分布式计算层)
1>是一个分布式的计算框架, 源自于Google的MapReduce论文, 发表于2004年12月, Hadoop MapReduce是Google MapReduce克隆版
2>具有易于编程、高容错性和高扩展性等优点, 适合PB级以上海量数据的离线处理

4.Hive(基于MR的数据仓库)
1>构建在Hadoop之上的数据仓库,由facebook开源,最初用于解决海量结构化的日志数据统计问题;ETL(Extraction-Transformation-Loading)工具

2>数据计算使用MR,数据存储使用HDFS

3>Hive 定义了一种类 SQL 查询语言——HQL;类似SQL,但不完全相同

4>通常用于进行离线数据处理(采用MapReduce);可认为是一个HQL MR的语言翻译器。

5>应用场景为:日志分析,统计网站一个时间段内的pv、uv、多维度数据分析、大部分互联网公司使用Hive进行日志分析,包括百度、淘宝等、海量结构化数据离线分析、低成本进行数据分析(不直接编写MR)

5. Pig

1>由yahoo!开源,设计动机是提供一种基于MapReduce的ad-hoc数据分析工具,  构建在Hadoop之上的数据仓库

2>定义了一种数据流语言——Pig Latin,通常用于进行离线分析

6.Mahout(数据挖掘库)

1>基于Hadoop的机器学习和数据挖掘的分布式计算框架

2>实现了三大类算法:推荐(Recommendation)、聚类(Clustering)、分类(Classification)

7.HBase(分布式数据库)

1>源自Google的Bigtable论文,发表于2006年11月,HBase是Google Bigtable克隆版。

2>特点:高可靠性、高性能、面向列、良好的扩展性

3>主要内容:

Table:表,类似于传统传统数据库中的表

Column Family:列簇

Table在水平方向有一个或者多个Column Family组成

一个Column Family中可以由任意多个Column组成

Row Key: 行键

Table的主键

Table中的记录按照Row Key排序

Timestamp: 时间戳

每行数据均对应一个时间戳

版本号

8. Zookeeper(分布式协作服务)

1>源自Google的Chubby论文,发表于2006年11月, Zookeeper是Chubby克隆版。解决分布式环境下数据管理问题。

2>特点:统一命名、状态同步、集群管理、配置同步

9.Sqoop(数据同步工具)

1>是连接Hadoop与传统数据库之间的桥梁,本质上是一个MapReduce程序,充分利用了MR分布式并行、容错性的特点

2>插拔式,用户可根据需要支持新的数据库,支持多种数据库,包括MySQL、DB2等

10. Flume(日志收集工具)

1>Cloudera开源的日志收集系统

2>特点:分布式、高可靠性、高容错性、易于定制与扩展

11. Oozie(作业流调度系统)

1>目前计算框架和作业类型繁多: MapReduce Java、Streaming、HQL、Pig等

如何对这些框架和作业进行统一管理和调度:不同作业之间存在依赖关系(DAG); 周期性作业;定时执行的作业;作业执行状态监控与报警(发邮件、短信等)

2>多种解决方案: Linux Crontab、自己设计调度系统(淘宝等公司)、直接使用开源系统(Oozie)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: