一、Hadoop的起源
Hadoop是Google的集群系统的开源实现
(1)Google集群系统:GFS(Google File System), MapReduce, BigTable
(2)Hadoop主要由HDFS(Hadoop Distributed File System Hadoop分布式文件系统),MapReduce和HBase组成
Hadoop的初衷是为解决Nutch 的海量数据爬取和存储的需要。
Hadoop于2005年秋天作为Lucene的子项目Nutch的一部分正式引入Apache基金会。
两大核心设计:
(1)MapReduce (Map: 任务的分解 ; Reduce: 结果的汇总;)
(2)HDFS (NameNode ; DataNode ; Client) 来源于GFS
传统数据 大数据
数据量 GB —> TB TB —> PB 以上
速度 数据量稳定,增长不快 持续实时产生数据,年增长率超过60%
多样化 主要为结构化数据 半结构化,非结构化,多维数据
价值 统计和报表 数据挖掘和预测性分析
“大数据” 指数据集的大小超过了现有典型的数据库软件和工具的处理能力。与此同时,及时捕捉、
存储、聚合、管理这些大数据以及对数据的深度分析的新技术和新能力,正在快速增长,就像预测
计算芯片增长速度的摩尔定律一样。
——— McKinsey Global Institute
二、关系型数据库与Hadoop
并行关系型数据库
多个独立的关系数据库服务器,访问共享的存储资源池。
优势: 采用多个关系数据库服务器,多个存储,与原有的架构相比,扩展了存储容量和计算能力
劣势: (1)计算与存储分离,数据访问存在竞争和带宽瓶颈(2)支持的关系数据库服务器数量有限(3)只能向上扩展,不能横向扩展
适用复杂的需要食物处理的应用。
MPP or Hadoop
由大量独立的服务器通过互联网互联形成集群,每个服务器带存储。
优势:计算与存储融合,支持横向扩展,更好的扩展性
劣势:解决数据冲突时需要节点间协作
使用范围:(1)数据仓库和离线数据分析(MPP,Hadoop/HBase)(2)大规模在线实时应用(单行书屋处理能力满足的场景)(HBase)
三、Hadoop的子项目
Core: 一套分布式文件系统以及支持Map-Reduce的计算框架
Avro:定义一种用于支持大数据应用的数据格式,并为这种格式提供了不同的编程语言的支持
HDFS:Hadoop分布式文件系统
Map/Reduce:是一个使用简易的软件框架,基于它写出的应用程序能够运行在由上千个商用机器组成的大型
集群上,并以一种可靠容错的方式进行处理上T级别的数据集
ZooKeeper:是高可用的和可靠的分布式协同系统
Pig:建立于Hadoop Core 之上为并行计算环境提供了一套数据工作流语言和执行框架
Hive:是为提供简单地数据操作而设计的下一代分布式数据仓库,它提供了简单的类似SQL的语法的HiveQL 语言进行数据查询
HBase:建立语录Hadoop Core之上提供一个可扩展的数据库系统
Flume:一个分布式、可靠和高可用的海量日志聚合的系统,支持在系统中定制各类数据发送发,用于收集数据
Mahout:是一套具有可扩充能力的机器学习类库
Sqoop:是Apache下用于RDBMS和HDFS相互导数据的工具