Hadoop技术体系解读

在一个张口闭口都是大数据云计算的今天,咱们有必要思考一下,在目前主流的技术体系层面它所表明的意义是什么,指望个人博文可以给后来人一些启示,少绕一些弯路。算法

咱们仍是从Hadoop生态系统进行分析:数据库

你们知道,Hadoop的两大核心就是HDFS和MapReduce,而整个Hadoop的体系结构主要是经过HDFS的分布式存储做为底层数据支持的。而且会经过MapReduce来进行计算分析。架构

Hadoop1.x的核心:

1. Hadoop Common框架

2. Hadoop Distributed File System(HDFS)机器学习

3. Hadoop MapReduce分布式

Hadoop2.x的核心:

1. Hadoop Common函数

2. Hadoop Distributed File System(HDFS)工具

3. Hadoop MapReduceoop

4. Hadoop YARN性能

Hadoop1.x生态系统:

Hadoop2.x生态系统图:

那么咱们从理解的角度来看,自底而上,分别是数据存储,数据整合管理,数据计算,数据挖掘处理这么几个过程。而各层之间贯穿着ETL和日志收集工具。这就是Hadoop粗略的一个知识架构。下面咱们一个个的来看,整个Hadoop的技术生态体系板块是怎样的。

1. HDFS

分布式文件系统,将一个文件分红多个块,分别存储(拷贝)到不一样的节点上.它是Hadoop体系中数据存储管理的基础。它是一个高度容错的系统,能检测和应对硬件故障,用于在低成本的通用硬件上运行。HDFS简化了文件的一致性模型,经过流式数据访问,提供高吞吐量应用程序数据访问功能,适合带有大型数据集的应用程序。提供了hadoop运算过程当中的数据存储、数据备份、数据错误校验等功能

2. MapReduce

分布式计算框架,它是一种分布式计算处理模型和执行环境,用于进行大数据量的计算。共包括Map和Reduce部分。其中Map接受一个键值对(key-value),产生一组中间键值对。MapReduce框架会将map函数产生的中间键值对里键相同的值传递给一个reduce函数。Reduce函数:接受一个键,以及相关的一组值,将这组值进行合并产生一组规模更小的值(一般只有一个或零个值)。

3. hive

基于Hadoop的数据仓库工具,能够将结构化的数据文件映射为一张数据库表,并提供相似SQL同样的查询语言HiveQL来管理这些数据。Hive定义了一种相似SQL的查询语言(HQL),SQL转化为MapReduce任务在Hadoop上执行。一般用于离线分析。

4. Pig

Pig是一个基于Hadoop的大数据分析平台,它提供了一个叫PigLatin的高级语言来表达大数据分析程序,将脚本转换为MapReduce任务在Hadoop上执行。一般用于进行离线分析。

5. Mahoutt

数据挖掘算法库,Mahout起源于2008年,最初是Apache Lucent的子项目,它在极短的时间内取得了长足的发展,如今是Apache的顶级项目。Mahout的主要目标是建立一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地建立智能应用程序。Mahout如今已经包含了聚类、分类、推荐引擎(协同过滤)和频繁集挖掘等普遍使用的数据挖掘方法。除了算法,Mahout还包含数据的输入/输出工具、与其余存储系统(如数据库、MongoDB 或Cassandra)集成等数据挖掘支持架构。

6. ZooKeeper

分布式协做服务,是一个针对大型分布式系统的可靠协调系统,提供包括配置维护,名字服务,分布式同步和组服务等功能。Hadoop的管理就是用的ZooKeeper

7. HBase

HBase是一个分布式列存数据库,它基于Hadoop之上提供了相似BigTable的功能。HBase是一个针对结构化数据的可伸缩、高可靠、高性能、分布式和面向列的动态模式数据库。和传统关系数据库不一样,HBase采用了BigTable的数据模型:加强的稀疏排序映射表(Key/Value),其中,键由行关键字、列关键字和时间戳构成。HBase提供了对大规模数据的随机、实时读写访问,同时,HBase中保存的数据可使用MapReduce来处理,它将数据存储和并行计算完美地结合在一块儿。

8. Sqoop

数据同步工具,SQL-to-Hadoop的缩写。Sqoop是一个Hadoop和关系型数据库之间的数据转移工具。可将关系型数据库中的数据导入到HadoopHDFS中,也可将HDFS中的数据导进到关系型数据库中主要用于传统数据库和Hadoop以前传输数据。数据的导入和导出本质上是Mapreduce程序,充分利用了MR的并行化和容错性。

9. Flume

日志收集工具,Cloudera开源的日志收集系统,具备分布式、高可靠、高容错、易于定制和扩展的特色。它将数据从产生、传输、处理并最终写入目标的路径的过程抽象为数据流,在具体的数据流中,数据源支持在Flume中定制数据发送方,从而支持收集各类不一样协议数据。同时,Flume数据流提供对日志数据进行简单处理的能力,如过滤、格式转换等。此外,Flume还具备可以将日志写往各类数据目标(可定制)的能力。总的来讲,Flume是一个可扩展、适合复杂环境的海量日志收集系统。

10. Ambari

是一个对Hadoop集群进行监控和管理的基于Web的系统。目前已经支持HDFS,MapReduce,Hive,HCatalog,HBase,ZooKeeper,Oozie,Pig和Sqoop等组件。

11.Apache Spark

Apache Spark是提供大数据集上快速进行数据分析的计算引擎。它创建在HDFS之上,却绕过了MapReduce使用本身的数据处理框架。Spark经常使用于实时查询、流处理、迭代算法、复杂操做运算和机器学习。

相关文章
相关标签/搜索