Hadoop及其组件介绍

一、Hadoop简介
  Hadoop来源于Google的GFS论文,发表于2003年的10月,也是由Apache基金会所开发出的分布式系统基础架构。用户可以在不用了解分布式底层的实现细节情况下,开发分布式程序。充分利用主机集群的强大威力来进行数据的高速运算和存储等功能。Hadoop具有高容错性的特点,并且它的集群主机可以部署在低廉的硬件之上;而且它还提供了高吞吐量来访问应用程序的数据,适合用来处理超大数据集,而且它还可以以数据流的形式来访问文件系统中的数据。Hadoop的出现就是为了解决大数据(单台主机无法对数据进行存储和短时间内对数据进行处理)的问题。
 
二、Hadoop中的集群 
Hadoop基本集群的节点类型主要有:
  1)NameNode(名称节点):主要用来协调集群中的数据存储,管理HDFS的名称空间和数据块映射的信息,配置文件副本策略和处理客户端的请求。
  2)DataNode(数据节点):主要是存储实际被拆分的数据块,并汇报存储信息给NameNode。
  3)Secondary NameNode(辅助节点):主要用来辅助NameNode节点,帮助NameNode收集文件系统运行的状态信息,分担其工作量。
  4)ResourceManager:在YARN中。负责集群中所有资源的统一管理和分配,它接受来自各节点资源汇报信息,并把这些信息按照一定的策略分配给各个应用程序。
  5)JobTracker:协调数据计算任务。
  6)TaskTracker:负责执行有JobTracker指派的任务。

三、Hadoop中的各组件
1)HDFS(分布式文件系统):
  HDFS源于Google的GFS论文,HDFS是GFS的克隆版本,HDFS是Hadoop体系中数据存储和管理的基础。它是一个具有高度容错性的系统,能够检测和应对硬件的故障,用于部署在低成本的通用硬件之上运行。HDFS简化了文件的一致性模式,通过数据流式对数据进行访问,提供高吞吐量应用程序数据访问的功能,适合带有大型数据集的应用程序。
2)Mapreduce(分布式计算框架):
  Mapreduce是一种计算模型,用来进行大数据量的计算。其中Map对数据集上的独立元素进行指定的操作,生成键值对形式的中间结果。Reduce则是对中间结果相同的"键"的所有"值"进行规约,以得到最终的结果。MapReduce这种计算框架的功能拆分,非常适合在大量计算机组成的分布式并行环境里进行数据的处理。
3)Hive(基于Hadoop的数据仓库):
  由Facebook开源,最初用于解决海量的结构化的日志数据统计问题。Hive定义了一种类似于SQL的查询语言(HQL),将SQL转化为MapReduce任务并在Hadoop上执行,通常用于对数据做离线分析。
4)Hbase(分布式列式数据库):
  源于Google的Bigtable论文,发表于2006年11月,Hbase是Google Bigtable的克隆版;HBase是一个针对结构化数据的可伸缩性、高可靠、高性能、分布式和面向列存储的动态模式数据库。和传统的行式关系数据库不同,HBase采用了Bigtable的数据模型:增强的稀疏排序映射表(Key/Vale),其中,键由行关键字、列关键字和时间戳构成。HBase提供了对大规模数据的随机、实时读写访问,同时,HBase中保存的数据可以使用MapReduce来处理,它将数据存储和并行计算完美的结合在了一起。
5)Zookper(分布式协作服务):
  源于Google的Chubby论文,发表于2006年11月,Zookeeper是Chubby的克隆版,主要用来解决分布式环境下的数据管理问题:数据统一命名,状态同步,集群管理,配置同步等。
6)Sqoop(数据同步工具):
  Sqoop是SQL-to-Hadoop的缩写,主要用于传统数据库和Hadoop之间来传输数据,数据的导入和导出本质上是Mapreduce程序,充分利用了MapReduce的并行化和容错性。
7)Pig(基于Hadoop的数据流系统):
  由Yahoo开源,设计动机是用来提供一种基于MapReduce的ad-hoc(计算query时发生)数据分析工具,它定义了一种数据流语言-Pig Latin,将脚本转换为MapReduce任务在Hadoop上执行。通常用来做离线数据分析。
8)Mahout(数据挖掘算法库):
  Mahout起源于2008年,最初是由Apache Lucent的子项目,它在极短的时间内取得了长足的发展,现在是Apache的顶级项目。Mahout的主要目标是创建一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷的创建智能应用程序。Mahout现在已经包含了聚类、分类、推荐引擎(协同过滤)和频繁挖掘
等广泛使用的数据挖掘方法。处理算法,Mahout还包含数据的输入/输出工具、与其它存储(如数据库、MongoDB或Cassandra)集成等挖掘支持架构。
9)Flume(日志收集工具):
  由Cloudera开源的日志收集系统,具有分布式。高可靠、高容错性、易于定制和扩展的特点。它将数据从产生、传输、处理并最终写入目标的路径的过程抽象为数据流,在具体的数据流中,数据源支持在Flume中定制数据发送方,从而支持收集各种不同协议的数据。同时,Flume数据流还提供对日志数据进行简单处理的能力,如过滤、格式转换等。此外,Flume还具有能够将日志写往各种数据目标(可定制)的能力。总的来说的话,Flume是一个可扩展的、适合复杂环境的海量日志数据收集系统。
在这里插入图片描述

发布了83 篇原创文章 · 获赞 6 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Micky_Yang/article/details/97551231