Hadoop学习笔记之Hadoop简介,
Apache Hadoop是一个开源的、可靠的、灵活的、分布式的计算系统(来自官网)
作者:Doug Cutting
主要受Google三篇论文的启发(GFS、MapReduce、BigTable)
Hadoop
海量数据的存储(HDFS)Hadoop Distributed File System
海量数据的分析(MapReduce)
Hadoop2.0后出现YARN,所有计算框架运行于YARN上,只要符合一定的接口
Storm、Spark,MapReduce等都可以运行在YARN
YARN的出现使Hadoop可以支持多种计算框架,而不仅仅是MR
云计算与Hadoop之间的关系:
云计算由三部分:
从底向上分别是:IAAS、PAAS、SAAS
IAAS:基础设施即服务(OpenStack、Cloudstack等)
PAAS:平台即服务(Google AppEngine,Apache Hadoop)
SAAS:软件即服务,典型实现有:Google Apps
可以看出Apache Hadoop只是云计算中的某一层中的实现而已
Hadoop主要组成:
HDFS:分布式文件系统
特点:
良好的扩展性
高容错性,可靠性:通过备份提高
适用于PB以上级别的存储
MapReduce:并行计算框架
特点:
易于编程(暴露给用户非常少的接口)
良好的扩展性、高容错性
适合PB级以上海量数据的离线处理(各种开销大)
YARN:
解决了MR在一些方面的短板
扩展受限、单点故障、难以支持MR之外的计算
多计算框架各自为站,数据共享困难(MR离线计算框架、Storm实时计算框架、Spark内存计算框架)
YARN的出现使得多种计算框架都运行于YARN上,使Hadoop可以支持多种框架
HBase--Google Bittable的克隆版
是一个稀疏的、长期存储的、多维度得到排序映射表,这张表的索引是行关键字,列关键字和时间戳。
表中的每个值是一个纯字符数组,数据都是字符串,没有类型。
高可靠性、高性能、面向列、良好的扩展性、
Hiv:是建立在Hadoop上(HDFS+MR)的数据仓库基础构架
定义了一种类SQL的查询语言-----HQL
Hive是基于MapReduce,所以通常进行离线分析
Hive可以将用户写的Sql提交成MapReduce作业,所以直接写SQL就可以完成,从而不用写MapReduce作业
Pig:
是基于Hadoop的数据流系统,也是类似查询
定义了一种数据流语言----Pig Latin,相比于HQL更强大
Zookeeper:
相当于整个集群的管理员,Zookeeper是Chubby克隆版
具体架构:
可配置多个servers,一个挂掉一个,不会停止对外服务
内部用到一个特殊的协议,协议的要求是server的个数必须是奇数个(3、5)
特点是:统一命名、状态同步、集群管理、配置同步
Sqoop----数据同步工具
连接Hadoop与传统数据库之间的桥梁,支持多种数据库,包括MySql、DB2等
其实本质上是一个MapReduce程序,充分利用了MR分布式并行的特点
可并行的导入导出(即从Hadoop到传统数据库或者从传统数据库导入到Hadoop)
主要版本:
Apache:官方版本、原生态版
CDH(Cloudera):对Apache进行商业化的封装支持、有商业支持、使用最多的版本
HDP(Hortonworks Data Platform):Hortonworks公司发行版本