首页 > 编程知识 正文

hadoop生态系统组成,hadoop开发环境搭建

时间:2023-05-05 20:19:16 阅读:57004 作者:4558

1、Hadoop生态系统概况

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

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

2、HDFS(Hadoop分布式文件系统)。

根据谷歌的GFS论文,发表于2003年10月,HDFS是GFS克隆版。

是Hadoop系统中数据存储管理的基础。 它是一个容错系统,可检测和响应硬件故障,可在低成本的通用硬件上运行。 HDFS简化了文件完整性模型,通过流数据访问提供了高吞吐量的APP应用程序数据访问功能,适用于具有大型数据集的APP应用程序。

客户端:拆分文件; 访问HDFS; 与NameNode交互,获取文件位置信息; 与DataNode交互,读取和写入数据。

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

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

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

3、Mapreduce (分布式计算框架)。

来自谷歌的MapReduce论文,于2004年12月发表,Hadoop MapReduce是谷歌MapReduce克隆版。

来自谷歌的MapReduce论文

MapReduce是进行大数据量计算的计算模型。 其中,Map对数据集上的独立元素执行指定操作,并生成键-值对格式的中间结果。 Reduce将中间结果中相同“键”的所有“值”规约化,得到最终结果。 像MapReduce这样的功能分割非常适合在由大量计算机组成的分布式并行环境中处理数据。

作业跟踪程序: master节点,仅管理一个作业、所有作业/任务监视、错误处理等; 将任务分解为一系列任务,并将其分配给TaskTracker。

任务跟踪者:执行映射任务和创建任务的从属节点; 与JobTracker交互并报告任务状态。

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

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

Mapreduce处理流程,以wordCount为例:

4、hive (基于Hadoop的数据仓库)。

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

Hive定义类似SQL的查询语言(HQL ),将SQL转换为MapReduce任务并在Hadoop中运行。

通常用于离线分析。

5、分布式列存储数据库(Hbase ) ) )。

来自谷歌的Bigtable论文于2006年11月发表,HBase是谷歌Bigtable克隆版

HBase是一个面向结构化数据的可扩展、可靠、高性能、分布式、面向列的动态模式数据库。 与传统的关系数据库不同,HBase采用了BigTable的数据模型。 在增强的稀疏排序映射表(Key/Value )中,关键帧由行关键帧、列关键帧和时间戳组成。 HBase提供对大数据的随机实时读写访问,同时存储在HBase中的数据可以使用MapReduce进行处理,将数据存储与并行计算完美结合。

数据模型:方案tablecolumn familycolumnrow keytimestampvalue

6、Zookeeper (分布式协作服务)。

谷歌的Chubby论文发表于2006年11月,Zookeeper是Chubby克隆版

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

7、Sqoop (数据同步工具) )。

SQL-to-Hadoop的缩写,主要用于在传统数据库和Hadoop之前传输数据。

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

8、基于硬件的数据流系统(pig )。

雅虎先生! 开源、设计的动机是提供基于MapReduce的ad hoc (计算查询时发生)数据分析工具

将脚本转换为MapReduce任务并在Hadoop中运行—定义了一种名为—Pig Latin的数据流语言。

通常用于离线分析。

9、Mahout (数据挖掘算法库) )。

始于2008年的Mahout最初是Apache Lucent的子项目,在短时间内取得了长足发展,现在是Apache的顶级项目。

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

10、日志收集工具)

Cloudera开源日志收集系统具有分布式、可靠、容错、易于定制和扩展的特点。

将生成、传输和处理数据并最终写入目标路径的过程抽象为数据流。 在特定数据流中,数据源支持在Flume中自定义数据源,并支持收集各种协议数据。 另一方面,Flume数据流提供了易于处理日志数据的功能,如过滤、格式转换等。 Flume还具有将日志写入各种数据目标(可定制)的能力。 通常,Flume是一个可扩展、适用于复杂环境的大量日志收集系统。

更多测试知识和重点关注微信公众号【软件测试花痴大山】

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