• flume 采集指定端口的日志



    未经许可,禁止以任何形式转载,若要引用,请标注链接地址
    全文共计2086字,阅读大概需要3分钟

    一、 任务描述

    本实验任务主要完成基于ubuntu环境使用flume的采集某个端口的日志信息。通过完成本实验任务,要求学生初步了解flume对端口信息的采集语法格式,为深度学习flume知识做基础,也为从事大数据平台运维工程师、大数据技术支持工程师等岗位工作奠定夯实的技能基础。

    二、 任务目标

    熟悉Flume概述,Flume架构
      熟悉Flume基本组件Source,Sink,Channel
      理解Avro Source将数据输出到Console

    三、 任务环境

    本次环境是:Ubuntu16.04+flume-ng-1.5.0-cdh5.3.6

    四、 任务分析

    Flume采集数据的简单案例,通过avro方式,从客户端上读取一个文件,然后提交到avro服务端的source获取,通过内存channel最后将数据输送到目的地logger 并在控制台输出;采用Avro Source+Memory Channel+Logger Sink方式
      本次实验的大致流程是:
    testflume文件内容——>agent-source-avro——>agent-channel-memory—->agent-sink-flume-logger—->-Dflume.root.logger=DEBUG,console控制台打印

    ♥ 知识链接
    历史数据和实时数据
      基于Flume将“历史数据“保存在HDFS,“历史数据“:比如“每天rotate生成的日志文件“,即我们熟悉的catalina.out文件。每天都rotate生成一个新的。当然对于“准实时“数据也可以保存在HDFS中,Flume支持将“tail“的数据每隔数小时生成一个HDFS文件等。通常情况下,我们将“历史数据“保存在HDFS,而不是“实时数据“。

    五、 任务实施

    步骤1、操作步骤

    在linux目录/usr/local下,执行命令:touch /usr/local/testflume
    并编辑内容为:

    1:Hello Flume.
    2:I Love Flume!
    3:AND,
    4:You Love Flume?
    5:Sure,Me too.
    
    • 1
    • 2
    • 3
    • 4
    • 5

    如图1所示

    在这里插入图片描述

    图1 编辑文件
      执行命令:cd /simple/flume/conf切换到目录/simple/flume/conf下,之后执行命令:touch avrofile.conf创建文件avrofile.conf,并写入内容如下:

    1.	# 配置agent
    2.	a1.sources = r1
    3.	a1.sinks = k1
    4.	a1.channels = c1
    5.	# Describe/configure the source
    6.	a1.sources.r1.type = avro
    7.	a1.sources.r1.channels = c1
    8.	a1.sources.r1.bind = 0.0.0.0
    9.	a1.sources.r1.port = 41414
    10.	# Describe the sink
    11.	a1.sinks.k1.type = logger
    12.	# Use a channel which buffers events in memory
    13.	a1.channels.c1.type = memory
    14.	a1.channels.c1.capacity = 1000
    15.	a1.channels.c1.transactionCapacity = 100
    16.	# Bind the source and sink to the channel
    17.	a1.sources.r1.channels = c1
    18.	a1.sinks.k1.channel = c1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    根据配置好avrofile.conf的配置信息,启动flume agent。
      执行命令:cd /simple/flume进入该目录并执行如下命令:
    ./bin/flume-ng agent -c . -f conf/avrofile.conf -n a1 -Dflume.root.logger=INFO,console。如图2所示

    在这里插入图片描述

    图2 启动flume

    一些配置的说明:

    nameValue
    -f指定flume服务端启动监听的agent配置文件,
    -n指定启动的flume agent别名,
    -Dflume.root.logger=DEBUG,console 表示数据在控制台打印出,

    启动flume agent后,可以看到如下信息:Avro source r1 started,此时会不停扫描avrofile.conf,
    上面的命令启动成功后显示的信息,如图3所示:

    在这里插入图片描述

    图3 显示启动过程

    再启动一个终端。
    cd /simple/flume
    使用avro-client发送文件,执行该命令:
    /simple/flume/bin/flume-ng avro-client -c . -H localhost -p 41414 -F /usr/local/testflume。如图4,5所示

    在这里插入图片描述

    图4 avro-client发送文件

    在这里插入图片描述

    图5 avro-client发送文件结果展示

    数据向第一个命令终端发送成功的信息,红框表示收到的终端收到的数据。如图6所示

    在这里插入图片描述

    图6 数据展示

  • 相关阅读:
    c和c++的反汇编方法
    [附源码]java毕业设计学生宿舍管理系统
    【学习笔记之我要C】预处理
    DNS如何在Windows NIC配置多个DNS服务器时完成DNS解析查询
    爬虫之xpath插件下载与安装
    Web APIs:事件高级--注册事件(绑定事件)
    02-基于DockerCompose安装Nebula Graph 3.0.0
    Linux下程序后台运行程序或脚本的方式-脚本执行-不建议screen
    集合——list
    Making a Difference to Differential Evolution
  • 原文地址:https://blog.csdn.net/qq_44807756/article/details/125631327