• win10 flume source为spooldir,输出到hdfs


    参考:

    http://blog.yoqi.me/wp/2580.html

    https://blog.csdn.net/weixin_42345229/article/details/98217488

    https://www.csdn.net/tags/MtTaEgzsMTk4MzA3LWJsb2cO0O0O.html

    https://blog.csdn.net/u014756380/article/details/103014151

    https://www.cnblogs.com/jhxxb/p/11558300.html

    问题记录:

    1、flume字符转换异常问题,java.nio.charset.MalformedInputException: Input length = 1,可以在配置文件中增加如下配置项解决:

      a1.sources.r1.inputCharset = ISO8859-1

       备注:网上很多说是改为GBK, 但是我在win10环境建的文件不行,改为ISO8859-1就行了。

    2、报这个错:

    FLUME com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V
      原因是:hadoop 与flume jar包冲突。

    解决方式:https://blog.csdn.net/walykyy/article/details/111911947

    3、win10环境配置source 的类型为TAILDIR 会报错, 了解后可能是源码在win10下有bug, 最后改为spooldir。

    开始前,安装flume1.9.0:https://www.cnblogs.com/maohuidong/p/15623855.html
    开始:
    1、编写flume-conf2.properties

     

     内容:

    a3.sources=s1

    a3.channels=c1

    a3.sinks=k3

    # 以下四行,window不支持,TAILDIR,源码在window下有bug,报的错解决不了,所以放弃了。

    #a3.sources.s1.type=TAILDIR

    #a3.sources.s1.positionFile=E://27bigdata/4flume/taildir_position.json

    #a3.sources.s1.filegroups=f1

    #a3.sources.s1.filegroups.f1=E://27bigdata/4flume/sogou.log

    a3.sources.s1.type=spooldir

    a3.sources.s1.spoolDir=E://27bigdata/4flume/logs

    a3.sources.s1.fileHeader = true

    a3.sources.s1.inputCharset = ISO8859-1

    a3.sources.s1.ignorePattern= ^(.)*\\.tmp$

    #监控目录及子目录

    #a3.sources.s1.recursiveDirectorySearch=true

    # Describe the sink

    a3.sinks.k3.type = hdfs

    a3.sinks.k3.hdfs.path = hdfs://127.0.0.1:9000/flume/tailDir/%Y%m%d/%H

    # 上传文件的前缀

    a3.sinks.k3.hdfs.filePrefix = upload-

    # 是否按照时间滚动文件夹

    a3.sinks.k3.hdfs.round = true

    # 多少时间单位创建一个新的文件夹

    a3.sinks.k3.hdfs.roundValue = 1

    # 重新定义时间单位

    a3.sinks.k3.hdfs.roundUnit = minute

    # 是否使用本地时间戳

    a3.sinks.k3.hdfs.useLocalTimeStamp = true

    # 积攒多少个 Event 才 flush 到 HDFS 一次,可以设置为100

    a3.sinks.k3.hdfs.batchSize = 5

    # 设置文件类型,可支持压缩

    a3.sinks.k3.hdfs.fileType = DataStream

    # 多久生成一个新的文件,可以设置为60

    a3.sinks.k3.hdfs.rollInterval = 6

    # 设置每个文件的滚动大小大概是 128M(值为134217700)

    a3.sinks.k3.hdfs.rollSize = 2

    # 文件的滚动与 Event 数量无关

    a3.sinks.k3.hdfs.rollCount = 0

    # Use a channel which buffers events in memory

    a3.channels.c1.type = memory

    a3.channels.c1.capacity = 1000

    a3.channels.c1.transactionCapacity = 100

    a3.channels.c1.checkpointDir=E://flume-test//checkpoint

    a3.channels.c1.dataDirs=E://flume-test//data

    # Bind the source and sink to the channel

    a3.sources.s1.channels = c1

    a3.sinks.k3.channel = c1

     2、启动hadoop:

    启动后,我执行了以下两个命令: hadoop dfsadmin -safemode leave  ;  hadoop fs -chmod -R 777;



    3、启动flume:

     

      .\bin\flume-ng.cmd agent -n a3 -c conf -f conf/flume-conf2.properties -property "flume.root.logger=INFO,console"

    看到source,channel,sink有启动成功的标识才算成功, 否则有可能是配置不对,监控不到的原因。



    4、测试是否可以输出到hdfs:

     

     

  • 相关阅读:
    html框内文字垂直居中的方法
    关于 TensorFlow
    用windows自带的ftp.exe实现断点续传的方法
    Bat脚本处理ftp超强案例解说
    用winrar和ftp命令实现自动备份文件并自动上传到指定的ftp服务器
    在ubuntu上利用科大讯飞的SDK实现语音识别-语义识别等功能
    Linux音频编程--使用ALSA库播放wav文件
    使用iconv进行文件编码转换
    嵌入式Linux-LCD显示多行文字
    使用freetype来显示中文汉字和英文字符
  • 原文地址:https://www.cnblogs.com/maohuidong/p/15646083.html
Copyright © 2020-2023  润新知