【hadoop基础知识】

HADOOP基础

  • 1. Hadoop 简介
    • 什么是 Hadoop?
    • Hadoop 的历史和发展
    • Hadoop 的优势和应用场景
      • Hadoop 的优势主要体现在以下几个方面:
      • Hadoop 的应用场景主要包括以下几个方面:
    • Hadoop 的核心组件
      • Hadoop 由多个核心组件构成,主要包括以下几个:
    • Hadoop 的发展趋势
  • 2.Hadoop 核心组件
    • Hadoop 分布式文件系统(HDFS)
    • MapReduce 分布式计算框架
    • YARN(Yet Another Resource Negotiator)
    • Hadoop Common
    • ZooKeeper
  • 3. Hadoop 数据处理技术
    • Hadoop 的数据处理流程
    • Hadoop 的数据处理工具和技术
      • Hive
      • Pig
      • HBase
      • Sqoop
      • Flume
        • Flume 的主要组成部分包括:
        • Flume 的工作流程如下:
        • Flume 的应用场景包括:
  • 4. Hadoop 集群搭建和管理
    • Hadoop 集群的架构和规划
    • Hadoop 集群的搭建和配置
    • Hadoop 在 CentOS 7 上的安装和配置
    • 安装 Java
    • 下载 Hadoop
    • 配置 Hadoop
      • 配置环境变量
      • 配置 Hadoop
      • 格式化 NameNode
      • 启动 Hadoop
      • 验证 Hadoop
    • Hadoop 集群在 CentOS 7 上的安装和配置
      • 准备工作
        • 配置主机名
        • 配置 SSH
        • 安装 Java
        • 下载 Hadoop
      • 配置 Hadoop
        • 配置环境变量
        • 配置 Hadoop
        • 配置节点信息
        • 配置 Hadoop 环境
      • 启动 Hadoop
      • 测试 Hadoop
      • 结束 Hadoop
    • Hadoop 集群的启动和停止
      • 启动集群
      • 停止集群
    • Hadoop 集群的监控和管理
      • Hadoop Web UI
      • Hadoop 命令行工具
      • 日志监控
      • 第三方监控工具

1. Hadoop 简介

什么是 Hadoop?

Hadoop 是一个开源的分布式计算框架,用于解决大数据存储和处理的问题。它基于 Google 的 MapReduce 论文和 Google 文件系统(GFS)的思想,由 Apache 软件基金会开发和维护。Hadoop 的设计目标是能够处理以千万、亿计的数据为基础的应用程序,提供高可靠性、高性能和高可扩展性的数据处理服务。

Hadoop 的历史和发展

Hadoop 的历史可以追溯到 2003 年,当时 Doug Cutting 和 Mike Cafarella 在开发一个全文搜索引擎的过程中遇到了存储和处理大数据的问题。为了解决这个问题,他们开始研究 Google 的 GFS 和 MapReduce 论文,并基于这些思想开发了 Hadoop。最初的 Hadoop 项目包括两个主要组件:Hadoop 分布式文件系统(HDFS)和 MapReduce 分布式计算框架。后来,Hadoop 生态系统中涌现出了一些基于 Hadoop 的工具和技术,如 Pig、Hive、HBase、Sqoop、Flume 和 Spark 等,使得 Hadoop 成为了一个完整的大数据处理平台。

Hadoop 的优势和应用场景

Hadoop 的优势主要体现在以下几个方面:

  1. 高可靠性:Hadoop 是一个分布式系统,能够通过多节点数据备份、数据恢复和故障转移等技术保证数据的可靠性和稳定性。
  2. 高性能:Hadoop 的分布式计算框架能够将大数据集分成小的数据块进行并行处理,从而大大提高了数据处理的速度和效率。
  3. 高可扩展性:Hadoop 的分布式架构和数据分块的方式能够轻松地实现集群的扩容,支持处理 PB 级别的数据量。
  4. 开源和免费:Hadoop是一个开源的项目,不需要额外的软件许可证费用,且拥有庞大的社区支持。

