一.hadoop介绍
- hadoop是什么
hadoop是一个由Apache基金会所开发的分布式系统基础框架,可以部署在大规模集群的集分布式数据存储、分布式数据计算、分布式资源调度为一体的整体解决方案。 - hadoop的起源
起源Doug Cutting开创的一个解决存储数据困难,检索速度慢的Nutch项目。
Google在大数据方面的三篇论文加速了hadoop项目的发展:
《The Google file system》谷歌分布式文件系统GFS
-> HDFS
《MapReduce: Simplified Data Processing on Large Clusters》分布式计算框架MapReduce
->MR
《Bigtable: A Distributed Storage System for Structured Data》谷歌结构化数据存储系统
->Hbase - hadoop发行版本
1.apache:由apache基金会维护的开源社区版本,版本丰富,兼容性差
2.Cloudera:社区版Hadoop基础上进行了一些修改、整合以及各个服务组件兼容性测试而发行的版本,兼容性稳定性更强
二、版本
1.x版本系列: hadoop的第二代开源版本,该版本基本已被淘汰 hadoop组成: HDFS(存储)和MapReduce(计算和资源调度)
2.x版本系列: 架构产生重大变化,引入了Yarn平台等许多新特性 hadoop组成: HDFS(存储)和MapReduce(计算)和YARN(资源调度)
3.x版本系列: 因为2版本的jdk1.7不更新,基于jdk1.8升级产生3版本 hadoop组成: HDFS(存储)和MapReduce(计算)和YARN(资源调度)
三、生态组成

存储
Apache Hadoop-HDFS: HDFS是Apache Hadoop Core项目的一部分,(Hadoop Distributed File System) Hadoop分布式文件存储系统
Apache Hbase: HBase是Apache的Hadoop项目的子项目
Apache Kudu: 是由Cloudera开源的存储引擎,贡献给Apache基金组织
计算
Apache Hadoop-MapReduce: MapReduce组件是最早一代的大数据分布式计算引擎对大数据的发展做出了卓越的贡献
Apache Hive: Hive是一款以SQL为要开发语言的分布式计算框架。HiveSQL其底层翻译成了Hadoop的MapReduce程序去执行
Apache Spark: Spark是目前全球范围内最火热的分布式内存计算引擎。是大数据体系中的明星计算产品
Apache Flink: Flink同样也是一款明星级的大数据分布式内存计算引擎。特别是在实时计算(流计算)领域占据了大多数的国内市场。
传输
Apache Sqoop: Sqoop是一款ETL工具,可以协助大数据体系(hdfs,hive)和关系型数据库(mysql)之间进行数据传输。
Apache Flume: Flume是一款流式数据采集工具,可以从非常多的数据源中完成数据采集传输的任务。
Apache Kafka: Kafka是一款分布式的消息系统,可以完成海量规模的数据传输工作。Apache Kafka在大数据领域也是明星产品
Apache Pulsar: Pulsar同样是一款分布式的消息系统。
四、框架组成
hadoop框架的三个核心组件:HDPS,MadReduce,Yarn
HDFS是Hadoop的分布式文件系统,负责管理存储在集群中磁盘上的数据。HDFS将一个文件分成一个或多个数据块进行存储,每个数据块的大小默认是128 MB,可以根据需要进行调整。HDFS会在不同的DataNode上存储数据块的副本,以提高数据的可靠性和可用性。当读取一个文件时,HDFS会从多个DataNode上获取数据块,并将它们组合成完整的文件。
YARN是Hadoop的一个重要组件,它是一个资源管理器和作业调度器,用于管理和调度集群中的计算资源。YARN的全称是Yet Another Resource Negotiator,意思是另一种资源协调器。YARN的目标是让Hadoop能够支持多种计算模型和应用程序,而不仅仅是MapReduce。
MapReduce是一种分布式计算模型,它可以将大规模的数据集分解为多个小的任务,交由不同的节点并行处理,然后再将处理结果合并为最终结果。MapReduce的作用是提高数据处理的效率和可扩展性,适用于离线批处理、数据分析、数据挖掘等场景。
1.HDFS(分布式文件系统),解决海量数据存储:有三个组件NN、SNN、DN
NameNode:主节点,处理客户端请求,负责元数据(如文件名、文件目录、文件属性)的存储,管理集群中的各类数据
SecondaryNameNode:主要用于辅助NameNode进行文件块的存储
Datanode:从节点,存储真实的业务(文件块)数据,执行数据读写
2.Yarn(作业调度和集群资源管理的框架),解决资源任务调度:
YARN的架构主要有有RM和NM等组件组成
ResourceManager: 接收用户的计算请求任务,监控NodeManager,资源分配和调度
NodeManager: 负责执行主节点分配的任务(给MR的计算程序提供资源),管理单个节点上的资源,处理来自ResourceManager的命令
3.MapReduce(分布式计算模型),解决海量数据计算
MapReduce依赖HDFS进行数据存储,依赖Yarn提供资源调度。
MapReduce计算过程分为两个阶段:
Map(映射)阶段:负责将输入数据映射为多个键值对,并根据键值对分组和排序,然后发给Reduce任务。(相同key的数据将发给同一个Reduce任务)
Reduce(聚合)阶段:对数据进行聚合和计算,并输出最终结果
本文介绍了Hadoop,一个由Apache基金会开发的分布式系统,涵盖其起源、主要版本(1.x、2.x、3.x)、组成部分(HDFS、MapReduce、YARN及生态系统的存储、计算和传输组件),以及核心组件HDFS、YARN和MapReduce的工作原理。

被折叠的 条评论
为什么被折叠?



