从零开始了解大数据(二):Hadoop篇

目录

前言

一、Hadoop集群整体概述

1.HDFS集群(分布式存储):

(1) HDFS集群角色构成:

(2) HDFS集群功能:

2.YARN集群(资源管理、调度):

(1) YARN集群角色构成:

(2) YARN集群功能:

二、Hadoop集群启停命令、web UI

1.手动逐个进程启停:

2.shell脚本一键启停:

(1) HDFS集群:

(2) YARN集群:

(3) Hadoop集群:

3.进程状态、日志查看:

4.Web UI管理界面:

总结


前言

Hadoop是一个开源的分布式计算框架,主要用于处理大规模数据集。本文将介绍Hadoop集群的主要组成部分,包括HDFS分布式文件系统和YARN资源管理器,并探讨它们在大数据处理中的作用和功能。


一、Hadoop集群整体概述

Hadoop是一个开源的分布式计算框架,它允许用户在不了解分布式底层细节的情况下,开发和运行应用程序以处理大规模数据。Hadoop的核心设计是MapReduce编程模型和分布式文件系统HDFS。为了更有效地管理资源和调度作业,Hadoop也包括了YARN(Yet Another Resource Negotiator)集群。

Hadoop集群主要由两个子集群构成:HDFS集群和YARN集群。这两个集群在逻辑上是分离的,但在物理上,它们通常部署在同一组硬件上。

1.HDFS集群(分布式存储):

HDFS,全称Hadoop Distributed File System,是Hadoop的分布式文件系统。HDFS集群的主要功能是存储和管理大规模的数据集,并为Hadoop应用程序提供高效、可靠的数据访问。

(1) HDFS集群角色构成:

  • 主角色:NameNode

    • NameNode是HDFS集群的主服务器,负责管理文件系统的元数据。这包括文件系统的目录树、文件和块的映射关系等。NameNode也负责处理客户端的请求,如打开文件、关闭文件和重命名文件等。
  • 从角色:DataNode

    • DataNode是HDFS集群中的工作节点,负责存储实际的数据块并执行数据的读写操作。DataNode会定期向NameNode发送心跳和块报告,以保持与NameNode的连接并更新其状态。
  • 主角色辅助角色:SecondaryNameNode

    • SecondaryNameNode并不是NameNode的热备或冷备,而是用来帮助NameNode合并编辑日志和文件系统镜像,以减少NameNode重启时的恢复时间。在合并过程中,SecondaryNameNode会作为主NameNode的备份,并提供一份合并后的新的文件系统镜像。

(2) HDFS集群功能:

  • 分布式存储:HDFS将文件分割成多个数据块,并分布式地存储在不同的DataNode上。这种分布式存储方式使得HDFS可以扩展到非常大的规模,同时保持较高的数据可靠性和可用性。
  • 容错性:HDFS采用了多副本机制来提高数据的容错性。每个数据块都会在不同的DataNode上存储多个副本,以防止数据丢失。当某个DataNode发生故障时,可以从其他副本中恢复数据。
  • 高可用性:HDFS支持NameNode的高可用性配置。通过配置多个NameNode和共享的编辑日志,可以在一个NameNode发生故障时,快速切换到另一个NameNode,从而保持文件系统的正常运行。
  • 可扩展性:HDFS集群可以容易地扩展到更多的节点。只需向集群中添加新的DataNode,并通过调整配置来增加存储容量和性能。

2.YARN集群(资源管理、调度):

YARN,全称Yet Another Resource Negotiator,是Hadoop的资源管理系统和作业调度器。YARN集群的主要功能是管理集群资源,调度和运行各种数据处理任务。YARN的目标是将资源管理和作业调度/监控的功能从MapReduce框架中分离出来,使得Hadoop可以支持更多的数据处理模式,如批处理、交互式查询和流处理等。