Hadoop 的应用场景主要包括以下几个方面:

  1. 大数据分析:Hadoop 可以处理大规模的结构化和非结构化数据,使得大数据分析变得更加容易和高效。
  2. 数据挖掘:Hadoop能够支持各种数据挖掘算法和工具,可以挖掘数据中的有用信息,从而提高业务决策的准确性和效率。
  3. 数据管理:Hadoop提供了分布式文件系统和分布式计算框架,能够实现大规模数据的存储、管理和处理,从而满足数据管理方面的需求。
  4. 机器学习:Hadoop支持多种机器学习框架和算法,可以进行大规模的机器学习任务,如图像识别、语音识别、自然语言处理等。
  5. 日志分析:Hadoop 能够实现实时的日志分析和处理,支持处理大量的日志数据,从而实现更好的业务运营和管理。

Hadoop 的核心组件

Hadoop 由多个核心组件构成,主要包括以下几个:

  1. Hadoop 分布式文件系统(HDFS):HDFS 是 Hadoop 的分布式文件系统,它可以存储 PB级别的数据,并提供了多种数据备份、数据恢复和故障转移的技术,保证了数据的可靠性和稳定性。
  2. MapReduce分布式计算框架:MapReduce 是 Hadoop的分布式计算框架,它能够将大规模数据集分成小的数据块进行并行处理,从而实现高性能和高效率的数据处理。
  3. YARN(Yet Another Resource Negotiator):YARN 是 Hadoop 的资源管理器,它负责管理和分配集群中的计算资源,从而实现集群的管理和任务调度。
  4. Hadoop Common:Hadoop Common 是 Hadoop 的公共库和工具包,它包含了 Hadoop 的核心组件所需的公共工具和库。
  5. ZooKeeper:ZooKeeper 是Hadoop 的分布式协调服务,用于协调集群中的各个组件,保证集群的稳定性和可靠性。

Hadoop 的发展趋势

随着大数据技术的快速发展,Hadoop 的地位和影响力也越来越大。目前,Hadoop 已经成为了大数据处理的事实标准,但同时也面临着一些挑战和问题。为了应对这些挑战,Hadoop 社区正在不断地推出新的技术和工具,以满足不同场景下的需求,如:

  1. Hadoop 3.x:Hadoop 3.x 是 Hadoop 的最新版本,它引入了一些新的功能和特性,如 YARN 重构、HDFS 改进、新的 API 等,提升了 Hadoop 的性能和可靠性。
  2. Spark:Spark是一种快速、通用的大数据处理引擎,能够在内存中进行数据处理,具有更高的性能和效率,已成为 Hadoop 的重要组成部分。
  3. Hive、Pig、HBase 等:Hadoop 生态系统中还有许多基于 Hadoop 的工具和技术,如 Hive、zuookeeper等

2.Hadoop 核心组件

Hadoop 是一个开源的分布式计算框架,它具有高可靠性、高可扩展性、高效性、高容错性等特点,适合处理大规模数据的存储和分析。Hadoop 由多个核心组件构成,包括 Hadoop 分布式文件系(HDFS)、MapReduce 分布式计算框架、YARN、Hadoop Common 和 ZooKeeper。

Hadoop 分布式文件系统(HDFS)

HDFS 是 Hadoop 的分布式文件系统,它是 Hadoop 最核心的组件之一。HDFS 主要的作用是存储 PB 级别的大规模数据,并提供了多种数据备份、数据恢复和故障转移的技术,保证了数据的可靠性和稳定性。以下是 HDFS 的主要特点:

