高可用Hadoop平台-Ganglia安装部署

本文介绍如何在Hadoop集群中部署和配置Ganglia监控工具,包括安装过程、配置详解及启动预览等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.概述

  最近,有朋友私密我,Hadoop有什么好的监控工具,其实,Hadoop的监控工具还是蛮多的。今天给大家分享一个老牌监控工具Ganglia,这个在企业用的也算是比较多的,Hadoop对它的兼容也很好,不过就是监控界面就不是很美观。下次给大家介绍另一款工具——Hue,这个界面官方称为Hadoop UI,界面美观,功能也比较丰富。今天,在这里主要给大家介绍Ganglia这款监控工具,介绍的内容主要包含如下:

  • Ganglia背景
  • Ganglia安装部署、配置
  • Hadoop集群配置Ganglia
  • 启动、预览Ganglia

  下面开始今天的内容分享。

2.Ganglia背景

  Ganglia是UC Berkeley发起的一个开源集群监视项目,设计用于测量数以千计的节点。Ganglia的核心包含gmond、gmetad以及一个Web前端。主要是用来监控系统性能,如:cpu 、mem、硬盘利用率, I/O负载、网络流量情况等,通过曲线很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能起到重要作用。

  Ganglia其核心由3部分组成:

  • gmond:运行在每个节点上监视并收集节点信息,可以同时收发统计信息,它可以运行在广播模式和单播模式中。
  • gmetad:从gmond以poll的方式收集和存储原数据。
  • ganglia-web:部署在gmetad机器上,访问gmetad存储的元数据并由Apache Web提高用户访问接口。

  下面,我们来看看Ganglia的架构图,如下图所示:

  从架构图中,我们可以知道Ganglia支持故障转移,统计可以配置多个收集节点。所以我们在配置的时候,可以按需选择去配置Ganglia,既可以配置广播,也可以配置单播。根据实际需求和手上资源来决定。

3.Ganglia安装部署、配置

3.1安装

  本次安装的Ganglia工具是基于Apache的Hadoop-2.6.0。另外系统环境是CentOS 6.6。首先,我们下载Ganglia软件包,步骤如下所示:

  • 第一步:安装yum epel源

[hadoop@nna ~]$ rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

  • 第二步:安装依赖包

[hadoop@nna ~]$ yum -y install httpd-devel automake autoconf libtool ncurses-devel libxslt groff pcre-devel pkgconfig

  • 第三步:查看Ganglia安装包

[hadoop@nna ~]$ yum search ganglia

 然后,我为了简便,把Ganglia安装全部安装,安装命令如下所示:

  • 第四步:安装Ganglia

[hadoop@nna ~]$ yum -y install ganglia*

 最后等待安装完成,由于这里资源有限,我将Ganglia Web也安装在NNA节点上,另外,其他节点也需要安装Ganglia的Gmond服务,该服务用来发送数据到Gmetad,安装方式参考上面的步骤。

3.2部署

  在安装Ganglia时,我这里将Ganglia Web部署在NNA节点,其他节点部署Gmond服务,下表为各个节点的部署角色:

节点Host角色
NNA10.211.55.26Gmetad、Gmond、Ganglia-Web
NNS10.211.55.27Gmond
DN110.211.55.16Gmond
DN210.211.55.17Gmond
DN310.211.55.18Gmond

  Ganglia部署在Hadoop集群的分布图,如下所示:

3.3配置

  在安装好Ganglia后,我们需要对Ganglia工具进行配置,在由Ganglia-Web服务的节点上,我们需要配置Web服务。

  • ganglia.conf


[hadoop@nna ~]$ vi /etc/httpd/conf.d/ganglia.conf 

修改内容如下所示:

#
# Ganglia monitoring system php web frontend
#

Alias /ganglia /usr/share/ganglia

<Location /ganglia>
  Order deny,allow
  # Deny from all
  Allow from all
  # Allow from 127.0.0.1
  # Allow from ::1
  # Allow from .example.com
