Apache Hadoop概述

Hadoop是一个开源的分布式计算框架,它可以处理大规模的数据集。Hadoop的核心是HDFS(Hadoop Distributed File System)和MapReduce编程模型。HDFS是一个高度容错性的系统,可以在数百台服务器上存储PB级别的数据。MapReduce是一种编程模型,它可以将大型数据集分割成小块,并在集群中的每个节点上并行处理这些小块。
官网:Apache Hadoop :https://hadoop.apache.org/

Hadoop核心组件

Hadoop HDFS(分布式文件存储系统):解决海量数据存储
Hadoop YARN(集群资源管理和任务调度框架):解决资源任务调度
Hadoop MapReduce(分布式计算框架):解决海量数据计算。

Hadoop优点

  1. 可扩展性:Hadoop可以轻松地扩展到数千台服务器,以处理大规模的数据集。这使得它成为处理大数据的理想选择。
  2. 高容错性:HDFS具有高容错性,可以在多个节点上存储数据,并且在某个节点出现故障时可以从其他节点恢复数据。
  3. 低成本:Hadoop是开源的,因此它的成本非常低。此外,由于它是分布式的,因此不需要昂贵的硬件来运行。
  4. 高性能:MapReduce编程模型允许在集群中的每个节点上并行处理数据,从而提高了处理速度。
  5. 灵活性:Hadoop支持多种编程语言,包括Java、Python和Ruby等。这使得开发人员可以根据自己的需求选择最适合自己的语言进行开发。

Hadoop生态圈

当下的Hadoop已经成长为一个庞大的体系,随着生态系统的成长,新出现的项目越来越多

框架 用途
HDFS 分布式文件系统
MapReduce 分布式运算程序开发框架
ZooKeeper 分布式协调服务基础组件
HIVE 基于HADOOP的分布式数据仓库,提供基于SQL的查询数据操作
FLUME 日志数据采集框架
oozie 工作流调度框架
Sqoop 数据导入导出工具(比如用于mysql和HDFS之间)
Impala 基于hive的实时sql查询分析
Mahout 基于mapreduce/spark/flink等分布式运算框架的机器学习算法库

Hadoop起源

Hadoop之父:Doug Cutting
在这里插入图片描述
开始是谷歌的三篇论文:
《The Google file system》:谷歌分布式文件系统GFS
《MapReduce: Simplified Data Processing on Large Clusters》:谷歌分布式计算框架
《Bigtable: A Distributed Storage System for Structured Data》:谷歌结构化数据存储系统
感兴趣的朋友可以去看看。

Hadoop集群

HADOOP集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起。
1. 逻辑上分离:两个集群互相之间没有依赖、互不影响
2. 物理上在一起:某些角色进程往往部署在同一台物理服务器上
HDFS集群负责海量数据的存储,集群中的角色主要有:
NameNode、DataNode、SecondaryNameNode
YARN集群负责海量数据运算时的资源调度,集群中的角色主要有:
ResourceManager、NodeManager

英文名称 简称 中文名称 描述
NameNode NN 名称节点 作为 HDFS 的管理者,接收并处理 Client 向 Hadoop 集群发送请求以及接收来自DataNode 节点周期性的上报信息。 具体职责如下: 1、配置副本策略。 2、处理客户端读写请求。 3、管理数据块(Block)映射信息,以元数据的形式存储于 Fsimage 镜像文件中。 4、管理 HDFS 的名称空间。
DataNode DN 数据节点 接收 NameNode 下达的命令,DataNode 执行实际的操作。 具体职责如下: 1、存储实际的数据块。 2、执行数据块的读/写操作。
SecondaryNameNode SNN 主角色辅助角色 并非 NameNode 的热备。当 NameNode 宕机或是无效时,它并不能马上替换NameNode 并提供服务,仅当 NameNode 重启或是热备的 NamenNode 激活时将宕机前所保留集群的快照发送给 NameNode,便于恢复此前集群的状态。 具体功能如下: 1、存辅 NameNode,分担其工作量。 2、定期合并 Fsimage 和 Edits,并推送给 NameNode。 3、在紧急情况下,可辅助恢复 NameNode。
ResourceManager RM 资源 在Yarn框架设计中其采用了Master/Slave结构,其中Master实现为ResourceManager,负责整个集群资源的管理与调度;Slave实现为NodeManager,负责单个节点的资源管理与任务启动。ResourceManager是整个Yarn集群中最重要的组件之一,其主要的功能包括ApplicationMaster的管理(启动、停止等)、NodeManager管理、Application管理、状态机管理等;并且ResourceManager负责集群中所有资源的统一管理和分配,它接收来自各个节点的资源汇报信息,并把这些信息按照一定的策略分配给各个应用程序;
NodeManager NM 调度 NodeManager是运行在单个节点上的代理,它管理Hadoop集群中单个计算节点,功能包括与ResourceManager保持通信,管理Container的生命周期、监控每个Container的资源使用(内存、CPU等)情况、追踪节点健康状况、管理日志和不同应用程序用到的附属服务等。

集群部署方式

Hadoop部署方式分三种:

  1. standalone mode(独立模式)
    独立模式又称为单机模式,仅1个机器运行1个java进程,主要用于调试。
  2. Pseudo-Distributed mode(伪分布式模式)
    伪分布模式也是在1个机器上运行HDFS的NameNode和DataNode、YARN的 ResourceManger和NodeManager,但分别启动单独的java进程,主要用于调试。
  3. Cluster mode(群集模式)
    集群模式主要用于生产环境部署。会使用N台主机组成一个Hadoop集群。这种部署模式下,主节点和从节点会分开部署在不同的机器上。

猜你喜欢

转载自blog.csdn.net/m0_58353740/article/details/131177815