分布式存储:HDFS 将文件划分成多个块,每个块都会存储到不同的数据节点上,实现了数据的分布式存储和访问。
数据冗余:HDFS支持数据的冗余备份,可以将数据块备份到多个数据节点上,实现了数据的高可靠性和容错性。
数据读写:HDFS支持数据的随机读写和流式读写,能够满足不同场景下的数据读写需求。
故障恢复:HDFS可以自动检测和处理节点故障,能够保证数据的可靠性和稳定性。

MapReduce 分布式计算框架

MapReduce 是 Hadoop 的分布式计算框架,它能够将大规模数据集分成小的数据块进行并行处理,从而实现高性能和高效率的数据处理。MapReduce 由 Map 和 Reduce 两个阶段组成,Map 阶段将数据切分并映射到多个计算节点上,Reduce 阶段将结果合并并输出到文件系统中。以下是 MapReduce 的主要特点:

分布式计算:MapReduce 支持分布式计算,能够将大规模数据集分成小的数据块进行并行处理,提高了数据处理的效率和性能。
数据切分:MapReduce 能够将数据切分成多个小块进行处理,从而实现了数据的分布式存储和访问。
容错性:MapReduce 支持容错处理,能够自动检测和处理节点故障,从而保证了计算的可靠性和稳定性。

YARN(Yet Another Resource Negotiator)

YARN 是 Hadoop 的资源管理器,它负责管理和分配集群中的计算资源,从而实现集群的管理和任务调度。YARN 的主要作用是将计算框架(如 MapReduce)和资源管理(如 HDFS)分别,实现了计算和资源管理的分离。以下是 YARN 的主要特点:

集群管理:YARN 能够管理集群中的资源,分配计算资源给不同的应用程序。
资源分配:YARN能够动态地分配和管理计算资源,保证不同应用程序之间的资源隔离和公平分配。
任务调度:YARN能够调度和监控不同的计算任务,从而实现了任务的并发和并行执行。 可扩展性:YARN 能够支持大规模集群,具有良好的可扩展性和高效性。

Hadoop Common

Hadoop Common 是 Hadoop 的基础组件,它包含了 Hadoop 所有模块都需要使用的公共库和工具,如输入输出、序列化、压缩、安全等。Hadoop Common 负责为整个 Hadoop 生态系统提供支持,并提供了一些工具和库,方便用户开发和管理 Hadoop 应用程序。

ZooKeeper

ZooKeeper 是 Hadoop 的分布式协调服务,它能够提供高可靠性的数据管理和分布式协调服务。ZooKeeper 的主要作用是为分布式应用程序提供一致性服务和协调管理,包括配置管理、命名服务、分布式锁和分布式协调等。以下是 ZooKeeper 的主要特点:

一致性:ZooKeeper 能够保证数据的一致性和可靠性,即使在节点故障的情况下也能够保证数据的正确性。 可靠性:ZooKeeper
能够提供高可靠性的服务,保证了分布式应用程序的稳定性和可用性。 分布式锁:ZooKeeper
支持分布式锁的实现,能够帮助应用程序实现分布式协调和管理。
命名服务:ZooKeeper 能够提供命名服务,为应用程序提供统一的命名空间管理。

3. Hadoop 数据处理技术

Hadoop 的数据处理流程

Hadoop 的数据处理流程通常包括以下几个步骤:

  1. 数据采集:通过 Flume 或其他采集工具,将数据从不同的来源收集到 Hadoop 集群中。
  2. 数据存储:将数据存储到 Hadoop 集群中的 HDFS(Hadoop 分布式文件系统)中。
  3. 数据处理:通过 Hadoop 的数据处理工具和技术,对存储在 HDFS 中的数据进行分析和处理。
  4. 数据查询:使用 Hive 或其他数据查询工具,对存储在 HDFS 中的数据进行查询和分析。
  5. 数据可视化:使用数据可视化工具(如 Tableau、PowerBI 等),将查询结果以可视化的方式呈现出来,以便用户更好地理解和分析数据。

Hadoop 的数据处理工具和技术

Hadoop 提供了许多数据处理工具和技术,以下是其中的几个主要工具和技术:

