目录
1、什么是hadoop?
Hadoop是一个开源框架,用于分布式存储和处理大型数据集。它基于Google的MapReduce算法和Google文件系统(GFS),旨在提供一种可扩展的、分布式的处理大数据集的平台。Hadoop包括两个核心组件:Hadoop分布式文件系统(HDFS)和Hadoop MapReduce。HDFS是一个可靠的分布式文件系统,用于存储大数据集,而Hadoop MapReduce则是一种用于处理HDFS中存储的数据的编程模型和计算框架。Hadoop被广泛用于大数据处理、数据仓库、日志分析、搜索和机器学习等领域。
2、hadoop的工作原理
Hadoop是一个分布式计算框架,它的工作原理可以简单地描述为:
-
数据分割:在Hadoop集群中,数据被分割成多个块,每个块都被存储在不同的计算节点上。这种分割使得Hadoop可以处理大规模数据集。
-
节点间通信:Hadoop使用HDFS(Hadoop分布式文件系统)来管理数据块的存储和检索。当一个计算任务需要访问数据时,Hadoop会利用网络连接将任务传输到存储该数据块的节点上。
-
MapReduce任务:Hadoop的MapReduce模型是一种将数据分割并分散处理的模型。在MapReduce模型中,一个Map任务将数据分割成多个键值对,并将每个键值对发送到不同的计算节点上进行处理。一个Reduce任务则将这些处理结果合并为一个最终结果。
-
数据本地化:为了提高计算速度,Hadoop会尽可能地将计算任务分配到存储数据块的节点上,以减少数据传输的时间。这种策略被称为“数据本地化”。
-
容错性:Hadoop具有很强的容错性,它能够处理计算节点故障,数据块丢失等问题。当一个计算节点出现故障时,Hadoop会自动将该节点上的任务重新分配到其他节点上进行处理。
3、hadoop的工作流程
Hadoop的整个工作流程分为以下几个步骤:
- 将大数据集分割成多个小的数据块。
- 将这些小数据块分配到多个节点上,进行并行处理。
- 在每个节点上,使用MapReduce算法对数据进行处理和分析。
- Reduce节点将Map节点输出的中间结果进行合并、汇总和计算。
- 最后,将分析结果合并输出。
整个工作流程的核心是MapReduce算法,它通过并行处理和分析大量数据,实现了高效的数据处理和分析。同时,Hadoop还提供了HDFS分布式文件系统,能够实现数据可靠存储和管理。整个工作流程的特点是高度可扩展和容错性,能够处理海量数据和节点故障。
4、hadoop的生态系统
Hadoop生态系统是一个开源的分布式计算平台,是Apache Hadoop项目的核心。 它包括多个组件,旨在处理和分析大数据集。
以下是Hadoop生态系统的主要组件:
-
Hadoop分布式文件系统(HDFS):它是一个分布式文件系统,最初是为存储和访问Hadoop集群中的大文件而设计的。 它使用多个计算机节点来存储和访问数据,提供了高可靠性和可扩展性。
-
Hadoop MapReduce:是一个分布式计算框架,用于在大数据集上运行并行计算任务。 它将任务分解为较小的子任务,并在多个计算机节点上并行处理这些子任务以加速计算。
-
YARN(Yet Another Resource Negotiator):是一个资源管理器,用于管理分布式计算集群中的计算资源。 它允许多个应用程序并发运行在同一个Hadoop集群中。
-
HBase:是一个分布式的、可伸缩的、列式数据库,用于存储和管理大数据集。 它提供快速的读/写操作,支持海量数据的随机访问。
-
Pig:是一个基于Hadoop的数据分析平台,用于查询和分析大数据集。 它提供了一种类似于SQL的语言,称为Pig Latin。
-
Hive:是一个基于Hadoop的数据仓库,用于查询和分析大规模数据集。 它支持使用类似于SQL的查询语言来查询数据,可以以表格的形式来组织和管理数据。
-
Spark:是一个快速的、可扩展的、内存计算框架,设计用于处理大规模数据集。 它支持多种计算类型,包括批处理、交互式查询、流处理等。
上述组件使Hadoop成为一个无与伦比的分布式计算平台,非常适合处理大规模的、非结构化的数据集。 它的能力已经被广泛应用于各种领域,包括金融、医疗、电子商务等。
5、安装及配置hadoop流程操作
5.1 解压压缩包
#先解压压缩包
tar -zxvf hadoop-3.1.2.tar.gz
#删除压缩包
sudo rm *.gz
#修改名称(后面切换目录更方便)
sudo mv hadoop-3.1.2 hadoop
5.2 配置etc/profile文件
sudo vim etc/profile
# 文件添加内容
export HADOOP_HOME=/opt/apps/hadoop #等号后面的目录是你下载hadoop的目录
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
切换至这个目录下,进行hadoop各个文件的配置。
5.3 配置5个文件相关文件
sudo vim core-site.xml
这个文件包含了Hadoop的核心配置信息。
其中最重要的配置是Hadoop的文件系统(HDFS)的名称节点的地址,以及其他一些全局设置,如默认块大小、副本数量等。
需要配置的参数示例:
fs.defaultFS: 指定HDFS的名称节点的地址。
hadoop.tmp.dir: 指定Hadoop集群的临时目录。
sudo vim hdfs-site.xml
这个文件包含了Hadoop分布式文件系统(HDFS)的配置信息。
它定义了数据块的复制策略、HDFS的数据目录等信息。
需要配置的参数示例:
dfs.replication: 指定数据块的副本数量。
dfs.namenode.name.dir: 指定HDFS名称节点数据存储目录。
dfs.datanode.data.dir: 指定HDFS数据节点数据存储目录。
sudo vim workers
这个文件列出了Hadoop集群中所有数据节点的主机名或IP地址。
每行包含一个主机名或IP地址,Hadoop会自动识别并管理这些数据节点。
sudo vim mapred-site.xml
这个文件包含了MapReduce框架的配置信息。
它定义了MapReduce作业的执行方式、资源分配等。
需要配置的参数示例:
mapreduce.framework.name: 指定MapReduce框架的名称
sudo vim yarn-site.xml
这个文件包含了YARN(Yet Another Resource Negotiator)资源管理器的配置信息。
YARN用于资源调度和管理Hadoop集群上的应用程序。
需要配置的参数示例:
yarn.resourcemanager.hostname: 指定资源管理器的主机名。
yarn.nodemanager.local-dirs: 指定本地目录以存储临时文件。
这些配置文件是Hadoop集群的关键组成部分,它们用于定义如何管理和分配资源、存储数据以及执行MapReduce作业。通过编辑这些文件,您可以根据集群的需求来自定义Hadoop的行为,确保它能够适应不同的环境和工作负载。配置这些文件是为了确保Hadoop集群能够正确运行并满足您的需求。
5.4 更新profile文件内容
5.5 分别对namenode&datanode进行格式化
在配置Hadoop集群时,格式化NameNode和DataNode是必要的步骤。原因有以下几点:
5.5.1. 在Hadoop中,NameNode是集群的管理节点,负责管理文件系统的元数据,包括文件名、目录结构、各个文件块在集群中的位置等信息。因此,对于NameNode的格式化可以清空元数据信息,以便重新建立一个全新的HDFS文件系统。
5.5.2. DataNode是存储数据块的节点,格式化DataNode会将该节点上的数据块全部清空,以便重新分配任务。
5.5.3. 在集群中添加新的DataNode或替换原有的DataNode时,需要重新格式化该节点,以确保数据能够正确地同步到该节点上。
5.5.4. 格式化是一种保障机制,可以清除可能存在的数据损坏或错误,以确保集群的稳定性和可靠性。
综上所述,格式化NameNode和DataNode是必要的步骤,可以提高Hadoop集群的可用性和性能。