天天看点

高可用Hadoop平台-Flume NG实战图解篇1.概述2.Flume NG简述3.单点Flume NG搭建、运行 4.高可用Flume NG搭建5.Failover测试6.截图预览7.总结8.结束语

  今天补充一篇关于Flume的博客,前面在讲解高可用的Hadoop平台的时候遗漏了这篇,本篇博客为大家讲述以下内容:

Flume NG简述

单点Flume NG搭建、运行

高可用Flume NG搭建

Failover测试

截图预览

  下面开始今天的博客介绍。

  Flume NG是一个分布式,高可用,可靠的系统,它能将不同的海量数据收集,移动并存储到一个数据存储系统中。轻量,配置简单,适用于各种日志收集,并支持Failover和负载均衡。并且它拥有非常丰富的组件。Flume NG采用的是三层架构:Agent层,Collector层和Store层,每一层均可水平拓展。其中Agent包含Source,Channel和Sink,三者组建了一个Agent。三者的职责如下所示:

Source:用来消费(收集)数据源到Channel组件中

Channel:中转临时存储,保存所有Source组件信息

Sink:从Channel中读取,读取成功后会删除Channel中的信息

  下图是Flume NG的架构图,如下所示:

高可用Hadoop平台-Flume NG实战图解篇1.概述2.Flume NG简述3.单点Flume NG搭建、运行 4.高可用Flume NG搭建5.Failover测试6.截图预览7.总结8.结束语

  图中描述了,从外部系统(Web Server)中收集产生的日志,然后通过Flume的Agent的Source组件将数据发送到临时存储Channel组件,最后传递给Sink组件,Sink组件直接把数据存储到HDFS文件系统中。

  我们在熟悉了Flume NG的架构后,我们先搭建一个单点Flume收集信息到HDFS集群中,由于资源有限,本次直接在之前的高可用Hadoop集群上搭建Flume。

  场景如下:在NNA节点上搭建一个Flume NG,将本地日志收集到HDFS集群。

  在搭建Flume NG之前,我们需要准备必要的软件,具体下载地址如下所示:

安装

  首先,我们解压flume安装包,命令如下所示:

配置

  环境变量配置内容如下所示:

  flume-conf.properties

<a></a>

  flume-env.sh

  注:配置中的目录若不存在,需提前创建。

  启动命令如下所示:

  注:命令中的agent1表示配置文件中的Agent的Name,如配置文件中的agent1。flume-conf.properties表示配置文件所在配置,需填写准确的配置文件路径。

高可用Hadoop平台-Flume NG实战图解篇1.概述2.Flume NG简述3.单点Flume NG搭建、运行 4.高可用Flume NG搭建5.Failover测试6.截图预览7.总结8.结束语
高可用Hadoop平台-Flume NG实战图解篇1.概述2.Flume NG简述3.单点Flume NG搭建、运行 4.高可用Flume NG搭建5.Failover测试6.截图预览7.总结8.结束语
高可用Hadoop平台-Flume NG实战图解篇1.概述2.Flume NG简述3.单点Flume NG搭建、运行 4.高可用Flume NG搭建5.Failover测试6.截图预览7.总结8.结束语

  之后,成功上传后本地目的会被标记完成。如下图所示:

高可用Hadoop平台-Flume NG实战图解篇1.概述2.Flume NG简述3.单点Flume NG搭建、运行 4.高可用Flume NG搭建5.Failover测试6.截图预览7.总结8.结束语

  在完成单点的Flume NG搭建后,下面我们搭建一个高可用的Flume NG集群,架构图如下所示:

高可用Hadoop平台-Flume NG实战图解篇1.概述2.Flume NG简述3.单点Flume NG搭建、运行 4.高可用Flume NG搭建5.Failover测试6.截图预览7.总结8.结束语

  图中,我们可以看出,Flume的存储可以支持多种,这里只列举了HDFS和Kafka(如:存储最新的一周日志,并给Storm系统提供实时日志流)。

  Flume的Agent和Collector分布如下表所示:

名称 

HOST

角色

Agent1

10.211.55.14

Web Server

Agent2

10.211.55.15

Agent3

10.211.55.16 

Collector1

10.211.55.18

AgentMstr1

Collector2

10.211.55.19

AgentMstr2

  图中所示,Agent1,Agent2,Agent3数据分别流入到Collector1和Collector2,Flume NG本身提供了Failover机制,可以自动切换和恢复。在上图中,有3个产生日志服务器分布在不同的机房,要把所有的日志都收集到一个集群中存储。下面我们开发配置Flume NG集群

  在下面单点Flume中,基本配置都完成了,我们只需要新添加两个配置文件,它们是flume-client.properties和flume-server.properties,其配置内容如下所示:

flume-client.properties

  注:指定Collector的IP和Port。

flume-server.properties

  注:在另一台Collector节点上修改IP,如在NNS节点将绑定的对象有nna修改为nns。

  在Agent节点上启动命令如下所示:

  注:命令中的agent1表示配置文件中的Agent的Name,如配置文件中的agent1。flume-client.properties表示配置文件所在配置,需填写准确的配置文件路径。

  在Collector节点上启动命令如下所示:

  注:命令中的a1表示配置文件中的Agent的Name,如配置文件中的a1。flume-server.properties表示配置文件所在配置,需填写准确的配置文件路径。

  下面我们来测试下Flume NG集群的高可用(故障转移)。场景如下:我们在Agent1节点上传文件,由于我们配置Collector1的权重比Collector2大,所以Collector1优先采集并上传到存储系统。然后我们kill掉Collector1,此时有Collector2负责日志的采集上传工作,之后,我们手动恢复Collector1节点的Flume服务,再次在Agent1上次文件,发现Collector1恢复优先级别的采集工作。具体截图如下所示:

Collector1优先上传

高可用Hadoop平台-Flume NG实战图解篇1.概述2.Flume NG简述3.单点Flume NG搭建、运行 4.高可用Flume NG搭建5.Failover测试6.截图预览7.总结8.结束语

HDFS集群中上传的log内容预览

高可用Hadoop平台-Flume NG实战图解篇1.概述2.Flume NG简述3.单点Flume NG搭建、运行 4.高可用Flume NG搭建5.Failover测试6.截图预览7.总结8.结束语

Collector1宕机,Collector2获取优先上传权限

高可用Hadoop平台-Flume NG实战图解篇1.概述2.Flume NG简述3.单点Flume NG搭建、运行 4.高可用Flume NG搭建5.Failover测试6.截图预览7.总结8.结束语

重启Collector1服务,Collector1重新获得优先上传的权限

高可用Hadoop平台-Flume NG实战图解篇1.概述2.Flume NG简述3.单点Flume NG搭建、运行 4.高可用Flume NG搭建5.Failover测试6.截图预览7.总结8.结束语

  下面为大家附上HDFS文件系统中的截图预览,如下图所示:

HDFS文件系统中的文件预览

高可用Hadoop平台-Flume NG实战图解篇1.概述2.Flume NG简述3.单点Flume NG搭建、运行 4.高可用Flume NG搭建5.Failover测试6.截图预览7.总结8.结束语

上传的文件内容预览

高可用Hadoop平台-Flume NG实战图解篇1.概述2.Flume NG简述3.单点Flume NG搭建、运行 4.高可用Flume NG搭建5.Failover测试6.截图预览7.总结8.结束语

  在配置高可用的Flume NG时,需要注意一些事项。在Agent中需要绑定对应的Collector1和Collector2的IP和Port,另外,在配置Collector节点时,需要修改当前Flume节点的配置文件,Bind的IP(或HostName)为当前节点的IP(或HostName),最后,在启动的时候,指定配置文件中的Agent的Name和配置文件的路径,否则会出错。

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

<b></b><b></b><b></b><b></b>

联系方式: 

邮箱:[email protected] 

温馨提示:请大家加群的时候写上加群理由(姓名+公司/学校),方便管理员审核,谢谢!