京东云流数据总线Agent介绍

Agent介绍

数据总线支持以Agent方式进行数据写入,具体使用方法如下:

1.下载地址
https://xdata.cloud.com/map/spsdownload/downLoadAgent.action

2.配置说明
将下载的Agent压缩包,解压到/home/flumedir路径下,在conf文件夹下添加properties文件,例如test.properties,具体配置文件详细说明如下:

3.定义Source属性名称默认值描述Typesource组件名称filegroups文件组名称,空格分隔文件组列表filegroups.指定filegroupName对应的文件路径positionFile~/.flume/taildir_position.json记录当前文件访问的位置,生成json记录放在该文件中headers..头信息,用于区分不同文件中传入的数据byteOffsetHeaderfalse是否需要添加字节偏移量skipToEndfalse如果没有记录读取位置时,是否跳过文件结尾fileHeaderfalseEventheader中是否添加headerKeyfileHeaderKeyfile文件路径信息,在eventheader中对应的key值
配置示例:

定义sources名称br`streaming.sources=tailDirSrc`brbr定义Sourceype:brTAILDIR类型:该类型可以读取文件夹里的日志,使用时指定一个文件夹,可以读取该文件夹中的所有文件br`streaming.sources.tailDirSrc.type=TAILDIR`brbrexec类型:ExecSource在启动时运行给定的Unix命令,并期望进程在标准输出上产生连续的数据br`streaming.sources.tailDirSrc.type=exec`br`streaming.sources.tailDirSrc.command=tail-F/var/log/secure`br定义文件读取位置存储位置`streaming.sources.tailDirSrc.positionFile=/home/flumedir/flumeplugin/data/taildir_position.json`brbr定义上传文件组br`streaming.sources.tailDirSrc.filegroups=onetwo`brbr分别定义文件信息br`streaming.sources.tailDirSrc.filegroups.one=/home/flumedir/flumeplugin/data/test.txt`br`streaming.sources.tailDirSrc.headers.one.headerKey=one`brbr`streaming.sources.tailDirSrc.filegroups.two=/home/flumedir/flumeplugin/data/test2.txt`br`streaming.sources.tailDirSrc.headers.two.headerKey=two1`brbrheaderkeyheaderbr`streaming.sources.tailDirSrc.fileHeader=true`brbrheadereventkeybr`streaming.sources.tailDirSrc.fileHeaderKey=file`brbr

  • 定义channel
    配置示例如下:
    定义channel名称
    streaming.channels=memoryChannel

    定义channel类型,channel的类型可以配置为memory,file,此处用memory
    streaming.channels.memoryChannel.type=memory

    定义memorychannel容量大小
    streaming.channels.memoryChannel.capacity=1000

    定义transactionCapacity大小,source的ChannelProcessor一次可以向channel中写入的最大event数量,该组件负责在一个事务中移动source中的event到channel中
    streaming.channels.memoryChannel.transactionCapacity=1000

  • 定义sink
    StreamingSink参数说明:属性名称是否必须描述Type是sinktype名称:com.jcloud.flume.plugin.sink.streaming.StreamingSinkuploadType是标识为true:上传给有schema的数据流;false:上传给没有schema的数据流appKey是你的京东云账号appkeyappSecret是你的京东云账号appsecretstreamingName是上传数据对应的topicnamebatchSize是批量提交信息数量serverUrl否上传数据对应的服务器地址

    sink对应名称
    streaming.sinks=streamingSink

    定义sink类型
    streaming.sinks.streamingSink.type=com.jcloud.flume.plugin.sink.streaming.StreamingSink

    定义上传数据流是否存在scheam
    streaming.sinks.streamingSink.uploadType=false

    定义用户身份标识
    streaming.sinks.streamingSink.appKey=<yourappkey>
    streaming.sinks.streamingSink.appSecret=<yourappsecretkey>
    streaming.sinks.streamingSink.streamingName=<流总线topic名称>
    streaming.sinks.streamingSink.batchSize=100
    streaming.sinks.streamingSink.serverUrl=http://streamhub-gw.jcloud.com

    (1)公网地址:
    华南:http://streamhub-gw.jcloud.com
    华北:http://hb-streamhub-gw.jcloud.com

    (2)内网地址:
    华南:streamhub-gw-inner.jcloud.com
    华北:hb-streamhub-gw-inner.jcloud.com

  • 定义source对应channel
    sourcechannel
    streaming.sources.tailDirSrc.channels=memoryChannel
  • 定义sink对应channel
    sinkchannel
    streaming.sinks.streamingSink.channel=memoryChannel
  • 启动Agent
    注:启动Agent之前请确认已正确安装JDK并配置环境变量。
    在bin目录下执行如下命令:
    ./flume-ngagent-nstreaming-cconf-f../conf/test.properties-Dflume.root.logger=INFO,LOGFILE,console
  • Tips:常见的内存OOM问题解决方案
    首先限制JVM的内存使用,在flume的flume-env.sh配置文件中配置JVM参数
    JAVA_OPTS=-Xms1000m-Xmx1000m
    这里的例子是配置1000M,可以根据对应的机器内存进行灵活配置,同时配合修改channel的capacity和transactionCapacity,如果自己的内存比较小,这里的参数也应设置的比较小,在配置完JVM的参数以后,启动agent时应加上-cconf选项,否则配置不会生效。例如:
    bin/flume-ngagent-nstreaming-cconf-fconf/flume-conf.properties-Dflume.root.logger=INFO,LOGFILE,consolefaoling.log
    另一种方案是channel的类型不使用内存,使用文件,使用文件的时候要比使用内存效率低,可以根据实际情况灵活使用,如果本机配置不高或者日志生成速度比较慢可以考虑使用。

    标签

    发表评论