(1) YARN集群角色构成:

  • 主角色:ResourceManager

    • ResourceManager是YARN集群的主服务器,负责管理整个集群的资源,并调度作业在集群中的执行。ResourceManager会与NodeManager定期交换心跳信息以保持连接,并监控它们的健康状况。
  • 从角色:NodeManager

    • NodeManager是YARN集群中的工作节点,负责管理单个节点上的资源,如CPU、内存、磁盘和网络等。NodeManager会启动和监控由ResourceManager分配的任务,并向ResourceManager报告任务的状态和进度。

(2) YARN集群功能:

  • 资源管理:YARN通过ResourceManager来管理整个集群的资源,包括CPU、内存、磁盘和网络等。ResourceManager会与每个NodeManager定期交换心跳信息,以保持连接并监控它们的健康状况。
  • 作业调度:YARN的ResourceManager负责作业的调度。它会根据作业的资源需求和集群的资源状况,决定将作业的任务分配到哪些NodeManager上执行。
  • 弹性资源管理:YARN支持弹性资源管理,可以根据作业的需求动态地调整资源的分配。例如,当作业的某个阶段需要大量资源时,YARN可以暂时将其他作业的资源分配给该作业;当该阶段完成后,YARN再将资源重新分配给其他作业。
  • 支持多种数据处理模式:通过YARN,Hadoop可以支持多种数据处理模式。除了传统的MapReduce批处理模式外,还可以支持如Spark的交互式查询和Flink的流处理等模式。
  • 安全性:YARN提供了Kerberos认证和访问控制列表(ACL)等安全特性,以保护集群和用户的数据安全。

二、Hadoop集群启停命令、web UI

1.手动逐个进程启停

在某些场景下,可能需要精确地控制每一个Hadoop组件的启动和停止。这种情况下,可以在每台机器上手动启动或关闭一个角色进程,这样可以精准控制每个进程启停,避免群起群停。

  • HDFS集群

  • YARN集群

2.shell脚本一键启停:

为了简化操作,Hadoop也提供了shell脚本,允许在一台机器上通过一条命令启动或停止整个集群的服务。使用这些脚本的前提是已经配置好了机器之间的SSH免密登录,并且在workers文件中正确配置了工作节点。

(1) HDFS集群

在HDFS集群中,可以使用start-dfs.sh脚本启动整个集群,使用stop-dfs.sh脚本停止整个集群。

  • 启动HDFS集群:
start-dfs.sh
  • 停止HDFS集群:
stop-dfs.sh

(2) YARN集群:

在YARN集群中,可以使用start-yarn.sh脚本启动整个集群,使用stop-yarn.sh脚本停止整个集群。

  • 启动YARN集群:
start-yarn.sh
  • 停止YARN集群
stop-yarn.sh

(3) Hadoop集群:

在Hadoop集群中,命令start-all.sh可以同时启动HDFS和YARN的所有服务,相应地,stop-all.sh可以同时停止所有服务。

  • 启动Hadoop集群:
start-all.sh
  • 停止Hadoop集群:
stop-all.sh

3.进程状态、日志查看:

  • 在Linux环境中,可以使用jps命令查看Java进程的状态,从而确认Hadoop的各个组件是否成功启动。

  • Hadoop的启动日志通常存放在{HADOOP_HOME}/logs/路径下,可以通过查看这些日志文件来了解启动过程中的详细信息。

4.Web UI管理界面:

Hadoop集群还提供了Web UI界面,方便管理员进行集群状态的查看和管理。

HDFS集群:HDFS集群的Web UI地址通常为http://namenode_host:9870,其中namenode_host是NameNode所在机器的主机名或IP地址。如果使用主机名访问,可能需要在客户端机器的hosts文件中进行相应的配置。

YARN集群:YARN集群的Web UI地址通常为http://resourcemanager_host:8088,其中resourcemanager_host是ResourceManager所在机器的主机名或IP地址。同样地,如果使用主机名访问,也可能需要进行hosts文件的配置。


总结

通过本文的介绍,可以对Hadoop集群的整体架构有一个基础的认识,希望对大家有所帮助。

你可能感兴趣的:(大数据,从零开始了解大数据,大数据,hadoop,分布式)