供个人学习使用
1.大数据的特点
大、多、值、快、信,即5V:
- Volume(大量):大数据的采集、计算、存储量都非常庞大,待处理数据都是TB、PB、乃至EB级别的
- Variety(多样性):相对于以往便于存储的 以数据库/文本为主的结构化数据,非结构化数据越来越多,包括网络日志、音频、视频、图 片、地理位置信息等,这些多类型的数据对数据的处理能力提出了更高要求。
- Value(低价值密度):价值密度的高低与数据总量的大小成反比
- Velocity(高速):数据的采集、计算和存储速度都很快
- Veracity(可靠):数据精准可靠
2.hadoop主要解决得问题
- 海量数据的存储和海量数据的分析计算问题
3.Hadoop的优势:
- 高可靠性。Hadoop通过在多个节点上保存数据副本,确保即使某个计算节点或存储节点发生故障,数据也不会丢失。
- 高扩展性。Hadoop能够在现有的计算机集群中轻松扩展,支持成千上万的节点,使其能够处理大规模数据。
- 高效性。Hadoop能够在多个节点之间动态移动数据,并保持节点间的动态平衡,从而提高数据处理速度。
- 高容错性。Hadoop能够自动重新分配失败的任务和计算节点,确保任务继续执行。
- 低成本。Hadoop是开源的,用户可以免费下载和使用,显著降低了软件成本。
- 广泛的适用性。Hadoop的框架是基于Java编写的,使其能够运行在多种操作系统和硬件平台上。
- 成熟的技术生态和社区支持。Hadoop拥有一个成熟的技术生态和强大的开源社区支持,提供了丰富的工具和组件,便于用户集成和扩展。
4.Hadoop的组成
- 在Hadoop1.x版本中,Hadoop中的MapReduce同时处理业务逻辑运算和资源的调度,其耦合度较大
- 在Hadoop2.x版本中,在此基础上增加了Yarn,此后,MapReduce只处理业务逻辑运算,Yarn只负责资源调度
- Hadoop3.x版本相较于Hadoop2.x版本在组成上没有变化
4.1 HDFS
HDFS,全称Hadoop Distributed File System, 是Apache Hadoop项目的一个核心组件,是一个分布式文件系统,旨在存储大规模数据集并提供高可用性、容错性和高吞吐量的数据访问
HDFS主要由NameNode(nn)、DataNode(dn)和Secondary NameNode(2nn)组成
- NameNode: 存储文件的元数据 ,如文件名,文件目录结构,文件属性 (生成时间、副本数、文件权限),以及每个文件的块列表 和块所在的DataNode位置信息等。
- DataNode: 存储具体的文件,在本地文件系统存储文件块数据 ,以及块数据的校验和。
- Secondary NameNode: 每隔一段时间对NameNode进行数据备份,在NameNode挂掉时可以辅助恢复NameNode(会丢掉一部分数据,生产过程中采用配置两个NameNode的方式代替)
4.2 MapReduce
MapReduce分为Map和Reduce两个阶段:
- Map:并行处理输入输入的数据并将处理结果送往Reduce端相应的分区,各Mapper之间相互独立。
- **Reduce:**对Map阶段送来的处理结果进行汇总,各Reducer之间相互独立。
4.3 Yarn
Yarn,全称Yet Another Resource Negotiator,是一种资源管理者,负责Hadoop的资源调度。主要由Resource Manager(RM)、NodeManager(NM)、ApplicationManager(AM)和Container组成。
- ResourceManager (RM):整个集群资源的掌管者,负责协调和管理集群中的资源,包括内存、CPU和其他计算资源
- ApplicationManager(AM) :ResourceManager的一个子组件,其主要职责是管理MapReduce所有应用程序的生命周期和资源分配。ApplicationManager负责与ResourceManager协调,以分配所需的计算和存储资源。
- NodeManager(NM) :NodeManager是ResourceManager的下级组件,负责管理单个数据节点上的计算和存储资源。它监视节点上的资源使用情况,包括CPU、内存和磁盘空间等,以便及时向ResourceManager报告可用资源的情。
- Container:容器,相当一台独立的服务器,里面封装了任务运行所需要的资源,如内存、CPU、磁盘、网络等。
4.4 HDFS、MapReduce、Yarn之间的关系
- HDFS作为Hadoop的底层存储层,为MapReduce和其他大数据处理框架提供了高吞吐量的数据访问。
- MapReduce是Hadoop生态系统中的一个计算框架,它可以从HDFS中读取数据,并将处理结果写回HDFS。MapReduce依赖于HDFS来存储输入和输出数据,以及在YARN上执行任务。
- YARN充当资源管理器和作业调度器,它协调集群上运行的各种应用程序,包括MapReduce作业。MapReduce作业的执行需要YARN来分配和管理计算资源。