Hive

Hive 是一个基于 Hadoop 的数据仓库和查询工具,它提供了类 SQL 的查询语言(HiveQL),可用于对存储在 HDFS 中的数据进行查询和分析。Hive 的执行引擎将 HiveQL 查询转换为 MapReduce 作业,然后在 Hadoop 集群中执行。除了 HiveQL,Hive 还提供了其他功能,如数据分区、数据压缩和数据聚合等。

Pig

Pig 是一个基于 Hadoop 的数据分析和处理工具,它提供了一种名为 Pig Latin 的脚本语言,可用于对存储在 HDFS 中的数据进行转换和处理。Pig Latin 脚本将被编译成 MapReduce 作业,并在 Hadoop 集群中执行。Pig 还提供了许多内置函数和运算符,以支持复杂的数据处理操作。

HBase

HBase 是一个基于 Hadoop 的分布式 NoSQL 数据库,它提供了实时读写访问 Hadoop 集群中的数据的能力。HBase 可以存储非结构化和半结构化数据,支持海量数据的高并发读写访问。HBase 的数据模型类似于关系型数据库,但其内部实现基于 Hadoop 的 HDFS。

Sqoop

Sqoop 是一个基于 Hadoop 的数据导入和导出工具,它可以将关系型数据库中的数据导入到 Hadoop 集群中的 HDFS 或 HBase 中,也可以将 Hadoop 集群中的数据导出到关系型数据库中。Sqoop 支持多种关系型数据库,如 MySQL、Oracle、PostgreSQL 等。

Flume

Flume 是一个基于 Hadoop 的日志收集和分
析工具,能够帮助将分布在多个节点上的数据汇集到一个中心节点上进行分析和处理。

Flume 的主要组成部分包括:

  1. Source:数据源,用于从各种来源(例如文件、目录、Socket、Syslog、Avro、Netcat 等)收集数据,并将数据转换为Flume 事件。
  2. Channel:消息通道,用于存储 Flume 事件,通道可以在 Source 和 Sink之间进行缓存、削峰和异步传输。
  3. Sink:数据汇,用于将 Flume 事件传输到指定的目标(例如HDFS、HBase、Kafka、Elasticsearch 等)。

Flume 的工作流程如下:

  1. Source 从各种来源收集数据,并将数据转换为 Flume 事件。
  2. Flume 事件通过 Channel 进行传输和缓存。
  3. Sink 从 Channel 中获取 Flume 事件,并将事件传输到指定的目标。

Flume 支持灵活的配置方式,可以通过配置文件或者命令行参数来指定 Source、Channel 和 Sink 的类型、属性、拓扑结构等。

Flume 的应用场景包括:

  1. 日志收集:Flume 可以帮助将分布在多个节点上的日志收集到一个中心节点上进行分析和处理。
  2. 数据汇集:Flume 可以帮助将分散在多个来源的数据汇集到一个地方进行存储和处理。
  3. 数据传输:Flume 可以帮助将数据从一个系统传输到另一个系统,例如将数据从 Web 服务器传输到 Hadoop 集群中进行处理。

总的来说,Flume 是一个非常实用的工具,可以帮助处理分布在多个节点上的数据,简化数据处理流程,提高数据分析和处理的效率。

4. Hadoop 集群搭建和管理

Hadoop 集群是由多台机器组成的分布式系统,每台机器都可以执行 Hadoop 的各种任务。在搭建和管理 Hadoop 集群之前,需要进行架构和规划,确定需要使用多少台机器,每台机器的配置和角色等。接下来,需要进行 Hadoop 的安装、配置、启动和停止等工作,并对集群进行监控和管理,处理故障并进行优化和调优。

Hadoop 集群的架构和规划

