目录
1.认识Hadoop框架2.了解Hadoop核心组件3.了解Hadoop生态系统4.了解Hadoop应用场景
一、认识Hadoop框架
Hadoop 是一个开源的分布式计算框架,最初由Apache软件基金会开发。它允许处理大规模数据集,可以在集群中运行,并提供高容错性。
Hadoop 的核心组件包括:
-
Hadoop Distributed File System (HDFS):是 Hadoop 中用于存储数据的分布式文件系统。它将大文件切分成多个块,并在集群中的多个节点上存储这些块,以实现高可靠性和高可用性。
-
Hadoop MapReduce:是 Hadoop 中用于并行处理大规模数据集的编程模型和软件框架。MapReduce 模型包括两个主要阶段:Map 阶段和 Reduce 阶段,它们分别处理输入数据并生成中间结果,最终输出最终结果。
-
YARN (Yet Another Resource Negotiator):是 Hadoop 2.x 版本引入的资源管理器。它负责集群资源的管理和作业调度,使得 Hadoop 可以同时运行多个数据处理框架,如MapReduce、Apache Spark、Apache Flink 等。
除了核心组件之外,Hadoop 生态系统还包括许多其他项目和工具,如:
-
Apache Hive:用于数据仓库查询和分析的数据仓库工具,它提供类似于 SQL 的查询语言——HiveQL。
-
Apache Pig:一个用于分析大型数据集的高级编程平台,它提供了一种简单的脚本语言——Pig Latin。
-
Apache HBase:一个基于 Hadoop 的分布式列式数据库,适用于大规模的结构化数据存储和实时读写访问。
-
Apache Spark:一个通用的大数据处理引擎,它提供了比 MapReduce 更快、更灵活的数据处理能力,并支持多种数据处理模式。
Hadoop 生态系统的不断发展和壮大,使得它成为处理大数据的主要工具之一,被广泛应用于企业和科研领域。
二、了解Hadoop核心组件
Hadoop 是一个开源的分布式计算框架,用于处理大规模数据。它的核心组件包括:
-
Hadoop分布式文件系统(HDFS):HDFS 是 Hadoop 的文件系统,用于存储大规模数据集。它将数据分布在集群的各个节点上,并提供了高容错性和高可靠性的存储解决方案。
-
Hadoop YARN:YARN(Yet Another Resource Negotiator)是 Hadoop 的资源管理器,用于集群资源的管理和调度。它允许多个数据处理框架(如MapReduce、Spark等)在同一个集群上运行,提高了资源利用率。
-
MapReduce:MapReduce 是 Hadoop 最早的计算模型,用于对大规模数据集进行并行处理。它将数据处理任务分解为 Map 和 Reduce 两个阶段,并在集群中的多个节点上并行执行。
-
Hadoop Common:Hadoop Common 包含了 Hadoop 的公共库和工具,提供了许多支持分布式计算的基础功能,如跨节点通信、安全认证、日志记录等。
-
Hadoop工具和生态系统:除了核心组件之外,Hadoop 还有许多相关的工具和生态系统,如Hive(数据仓库)、Pig(数据流处理)、HBase(分布式数据库)、Spark(内存计算框架)等,它们可以与 Hadoop 集成,提供更丰富的功能和应用场景。
-
这些组件共同构成了 Hadoop 的核心,使其成为处理大数据的强大工具。
1.了解分布式文件系统--HDFS
HDFS(Hadoop分布式文件系统)是Apache Hadoop项目的核心组件之一,旨在处理大规模数据的存储和处理。它是一个分布式文件系统,设计用于运行在廉价的硬件上,并支持大规模数据处理应用程序的高吞吐量。以下是关于HDFS的一些重要概念:
-
分布式存储:HDFS将数据分布式存储在集群中的多个节点上。每个文件被分成一系列的块,这些块被复制到集群中的不同节点上,以提高容错性和可靠性。
-
数据块:HDFS将文件划分为固定大小的数据块(通常默认为128MB或256MB),并将每个数据块的多个副本存储在不同的节点上。这种方式使得文件能够并行处理和存储,从而提高了数据处理的效率和可靠性。
-
主从架构:HDFS采用主从架构,包括一个名为NameNode的主节点和多个称为DataNode的从节点。NameNode负责管理文件系统的命名空间和客户端请求的处理,而DataNode负责实际的数据存储和处理。
-
数据复制:为了提高容错性和可靠性,HDFS会将每个数据块的多个副本存储在不同的DataNode上。默认情况下,每个数据块会复制到集群中的多个节点上,通常是3个副本。
-
容错性:HDFS通过在集群中存储数据的多个副本来实现容错性。如果某个节点发生故障或数据损坏,系统可以从其他副本中恢复数据,保证数据的可靠性和可用性。
-
高吞吐量:HDFS旨在支持大规模数据处理应用程序,具有高吞吐量和低延迟的特点。它通过并行处理和数据本地性等机制来提高数据访问的效率。
总的来说,HDFS是一个适用于大规模数据存储和处理的分布式文件系统,具有高容错性、高可靠性和高吞吐量的特点。
这里有一些常用的HDFS命令:
-
hadoop fs -ls
:列出指定路径下的文件和目录。
-
hadoop fs -mkdir
:创建一个新的目录。
-
hadoop fs -put
:将本地文件复制到HDFS。
-
hadoop fs -get
:将HDFS文件复制到本地文件系统。
-
hadoop fs -cat
:显示HDFS文件的内容。
-
hadoop fs -mv
:移动文件或目录。
-
hadoop fs -rm
:删除文件或目录。
-
hadoop fs -chown
:改变文件的所有者。
-
hadoop fs -chmod
:改变文件的权限。
-
hadoop fs -chgrp
:改变文件的所属组。
-
hadoop fs -du
:显示指定路径的大小。
-
hadoop fs -cp
:复制文件或目录。
这些命令提供了对HDFS中文件和目录进行常见操作的基本支持。使用这些命令可以在Hadoop集群上进行文件和目录的管理。
了解集群资源管理器--YARN
YARN(Yet Another Resource Negotiator)是Apache Hadoop的资源管理器。它充当Hadoop集群中资源的管理者,负责调度任务以及分配资源给正在运行的应用程序。YARN的设计使得Hadoop集群可以同时运行多个作业,并有效地利用集群资源。
YARN的核心组件包括:
-
ResourceManager(资源管理器):集群中的主节点,负责整个集群的资源分配和任务调度。它接收来自客户端的应用程序提交请求,并将资源分配给NodeManager执行。ResourceManager还监视集群中各个节点的健康状态,并重新分配资源以适应集群的动态变化。
-
NodeManager(节点管理器):运行在每个集群节点上的代理程序,负责管理单个节点的资源。NodeManager负责监视该节点上的容器(运行应用程序的环境),并报告其资源使用情况给ResourceManager。
-
ApplicationMaster(应用程序管理器):每个应用程序在YARN中都有一个对应的ApplicationMaster。它负责与ResourceManager协商资源,并与NodeManager通信以启动和监控应用程序的执行。ApplicationMaster还负责处理应用程序的容错和状态管理。
YARN的架构使得Hadoop集群能够更加灵活地管理和利用资源,从而提高了集群的利用率和性能。