首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

分布式日志收集框架Flume学习笔记

业务现状分析

我们有很多servers和systems,比如network device、operating system、web server、Application,他们会产生日志和其他数据,如何使用这些数据呢?可以把源系统的日志数据移到分布式的存储和计算框架上处理,如何解决?

shell cp hadoop集群的机器上,hadoop fs -put …,有一系列问题,容错、负载均衡、高延时、压缩等。

Flume,把A端的数据移到B端,通过写配置文件可以cover掉大部分的应用场景。

Flume概述

Flume is a distributed, reliable, and available service for efficiently collecting(收集) aggregating(聚合), and moving(移动) large amounts of log data.

webserver(源端) ===> flume ===> hdfs(目的地)

Flume架构及核心组件

Flume架构图

Source, 收集

Channel, 聚集

Sink, 输出

Flume环境部署

Flume安装前置条件,版本Flume 1.7.0,

Java Runtime Environment - Java 1.7 or later

Memory - Sufficient memory for configurations used by sources, channels or sinks

Disk Space - Sufficient disk space for configurations used by channels or sinks

Directory Permissions - Read/Write permissions for directories used by agent

安装jdk,下载,解压到目标目录,配置到系统环境变量中,source让其配置生效,验证。

安装Flume,下载,解压到目标目录,配置到系统环境变量中,source让其配置生效,修改配置文件,配置Flume的,验证。

Flume实战案例

应用需求1:从指定网络端口采集数据输出到控制台。

技术选型:netcat source + memory channel + logger sink。

使用Flume的关键就是写配置文件,

配置Source

配置Channel

配置Sink

把以上三个组件串起来

a1: agent的名称,r1: source的名称,k1: sink的名称,c1: chanel的名称

注意:一个source可以输出到多个channel,一个sink只能从一个channel过来。

启动agent,

配置telnet客户端与服务端,

使用telnet进行测试,

Event是Flume数据传输的基本单元,Event = 可选的header + byte array。

应用需求2:监控一个文件实时采集新增的数据输出到控制台。

Agent选型:exec source + memory channel + logger sink。

启动agent,

验证,

应用需求3:将A服务器上的日志实时采集到B服务器。

日志收集过程:

机器A上监控一个文件,当我们访问主站时会有用户行为日志记录到access.log中。

avro sink把新产生的日志输出到对应的avro source指定的hostname和port上。

通过avro source对应的agent将我们的日志输出到控制台(Kafka)。

将A服务器上的日志实时采集到B服务器

技术选型:

exec-memory-avro.conf: exec source + memory channel + avro sink

avro-memory-logger.conf: avro source + memory channel + logger sink

验证,先启动avro-memory-logger.conf,因为它监听192.168.169.100的44444端口,

本文首发于steem,感谢阅读,转载请注明。

https://steemit.com/@padluo

微信公众号「数据分析」,分享数据科学家的自我修养,既然遇见,不如一起成长。

数据分析

https://t.me/sspadluo

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180228G0J9II00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券