Warning: get_meta_tags(): SSL: Handshake timed out in /www/wwwroot/www.panziye.com/wp-content/themes/Git-alpha/include/shortcode.php on line 302
Warning: get_meta_tags(): Failed to enable crypto in /www/wwwroot/www.panziye.com/wp-content/themes/Git-alpha/include/shortcode.php on line 302
Warning: get_meta_tags(http://hadoop.apache.org/): failed to open stream: operation failed in /www/wwwroot/www.panziye.com/wp-content/themes/Git-alpha/include/shortcode.php on line 302
章
目
录
1.Hadoop起源于背景
Hadoop雏形开始于2002年的Apache的Nutch,是一个开源Java 实现的搜索引擎。Nutch的目标是构建一个大型的全网搜索引擎,包括网页抓取、索引、查询等功能,随着抓取的数据量的增加,面临着扩展性问题——如何解决数十亿网页的存储与索引问题。
1)2004年Nutch创始人Doug Cutting基于Google的GFS论文实现了分布式文件存储系统名为NDFS。
2)2005年Doug Cutting又基于Google的MapReduce论文,在Nutch搜索引擎实现了该功能。
3)2006年,Yahoo雇用了Doug Cutting,Doug Cutting将NDFS和MapReduce升级命名为Hadoop,NDFS也就变为了HDFS。
2.Hadoop介绍
Hadoop是Apache旗下的一套开源软件平台,是一个能够对大量数据进行分布式处理的软件框架,具有可靠、高效、可伸缩的特点。官网网址:
Hadoop实现了包括分布式文件系统HDFS和MapReduce框架在内的云计算软件平台的基础架构,并且在其上整合了包括数据库、云计算管理、数据仓储等一系列平台,其已成为工业界和学术界进行云计算应用和研究的标准平台。
3.Hadoop组件
(1)Hadoop Common: Hadoop的基础工具类库,为其他模块提供通用工具,包括JNDI和RPC
(2)Hadoop HDFS (Hadoop Distributed File System): 分布式文件存储系统,可以存储海量数据
(3)Hadoop YARN(Yet Another Resources Negotiator): Hadoop2.0以后版本提供的job调度和分布式资源管理框架(运算资源调度系统)
(4)Hadoop MapReduce: 基于YARN系统的并行处理大数据集的编程模型(Hadoop2.x开始基于yarn),基于Map和Reduce两大阶段构成的,其中Map是把一个计算任务分成很多小任务进行并行计算,Reduce是做最后的统计工作的。
其中,HDFS、YARN、MapReduce是Hadoop中最为核心的组件。
Hadoop Ozone: 可扩展的分布式对象存储系统(HDFS是大数据存储系统,但是无论大集群还是小集群其扩展性都受NameNode的限制,虽然HDFS可以通过Federation进行扩展,但是依然深受小文件和4亿个文件的困扰,于是分布式key-value存储系统Ozone诞生了,Ozone能够轻松管理小文件和大文件。)
Hadoop Submarine:Hadoop机器学习引擎
4.Hadoop 生态圈
(1) Ambari:一个基于web的工具,用来供应、管理和监测Apache Hadoop集群,包括支持Hadoop HDFS、Hadoop MapReduce、Hive、HCatalog、HBase、ZooKeeper、Oozie、Pig和Sqoop。Ambari 也提供一个可视的仪表盘来查看集群的健康状态(比如热图),并且能够以一种用户友好的方式根据其特点可视化的查看MapReduce、pig和Hive 应用来诊断其性能特征。
(2) Avro :数据序列化系统。
(3)Cassandra :可扩展的多主节点数据库,而且没有单节点失败情况。
(4) Chukwa : 管理大型分布式系统的数据收集系统
(5) HBase : 一个可扩展的分布式数据库,支持大表的结构化数据存储
(6) Hive : 一个提供数据概述和AD组织查询的数据仓库
(7)Mahout :可扩展大的机器学习和数据挖掘库
(8)Pig :一个支持并行计算的高级的数据流语言和执行框架
(9) Spark : 一个快速通用的Hadoop数据的计算引擎。spark 提供一个简单和富有表现力的编程模型并支持多领域应用,包括ETL、机器学习、流处理 和图计算。
(10)Tez : 一个通用的数据流处理框架,构建在Hadoop YARN上,提供一个有力的灵活的引擎来执行一个任意的DAG任务来处理数据(批处理和交互式两种方式)。Tez 可以被Hive、Pig和其他Hadoop生态系统框架和其他商业软件(如:ETL工具)使用,用来替代Hadoop MapReduce 作为底层的执行引擎。
(11) ZooKeeper :一个应用于分布式应用的高性能的协调服务。
需要说明的是,上图并没有包括当前生态圈中的所有组件。而且hadoop生态圈技术在不断的发展,会不断有新的组件出现,一些老的组件也可能被新的组件替代。需要持续关注Hadoop开源社区的技术发展才能跟得上变化。
5.Hadoop作用
通过Hadoop可以快速搭建自己的分布式存储系统和分布式运算系统,它可以缩短数据处理时间,同时可以尽量在低成本的情况下实现数据的分析与挖掘。