</Location>

 注:红色为添加的内容,绿色为注销的内容。

  • gmetad.conf 

[hadoop@nna ~]$ vi /etc/ganglia/gmetad.conf 

修改内容如下所示:

data_source "hadoop" nna nns dn1 dn2 dn3

  这里“hadoop”表示集群名,nna nns dn1 dn2 dn3表示节点域名或IP。

  • gmond.conf

[hadoop@nna ~]$ vi /etc/ganglia/gmond.conf 

修改内容如下所示:

/*
 * The cluster attributes specified will be used as part of the <CLUSTER>
 * tag that will wrap all hosts collected by this instance.
 */
cluster {
  name = "hadoop"
  owner = "unspecified"
  latlong = "unspecified"
  url = "unspecified"
}

/* Feel free to specify as many udp_send_channels as you like.  Gmond
   used to only support having a single channel */
udp_send_channel {
  #bind_hostname = yes # Highly recommended, soon to be default.
                       # This option tells gmond to use a source address
                       # that resolves to the machine's hostname.  Without
                       # this, the metrics may appear to come from any
                       # interface and the DNS names associated with
                       # those IPs will be used to create the RRDs.
  # mcast_join = 239.2.11.71
  host = 10.211.55.26
  port = 8649
  ttl = 1
}

/* You can specify as many udp_recv_channels as you like as well. */
udp_recv_channel {
  # mcast_join = 239.2.11.71
  port = 8649
  bind = 10.211.55.26
  retry_bind = true
  # Size of the UDP buffer. If you are handling lots of metrics you really
  # should bump it up to e.g. 10MB or even higher.
  # buffer = 10485760
}

这里我采用的是单播,cluster下的name要与gmetad中的data_source配置的名称一致,发送节点地址配置为NNA的IP,接受节点配置在NNA上,所以绑定的IP是NNA节点的IP。以上配置是在有Gmetad服务和Ganglia-Web服务的节点上需要配置,在其他节点只需要配置gmond.conf文件即可,内容配置如下所示:

/* Feel free to specify as many udp_send_channels as you like.  Gmond
   used to only support having a single channel */
udp_send_channel {
  #bind_hostname = yes # Highly recommended, soon to be default.
                       # This option tells gmond to use a source address
                       # that resolves to the machine's hostname.  Without
                       # this, the metrics may appear to come from any
                       # interface and the DNS names associated with
                       # those IPs will be used to create the RRDs.
  # mcast_join = 239.2.11.71
  host = 10.211.55.26
  port = 8649
  ttl = 1
}

/* You can specify as many udp_recv_channels as you like as well. */
udp_recv_channel {
  # mcast_join = 239.2.11.71
  port = 8649
  # bind = 10.211.55.26
  retry_bind = true
  # Size of the UDP buffer. If you are handling lots of metrics you really
  # should bump it up to e.g. 10MB or even higher.
  # buffer = 10485760
}

4.Hadoop集群配置Ganglia

  在Hadoop中,对Ganglia的兼容是很好的,在Hadoop的目录下/hadoop-2.6.0/etc/hadoop,我们可以找到hadoop-metrics2.properties文件,这里我们修改文件内容如下所示,命令如下所示:


[hadoop@nna hadoop]$ vi hadoop-metrics2.properties

修改内容如下所示:

namenode.sink.ganglia.servers=nna:8649

#datanode.sink.ganglia.servers=yourgangliahost_1:8649,yourgangliahost_2:8649

resourcemanager.sink.ganglia.servers=nna:8649

#nodemanager.sink.ganglia.servers=yourgangliahost_1:8649,yourgangliahost_2:8649

mrappmaster.sink.ganglia.servers=nna:8649

jobhistoryserver.sink.ganglia.servers=nna:8649

这里修改的是NameNode节点的内容,若是修改DataNode节点信息,内容如下所示:

#namenode.sink.ganglia.servers=nna:8649

datanode.sink.ganglia.servers=dn1:8649

#resourcemanager.sink.ganglia.servers=nna:8649

nodemanager.sink.ganglia.servers=dn1:8649

#mrappmaster.sink.ganglia.servers=nna:8649

#jobhistoryserver.sink.ganglia.servers=nna:8649

 其他DN节点可以以此作为参考来进行修改。

  另外,在配置完成后,若之前Hadoop集群是运行的,这里需要重启集群服务。

5.启动、预览Ganglia

  Ganglia的启动命令有start、restart以及stop,这里我们分别在各个节点启动相应的服务,各个节点需要启动的服务如下:

  • NNA节点:

[hadoop@nna ~]$ service gmetad start

[hadoop@nna ~]$ service gmond start

[hadoop@nna ~]$ service httpd start

  • NNS节点:

[hadoop@nns ~]$ service gmond start

  • DN1节点:

[hadoop@dn1 ~]$ service gmond start

  • DN2节点:

[hadoop@dn2 ~]$ service gmond start

  • DN3节点:

[hadoop@dn3 ~]$ service gmond start

 然后,到这里Ganglia的相关服务就启动完毕了,下面给大家附上Ganglia监控的运行截图,如下所示:

6.总结

  在安装Hadoop监控工具Ganglia时,需要在安装的时候注意一些问题,比如:系统环境的依赖,由于Ganglia需要依赖一些安装包,在安装之前把依赖环境准备好,另外在配置Ganglia的时候需要格外注意,理解Ganglia的架构很重要,这有助于我们在Hadoop集群上去部署相关的Ganglia服务,同时,在配置Hadoop安装包的配置文件下(/etc/hadoop)目录下,配置Ganglia配置文件。将hadoop-metrics2.properties配置文件集成到Hadoop集群中去。

7.结束语

  这篇博客就和大家分享到这里,如果大家在研究学习的过程当中有什么问题,可以加群进行讨论或发送邮件给我,我会尽我所能为您解答,与君共勉!


Hadoop的双高可用(High Availability, HA)部署是为了提高集群的稳定性和容错能力,通常涉及到Hadoop的两个关键组件:HDFS和YARN。以下是双高可用Hadoop安装部署步骤: 1. **环境准备**: - 安装基础软件:Linux操作系统,Java JDK,SSH等。 - 配置硬件资源:至少两个节点,每个节点至少需要一个主存储和一个CPU。 2. **配置文件**: - 修改`core-site.xml`和`hdfs-site.xml`文件,配置HDFS的名称节点为HA模式。 - 在`yarn-site.xml`中设置YARN的资源管理器为HA模式。 3. **安装Hadoop**: - 分别在每个节点上安装Hadoop,确保版本一致。 - 安装HDFS的DataNode和NameNode,以及YARN的ResourceManager、NodeManager。 4. **设置集群配置**: - 创建一个包含两个NameNode的ha configuration文件,配置文件中会指定一个为active,另一个为standby。 - 使用`hadoop-daemon.sh`命令行工具,分别启动standby NameNode和Active NameNode。 5. **配置心跳和选举**: - 使用ZooKeeper作为NameNode的元数据存储和协调服务,配置ZooKeeper的quorum。 - 名称节点之间的健康检查和故障转移由ZooKeeper自动管理。 6. **数据副本和客户端配置**: - HDFS会将数据副本存放在不同的DataNode,配置副本因子以确保数据安全。 - 配置客户端使用`hadoop-hdfs-site.xml`中的`ha.namenodes`属性,指向active NameNode。 7. **测试和监控**: - 启动Hadoop集群并执行一些基本操作,如上传文件、读取文件等,确保HA功能正常。 - 使用Hadoop自带的监控工具或第三方工具(如Hadoop Metrics2、Ganglia等)监控集群状态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值