在进行 Hadoop 集群的架构和规划之前,需要确定需要处理的数据量、数据类型、数据来源等,以及对数据进行的处理方式和目的。根据这些需求,可以确定需要使用多少台机器、每台机器的配置和角色等。一般来说,Hadoop 集群至少需要一台主节点和多台从节点,其中主节点通常运行 NameNode 和 JobTracker,从节点运行 DataNode 和 TaskTracker。可以使用 Hadoop 提供的工具,如 Hadoop Capacity Planner 或 Cloudera Manager 等来进行集群规划和设计。

Hadoop 集群的搭建和配置

Hadoop 集群的搭建和配置需要经过以下几个步骤:

  1. 确定集群规模和架构
    在开始搭建 Hadoop集群之前,需要先确定集群规模和架构。集群规模包括节点数、存储容量和计算能力等。架构方面,可以选择单节点模式或多节点模式,以及使用什么类型的节点(如NameNode、DataNode、ResourceManager、NodeManager 等)。
  2. 安装和配置操作系统
    在安装 Hadoop 前,需要先安装和配置操作系统。建议选择稳定、可靠、支持 Hadoop 的操作系统,如 CentOS、Red Hat Enterprise Linux、Ubuntu 等。另外,需要安装必要的软件和库,如 JDK、SSH、NTP 等。
  3. 安装和配置 Hadoop
    安装和配置 Hadoop 通常包括以下几个步骤:
    (1)下载 Hadoop:从 Hadoop 官网下载最新版本的 Hadoop。
    (2)解压 Hadoop:将下载的 Hadoop 压缩包解压到指定目录。
    (3)配置 Hadoop:编辑 Hadoop 的配置文件,包括 core-site.xml、hdfs-site.xml、mapred-site.xml 和 yarn-site.xml 等,以及配置环境变量和 SSH 免密码登录等。
    (4)格式化 NameNode:在启动 Hadoop 前,需要先格式化 NameNode,以清空之前存储的数据。
  4. 启动 Hadoop
    启动 Hadoop 需要按照特定的顺序启动不同的节点,通常按照以下顺序启动:
    (1)启动 ZooKeeper:如果使用了 ZooKeeper,则需要先启动 ZooKeeper。
    (2)启动 NameNode:启动 NameNode。
    (3)启动 DataNode:启动 DataNode。
    (4)启动 ResourceManager:启动 ResourceManager。
    (5)启动 NodeManager:启动 NodeManager。
    (6)启动 JobHistoryServer:启动 JobHistoryServer。
  5. 测试集群
    在启动 Hadoop 后,需要进行测试,确保集群能够正常工作。可以使用 Hadoop 提供的一些测试工具,如 HDFS 文件读写测试、MapReduce 程序测试等。

Hadoop 在 CentOS 7 上的安装和配置

安装 Java

Hadoop 是基于 Java 开发的,所以需要先安装 Java 运行环境。

# 安装 OpenJDK
sudo yum update
sudo yum install java-1.8.0-openjdk

下载 Hadoop

从 Hadoop 官网下载最新版本的 Hadoop 压缩包,解压到 /usr/local/hadoop 目录下。

