flume面试题


1.flume数据传输怎么监控?

2.source、channel、sink常用的类型

source

  • netcat tcp source【监听端口数据】常用属性:
    type: netcat
    bind: 监听哪个主机
    port: 监听哪个端口

  • exec source【监听单个追加文件】常用属性:
    type: exec
    command: tail -F 文件路径
    batchSize: 定义每批次采集多少数据, 必须<=事务容量大小
    exec source的缺点:exec的tail -F命令只会显示文件的最后N行,如果flume在集采的过程中宕机,在宕机的过程中向文件中写入了大量的数据,后续Flume启动之后,因为只会采集最后N行的数据,所以可能出现数据丢失

  • Spooling Directory Source【监听目录下新增文件】
    Spooling Directory Source的缺点:
    1、只能监听目录下新增文件,如果某一个文件已经采集完成,后续再向该文件中写入新内容,flume不会进行采集
    2、不能断点续传
    Spooling Directory Source常用属性:
    type:spooldir
    spoolDir: 监听的目录
    includePattern: 通过正则表达式监听符合要求的文件
    batchSize:定义每批次采集多少数据, 必须<=事务容量大小

  • Taildir Source【监听目录下新增文件以及追加文件】
    Taildir Source优点:
    1、监听目录下新增文件以及追加文件
    2、能够断点续传
    Taildir Source常用属性:
    type: TAILDIR
    filegroups: 定义文件组的名称,多个文件组名称通过空格分隔
    filegroups. : 定义对应的文件组监听的目录、文件
    positionFile: 记录上一次采集到了文件的哪个位置的文件
    batchSize:定义每批次采集多少数据, 必须<=事务容量大小

  • avro source[一般flume传递数据给flume的时候使用]常用属性:
    type: avro
    bind: 监听哪个主机
    port: 监听哪个端口

  • kafka source 常用属性:
    type:org.apache.flume.channel.kafka.KafkaChannel
    kafka.bootstrap.servers:指定kafka集群
    kafka.topic:指定数据保存到那个topic
    kafka.consumer.group.id: 指定消费者组的名称
    kafka.consumer.auto.offset.reset:指定消费者组第一次消费时从哪里开始消费topic中的数据

channel

  • memory channel 常用属性:
    type: memory
    capacity: channel的容量大小
    transactionCapacity: 事务容量大小,必须<=capacity

  • kafka channel 常用属性:
    type:org.apache.flume.channel.kafka.KafkaChannel
    kafka.bootstrap.servers:指定kafka集群
    kafka.topic:指定数据保存到那个topic
    parseAsFlumeEvent:指定source采集的数据是否以event的形式写入kafka[false表示只写body里面的数据]
    kafka.consumer.group.id:指定消费者组的名称
    kafka.consumer.auto.offset.reset:指定消费者组第一次消费时从哪里开始消费topic中的数据

sink

  • HDFS sink[将数据保存到HDFS] 常用属性:
    type: hdfs
    hdfs.path: 指定数据保存到HDFS哪个路径
    hdfs.filePrefix: 指定文件的前缀
    hdfs.rollInterval: 指定间隔多久滚动生成一个新文件,后续数据项文件中写入不会再向老文件中写
    hdfs.rollSize: 指定文件多大之后滚动生成一个新文件,后续数据项文件中写入不会再向老文件中写,在工作中设置的时候要比128M稍微小一点
    hdfs.rollCount: 指定向文件中写入多少个Event之后滚动生成一个新文件,后续数据项文件中写入不会再向老文件中写,在工作中一般设置为0禁用
    hdfs.batchSize: 定义sink每个批次从channel拉取多少数据,必须<=事务容量大小
    hdfs.codeC: 定义数据保存到HDFS的时候使用哪种压缩[gzip, bzip2, lzo, lzop, snappy]
    hdfs.fileType: 定义数据保存到HDFS的是以哪种文件格式保存[SequenceFile:二进制文件, DataStream:文本文件, CompressedStream:压缩文件]
    hdfs.round: 指定是否按照指定的时间间隔生成文件夹
    hdfs.roundValue: 指定时间间隔的值
    hdfs.roundUnit: 指定时间单位
    hdfs.userLocalTimeStamp: 是否使用本地时间戳
  • Logger Sink【数据保存在日志中,方便打印】:
    type: logger
  • avro sink[发送数据到其他的flume]常用属性:
    type: avro
    hostname: 数据发送到哪个主机
    port: 数据发送到哪个端口
    batch-size: 定义sink每个批次从channel拉取多少数据,必须<=事务容量大小
  • File Roll Sink【数据保存到本地磁盘】常用属性:
    type: file_roll
    sink.directory: 数据保存的路径
    sink.batchSize: 定义sink每个批次从channel拉取多少数据,必须<=事务容量大小

常用类型参考文档

3.拦截器,channel选择器,sink 组,sink处理器

4.source channel sink常用参数,如何调优

5.事务机制与传输流程

事务主要包含两部分

  • Put 事务流程
    doPut:将批数据先写入临时缓冲区 putList
    doCommit:检查 channel 内存队列是否足够合并
    doRollback:channel 内存队列空间不足,回滚数据

  • Take 事务流程
    doTake:将数据取到临时缓冲区 takeList,并将数据发送到 HDFS
    doCommit:如果数据全部发送成功,则清除临时缓冲区 takeList
    doRollback:数据发送过程中如果出现异常,rollback 将临时缓冲区 takeList 中的数据归还给 channel 内存队列

  • 传输流程
    在这里插入图片描述

6.flume采集数据会丢失吗?

source到channel可以用事务,channel到sink可以用事务,那么只有channel才可能丢失数据,当channel为内存的时候。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
系统根据B/S,即所谓的电脑浏览器/网络服务器方式,运用Java技术性,挑选MySQL作为后台系统。系统主要包含对客服聊天管理、字典表管理、公告信息管理、金融工具管理、金融工具收藏管理、金融工具银行卡管理、借款管理、理财产品管理、理财产品收藏管理、理财产品银行卡管理、理财银行卡信息管理、银行卡管理、存款管理、银行卡记录管理、取款管理、转账管理、用户管理、员工管理等功能模块。 文中重点介绍了银行管理的专业技术发展背景和发展状况,随后遵照软件传统式研发流程,最先挑选适用思维和语言软件开发平台,依据需求分析报告模块和设计数据库结构,再根据系统功能模块的设计制作系统功能模块图、流程表和E-R图。随后设计架构以及编写代码,并实现系统能模块。最终基本完成系统检测和功能测试。结果显示,该系统能够实现所需要的作用,工作状态没有明显缺陷。 系统登录功能是程序必不可少的功能,在登录页面必填的数据有两项,一项就是账号,另一项数据就是密码,当管理员正确填写并提交这二者数据之后,管理员就可以进入系统后台功能操作区。进入银行卡列表,管理员可以进行查看列表、模糊搜索以及相关维护等操作。用户进入系统可以查看公告和模糊搜索公告信息、也可以进行公告维护操作。理财产品管理页面,管理员可以进行查看列表、模糊搜索以及相关维护等操作。产品类型管理页面,此页面提供给管理员的功能有:新增产品类型,修改产品类型,删除产品类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值