Hadoop2.x起源
- Apache Lucene 开源的高性能全文检索工具包
- Apache Nutch 开源的web搜索引擎
- Google三大论文 MapReduce / GFS / BigTable
- Apache Hadoop 大规模数据处理
Haoop是什么?
Hadoop是Apache软件基金会旗下的一个开源分布式计算平台。
实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS,用于存储海量数据,为进行海量数据处理提供基础。HDFS有高容错性的特点,并且部署在低廉的(low-cost)硬件上,提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集的应用程序
实现了MapReduce分布式运算框架,用于计算HDFS上存储的数据。用户可以在不了解分布式底层细节的情况下,基于Mapreduce提供简单的Api开发应用程序,并运行在整个集群上,充分利用集群的计算和存储能力,完成海量数据的处理
Hadoop的两大核心:HDFS和MapReduce。HDFS用于存储海量数据,MapReduce用于计算海量数据。
Hadoop是一个开源框架,可编写和运行分布式应用处理大规模数据。分布式计算是一个宽泛并且不断变化的领域。
Hadoop的优势在于:
1) 方便:Hadoop运行在由一般商用机器构成的大型集群上,或者云计算服务上,比如EC2。
2) 健壮:Hadoop致力于在一般商用硬件上运行,其架构假设硬件会频繁失效,Hadoop可以从容地处理大多数此类故障。
3) 可扩展:Hadoop通过增加集群节点,可以线性地扩展以处理更大的数据集。
4) 简单:Hadoop允许用户快速编写高效的并行代码。
HadoopV2.x四大功能模块介绍
整个Hadoop项目被分割成三个模块,分别是:Common、HDFS和MapReduce
2.0以上版本加入的YARN模块。
该项目包括这些模块:
-
Hadoop Common: The common utilities that support the other Hadoop modules. 支持其他模块的工具类,为Hadoop模块提供基础设备
-
Hadoop Distributed File System (HDFS™): A distributed file system that provides high-throughput access to application data.
高可靠,高吞吐量的分布式文件系统; 存储海量数据、分布式、安全性(副本数据);
-
Hadoop YARN: A framework for job scheduling and cluster resource management.
新的MapReduce框架,负责集群的任务调度和集群资源管理(内存,CPU核数)。 其具有良好的扩展性,可以同时对多种应用程序进行资源的管理与调度
-
Hadoop MapReduce: A YARN-based system for parallel processing of large data sets. 分布式的离线并行计算框架
思想:分而治之
大数据分为小的数据集
每个数据集,进行逻辑业务处理(map)
合并统计数据结果(reduce)
Hadoop生态圈
相关技术介绍
Hive:Mapreduce框架,提供便利的hql用户开发接口,和关系sql语法类似;业界流行。
Pig : Mapreduce框架,提供类sql用户开发接口;基本被Hive取代。
Sqoop: Mapreduce框架,HDFS/Hive 与关系DB导入导出工具。流行。
HBase:分布式数据库,基于自身的文件索引,支撑在线高频读写场景,key-value库。流行。
Mahout: Mapreduce框架,封装了常用的数据挖掘算法。社区已关闭,被Spark取代了。
Impala:基于内存计算引擎,内存版Hive;
Hue:提供Hive查询界面;
Oozie:作业调度系统;
Spark:流行计算引擎,可支撑离线计算、实时计算,内存类产品;流行。
Zookeeper:分布式协作、集群协调;用途广泛。
圈外:
Kafka:消息中间件;
Storm:流计算,实时性极高。