sudo mkdir /usr/local/hadoop
cd /usr/local/hadoop
sudo wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz
sudo tar -xzvf hadoop-3.3.1.tar.gz
sudo mv hadoop-3.3.1/* .
sudo rm -rf hadoop-3.3.1

配置 Hadoop

配置环境变量

打开 /etc/profile 文件,添加以下内容。

export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

执行以下命令使环境变量生效。

source /etc/profile

配置 Hadoop

进入 Hadoop 的 conf 目录,编辑以下配置文件。

core-site.xml
<configuration>
  <property>
    <name>fs.defaultFSname>
    <value>hdfs://localhost:9000value>
  property>
configuration>

hdfs-site.xml

Copy code
<configuration>
  <property>
    <name>dfs.replicationname>
    <value>1value>
  property>
configuration>
mapred-site.xml
Copy code
<configuration>
  <property>
    <name>mapreduce.framework.namename>
    <value>yarnvalue>
  property>
configuration>

yarn-site.xml

Copy code
<configuration>
  <property>
    <name>yarn.nodemanager.aux-servicesname>
    <value>mapreduce_shufflevalue>
  property>
configuration>

格式化 NameNode

在命令行中输入以下命令格式化 NameNode。

hdfs namenode -format

启动 Hadoop

在命令行中输入以下命令启动 Hadoop。

start-dfs.sh
start-yarn.sh

验证 Hadoop

在浏览器中访问 http://localhost:9870,如果可以打开 Hadoop 的 web 界面,则说明 Hadoop 已经安装和配置成功。

Hadoop 集群在 CentOS 7 上的安装和配置

准备工作

配置主机名

在所有节点上,打开 /etc/hosts 文件,添加主机名和 IP 地址的对应关系。

Copy code
sudo vi /etc/hosts

添加以下内容。

192.168.1.1   hadoop-master
192.168.1.2   hadoop-slave-1
192.168.1.3   hadoop-slave-2

配置 SSH

在所有节点上,安装和配置 SSH 服务。

sudo yum install openssh-server
sudo systemctl start sshd.service
sudo systemctl enable sshd.service
在主节点上,生成 SSH 密钥。
ssh-keygen -t rsa

将公钥复制到所有从节点。

ssh-copy-id username@hadoop-slave-1
ssh-copy-id username@hadoop-slave-2

安装 Java

Hadoop 是基于 Java 开发的,所以需要先安装 Java 运行环境。

# 安装 OpenJDK
sudo yum update
sudo yum install java-1.8.0-openjdk

下载 Hadoop

从 Hadoop 官网下载最新版本的 Hadoop 压缩包,解压到 /usr/local/hadoop 目录下。

sudo mkdir /usr/local/hadoop
cd /usr/local/hadoop
sudo wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz
sudo tar -xzvf hadoop-3.3.1.tar.gz
sudo mv hadoop-3.3.1/* .
sudo rm -rf hadoop-3.3.1

配置 Hadoop

配置环境变量

在所有节点上,打开 /etc/profile 文件,添加以下内容。

export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

执行以下命令使环境变量生效。

source /etc/profile

配置 Hadoop

在主节点上,进入 Hadoop 的 conf 目录,编辑以下配置文件。

core-site.xml

Copy code
<configuration>
  <property>
    <name>fs.defaultFSname>
    <value>hdfs://hadoop-master:9000value>
  property>
configuration>

hdfs-site.xml

  <property>
    <name>dfs.permissions.enabledname>
    <value>falsevalue>
  property>
configuration>

mapred-site.xml

<configuration>
  <property>
    <name>mapreduce.framework.namename>
    <value>yarnvalue>
  property>
configuration>

yarn-site.xml

<configuration>
  <property>
    <name>yarn.nodemanager.aux-servicesname>
    <value>mapreduce_shufflevalue>
  property>
  <property>
    <name>yarn.resourcemanager.hostnamename>
    <value>hadoop-mastervalue>
  property>
  <property>
    <name>yarn.nodemanager.resource.memory-mbname>
    <value>4096value>
  property>
  <property>
    <name>yarn.nodemanager.resource.cpu-vcoresname>
    <value>2value>
  property>
configuration>

配置节点信息

在主节点上,打开 /usr/local/hadoop/etc/hadoop/slaves 文件,添加从节点的主机名。

hadoop-slave-1
hadoop-slave-2

配置 Hadoop 环境

在主节点上,打开 /usr/local/hadoop/etc/hadoop/hadoop-env.sh 文件,设置 JAVA_HOME 环境变量。

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el7_9.x86_64

启动 Hadoop

在主节点上,格式化 NameNode。

hdfs namenode -format

启动 Hadoop。

start-dfs.sh
start-yarn.sh

在浏览器中输入以下地址,查看 Hadoop 状态。

http://hadoop-master:9870

测试 Hadoop

在主节点上,创建一个目录。

hdfs dfs -mkdir /test

在主节点上,将一个本地文件上传到 HDFS。

hdfs dfs -put /usr/local/hadoop/etc/hadoop/hadoop-env.sh /test

在主节点上,列出 HDFS 中的文件。

hdfs dfs -ls /test

在主节点上,从 HDFS 中下载一个文件。

hdfs dfs -get /test/hadoop-env.sh /tmp

结束 Hadoop

在主节点上,停止 Hadoop。

Copy code
stop-dfs.sh
stop-yarn.sh

Hadoop 集群的启动和停止

启动集群

# 启动 ZooKeeper
zkServer.sh start

# 启动 NameNode
start-dfs.sh

# 启动 DataNode
start-yarn.sh

# 启动 ResourceManager
yarn --daemon start resourcemanager

# 启动 NodeManager
yarn --daemon start nodemanager

# 启动 JobHistoryServer
mapred --daemon start historyserver

停止集群

停止集群也需要按照特定的顺序停止不同的节点,通常按照以下顺序停止:
(1)停止 JobHistoryServer:先停止 JobHistoryServer。
(2)停止 NodeManager:停止 NodeManager。
(3)停止 ResourceManager:停止 ResourceManager。
(4)停止 DataNode:停止 DataNode。
(5)停止 NameNode:停止 NameNode。
(6)停止 ZooKeeper:如果使用了 ZooKeeper,则最后停止 ZooKeeper。

可以使用以下命令停止集群:

# 停止 JobHistoryServer
mapred --daemon stop historyserver

# 停止 NodeManager
yarn --daemon stop nodemanager

# 停止 ResourceManager
yarn --daemon stop resourcemanager

# 停止 DataNode
stop-yarn.sh

# 停止 NameNode
stop-dfs.sh

# 停止 ZooKeeper
zkServer.sh stop

在启动和停止集群之前,需要确保配置正确且没有错误,并且集群中所有节点都处于正常状态。这些操作在 Hadoop 集群管理中非常重要,可以保证集群的稳定性和可靠性。

Hadoop 集群的监控和管理

Hadoop Web UI

Hadoop Web UI 是一个内置的 Web 应用程序,可以通过浏览器访问它。通过 Hadoop Web UI,可以查看集群的整体健康状况,例如 NameNode 和 DataNode 的状态、ResourceManager 和 NodeManager 的状态、作业的状态和进度等等。可以使用以下 URL 访问 Hadoop Web UI:

  • HDFS Web UI:http://:50070
  • YARN Web UI:http://:8088

Hadoop 命令行工具

除了 Hadoop Web UI 外,Hadoop 还提供了一些命令行工具来监控和管理 Hadoop 集群。以下是一些常用的命令行工具:

  • hdfs dfs:用于操作 HDFS 文件系统,例如上传和下载文件、创建和删除目录等等。
  • yarn application -list:列出当前正在运行的所有 YARN 应用程序。
  • yarn application -kill :停止指定的 YARN 应用程序。
  • yarn node -list:列出当前连接到 ResourceManager 的所有 NodeManager。

日志监控

在 Hadoop 集群中,每个组件都会生成日志文件,用于记录运行时的事件和错误。可以使用以下命令来查看 Hadoop 日志文件:

  • hadoop fs -cat :用于查看 Hadoop 日志文件,例如 NameNode 和 DataNode 的日志文件、ResourceManager 和 NodeManager 的日志文件等等。
  • tail -f :用于实时监视日志文件的更新,可以及时发现错误和异常事件。

第三方监控工具

除了 Hadoop 内置的监控工具外,还有一些第三方监控工具可以使用,例如 Nagios、Ganglia、Zabbix 等等。这些工具可以提供更详细的监控数据、自定义告警和警报等功能,有助于实现更高级别的监控和管理。

你可能感兴趣的:(hadoop,大数据,mapreduce)