首页 > 编程知识 正文

hadoop发展历程,hadoop生态圈分类

时间:2023-05-06 10:51:36 阅读:56995 作者:3171

Hadoop是一个可以分布式处理大量数据的软件框架。 具有良好的可靠性、效率和伸缩性。

Hadoop的核心是HDFS和Mapreduce,HDFS还包括YARN。

1,HDFS(hadoop分布式文件系统)

是hadoop系统中数据存储管理的基础。 他是一个高度容错的系统,能够检测并应对硬件故障。

客户端)剪切文件、访问HDFS、与namenode交互、获取文件位置信息、与DataNode交互、读取和写入数据。

namenode:Hadoop1.x中只有一个主节点。 管理HDFS的命名空间和块映射信息,配置复制策略,并处理客户端请求。

DataNode:slave节点,保存实际数据,并将保存的信息报告给namenode。

辅助命名:辅助命名并分担其工作量:定期整合fsimage和fsedits,推送至命名; 紧急情况和辅助恢复namenode,但不是namenode热备盘。

2,mapreduce(分布式计算框架)

mapreduce是处理大数据量计算的计算模型。 其中,map根据数据集上的独立元素执行指定操作,生成键-值对格式的中间,reduce对中间结果中同一键的所有值进行规约化,得到最终结果。

job tracker :只有一个主节点管理所有任务、任务/任务监视、错误处理等,将任务分解为一系列任务,并分配给tasktracker。

tack tracker :执行slave节点、map task和reducetask; 与jobtracker交互并报告任务状态。

传递给map task (分析每个数据记录,并将其传递给用户创建的map )运行,并将输出结果写入本地磁盘(对于map—only作业,直接写入HDFS )。

reduce task :从map深入执行的结果中,远程读取输入数据,对数据进行排序,将数据包传递给用户创建的reduce函数后执行。

3, hive(基于hadoop的数据仓库)

Facebook开源,最先用于解决大量结构化日志数据的统计问题。

hive由类似sql的查询语言(hql )确定,将sql转换为mapreduce的任务在hadoop中执行。

4,hbase(分布式列存数据库)

hbase是结构化数据的可伸缩、可靠、高性能、分布式、面向列的动态模式数据库。 与传统的关系数据库不同,hbase采用了bigtable的数据模型。 稀疏排序映射表(key/value )得到增强。 其中,密钥由行密钥、列密钥、时间戳构成,hbase提供对大数据的随机实时读写访问,并且hbase中存储的数据可以由mapreduce处理,可以与数据存储和

5,zookeeper(分布式协作服务)

解决分布式环境中的数据管理问题:统一命名、状态同步、集群管理、配置同步等。

6,sqoop(数据同步工具)

sqoop是sql-to-hadoop的缩写,主要用于传统数据库和hadoop之间的数据传输。

数据导入和导出本质上是一个mapreduce程序,利用了MR的并行化和容错。

7,pig(基于hadoop的数据流系统)

定义了一种名为-pig latin的数据流语言,它将脚本转换为mapreduce任务并在hadoop中运行。

通常用于离线分析。

8,mahout(数据挖掘算法库)

mahout的主要目标是创建可扩展机器学习领域的经典算法实现,旨在帮助开发人员更方便快捷地创建智能APP应用程序。 mahout目前包括聚类、分类、推荐引擎(协同过滤)和频繁聚集挖掘等广泛使用的数据挖掘方法。 除了算法外,mahout还包括数据输入/输出工具,以及数据挖掘支持体系结构,如与其他存储系统(如数据库、mongoDB和Cassandra )的集成。

9,flume(日志收集工具)

cloudera开源日志收集系统具有分布式、高可靠性、容错性、易于定制和扩展的特点。 他将数据生成、传输、处理和将路径写入目标的过程抽象为数据流。 在特定的数据流中,数据源支持在flume中自定义数据发送源,并支持收集各种协议数据。

10,资源管理器的简单介绍(YARN和mesos)

随着互联网的高速发展,基于数据密集型APP应用的计算框架层出不穷,从支持离线处理的mapreduce到支持在线处理的storm,从迭代计算框架到storm 例如,在搜索引擎公司中,可能技术

术方法如下:网页建索引采用mapreduce框架,自然语言处理/数据挖掘采用spark,对性能要求到的数据挖掘算法用mpi等。公司一般将所有的这些框架部署到一个公共的集群中,让它们共享集群的资源,并对资源进行统一使用,这样便诞生了资源统一管理与调度平台,典型的代表是mesos和yarn。

 11,其他的一些开源组件:

 1)cloudrea impala:

  一个开源的查询引擎。与hive相同的元数据,SQL语法,ODBC驱动程序和用户接口,可以直接在HDFS上提供快速,交互式SQL查询。impala不再使用缓慢的hive+mapreduce批处理,而是通过与商用并行关系数据库中类似的分布式查询引擎。可以直接从HDFS或者Hbase中用select,join和统计函数查询数据,从而大大降低延迟。

 2)spark:

spark是个开源的数据 分析集群计算框架,最初由加州大学伯克利分校AMPLab,建立于HDFS之上。spark与hadoop一样,用于构建大规模,延迟低的数据分析应用。spark采用Scala语言实现,使用Scala作为应用框架。

spark采用基于内存的分布式数据集,优化了迭代式的工作负载以及交互式查询。

与hadoop不同的是,spark与Scala紧密集成,Scala象管理本地collective对象那样管理分布式数据集。spark支持分布式数据集上的迭代式任务,实际上可以在hadoop文件系统上与hadoop一起运行(通过YARN,MESOS等实现)。

3)storm

storm是一个分布式的,容错的计算系统,storm属于流处理平台,多用于实时计算并更新数据库。storm也可被用于“连续计算”,对数据流做连续查询,在计算时将结果一流的形式输出给用户。他还可被用于“分布式RPC”,以并行的方式运行昂贵的运算。

4)kafka

 kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 对于像Hadoop的一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息

5)redis

 Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

 

Hadoop生态圈主要应用

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