首页 > 编程知识 正文

hadoop生态架构,hadoop生态圈介绍

时间:2023-05-04 05:35:03 阅读:56966 作者:1364

1、Hadoop生态系统概况Hadoop是一个可以分布式处理海量数据的软件框架。 具有良好的可靠性、效率和伸缩性。 Hadoop的核心是HDFS和Mapreduce,hadoop2.0还包括YARN。 下图是hadoop的生态系统:

2、HDFS(Hadoop分布式文件系统)来源于谷歌的GFS论文,于2003年10月发表,HDFS是GFS克隆版。 是Hadoop系统中数据存储管理的基础。 它是一个容错系统,可检测和响应硬件故障,可在低成本的通用硬件上运行。 HDFS简化了文件完整性模型,通过流数据访问提供了高吞吐量的APP应用程序数据访问功能,适用于具有大型数据集的APP应用程序。Client:拆分文件; 访问HDFS; 与NameNode交互,获取文件位置信息; 与DataNode交互,读取和写入数据。NameNode:Master节点,hadoop1.X中只有一个,用于管理HDFS命名空间和块映射信息、配置复制策略和处理客户端请求。DataNode:Slave节点,保存实际数据,并将保存的信息报告给NameNode。 33558 www.Sina.com/:辅助NameNode并分担其工作量; 定期整合fsimage和fsedits,并推送至NameNode; 在紧急情况下,可以帮助NameNode恢复,但辅助名称不是NameNode的热备盘。 3、Mapreduce (分布式计算框架)来源于谷歌的Mapreduce论文,于2004年12月发表。 Hadoop MapReduce是谷歌地图克隆版。 谷歌的MapReduce论文MapReduce是进行大数据量计算的计算模型。 其中,Map对数据集上的独立元素执行指定操作,并生成键-值对格式的中间结果。 Reduce将中间结果中相同“键”的所有“值”规约化,得到最终结果。 像MapReduce这样的功能分割非常适合在由大量计算机组成的分布式并行环境中处理数据。Secondary NameNode:Master节点,仅一个,管理所有工作、工作/任务监视、错误处理等; 将任务分解为一系列任务,并将其分配给TaskTracker。JobTracker:Slave节点,运行映射任务和完成任务; 与JobTracker交互并报告任务状态。TaskTracker:分析每个数据记录,将其传递给用户创建的map (运行,并将输出结果写入本地磁盘;对于map-only作业,直接写入HDFS )。 3358 www.Sina.com/:从map task的运行结果中,远程读取输入数据,对数据进行排序,将数据按数据包传递给用户创建的reduce函数后执行。Map Task

4、hive (基于Hadoop的数据仓库)由facebook开源,最初用于解决大量结构化日志数据的统计问题。 Hive定义类似SQL的查询语言(HQL ),将SQL转换为MapReduce任务并在Hadoop中运行。 通常用于离线分析。

5、Hbase (分布式列存储数据库)来源于谷歌的Bigtable论文,于2006年11月发表。 Hbase是Google Bigtable克隆的Hbase,是面向结构化数据的可伸缩、高可靠性、高性能、分布式、列的动态模型数据库。 与传统的关系数据库不同,HBase采用了BigTable的数据模型。 在增强的稀疏排序映射表(Key/Value )中,关键帧由行关键帧、列关键帧和时间戳组成。 HBase提供对大数据的随机实时读写访问,同时存储在HBase中的数据可以使用MapReduce进行处理,将数据存储与并行计算完美结合。 数据模型:方案--- table---column family---column---row key---- timestamp---value

6、Zookeeper (分布式协作服务)来源于谷歌的Chubby论文,于2006年11月发表。 Zookeeper用Chubby克隆版解决分布式环境中的数据管理问题。 统一命名、状态同步、集群管理、配置同步等。 7、Sqoop (数据同步工具) Sqoop是SQL-to-Hadoop的缩写,主要用于传统数据库和Hadoop之前传输数据。 数据导入和导出本质上是一个Mapreduce程序,利用了MR的并行化和容错。 8、pig (基于Hadoop的数据流系统)是雅虎! 开源、设计动机是数据流语言,提供基于MapReduce的即席(计算在查询时发生)数据分析工具—定义—Pig Latin,将脚本转换为MapReduce任务并在Hadoop中运行通常用于离线分析。 9、Mahout (数据挖掘算法库) Mahout始于2008年,最初是Apache Lucent的一个子项目,它在极短的时间内有了很大的发展,现在是Apache的龙头项目。 Mahout的主要目标是创建可扩展机器学习领域的经典算法实现,旨在帮助开发人员更方便快捷地创建智能APP应用程序。 Mahout目前包括聚类、分类、推荐引擎(协同过滤)和频繁聚集挖掘等广泛使用的数据挖掘方法。 除了算法外,Mahout还包括数据挖掘支持体系结构,如与其他存储系统(如数据输入/输出工具、数据库、MongoDB和Cassandra )的集成。 10、日志采集工具(Flume ) Cloudera开源日志采集系统具有分布式、高可靠性、容错、易于定制和扩展的特点。 将生成、传输和处理数据并最终写入目标路径的过程抽象为数据流。 在特定数据流中,数据源支持在Flume中自定义数据源,并支持收集各种协议数据。 另一方面,Flume数据流提供了易于处理日志数据的功能,如过滤、格式转换等。 Flume还具有将日志写入各种数据目标(可定制)的能力。 通常,Flume是一个可扩展、适用于复杂环境的大量日志收集系统。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。