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)
一、关于版本
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)
相关文章推荐
- hadoop 基本操作命令
- Linux--进程间通信(管道及有名管道FIFO)
- tomcat 在eclipse中启动报错为端口被占用
- Optimized contrast enhancement for real-time image and video dehazing
- Linux--进程间通信(信号量,共享内存)
- Linux常用Debug命令
- poj 2186 Popular Cows
- poj 2186 Popular Cows
- 虚拟机CentOS静态IP
- 基础级 - Linux使用积累
- solr5.5 部署TOMCAT
- WEB服务器:Apache、Tomcat、JBoss、WebLogic的区别与关系
- Mac OS上安装Tomcat服务器的简单步骤
- popupWindow弹出自定义布局+弹出布局的位置控制
- Java后端WebSocket的Tomcat实现
- linux(centos)搭建SVN服务器
- Windows主机里利用VMware安装Linux(CentOS)虚拟机,Host-only连接上网方式详解
- CentOS Linux系统下更改Apache默认网站目录
- Linux下tar.xz tar.bz2 tar.gz 等文件的解压
- apache commons fileupload JIRA报告(2016-05-27更新)