数据中台之flume

flume在数据中台的作用

数据的同步的ods层,为离线同步和实时同步,离线同步可以用flinkx,datax(关系数据库->hive))。而实时同步可以用flume(kafa->hive)。
实时同步到hive后,能使用离线数仓加工当天数据需求(比如当天每15分钟)。
flume先同步到hive的表的分区路径下,再加载到hive表中。

下载flume安装

flume下载地址

demo (kafka->hdfs)

先在flume的conf目录下新建一个文件 example.conf

#-------- flume sources、channels、sinks别名-----------------
# source的名字
a1.sources = kafkaSource
# channels的名字,建议按照type来命名
a1.channels = memoryChannel
# sink的名字,建议按照目标来命名
a1.sinks = hdfsSink
# 指定source使用的channel名字
a1.sources.kafkaSource.channels = memoryChannel
# 指定sink需要使用的channel的名字,注意这里是channel
a1.sinks.hdfsSink.channel = memoryChannel

#-------- kafkaSource相关配置-----------------
# 定义消息源类型
a1.sources.kafkaSource.type = org.apache.flume.source.kafka.KafkaSource
# 定义kafka所在zk的地址
a1.sources.kafkaSource.zookeeperConnect = kafka.port
# 配置消费的kafka topic
a1.sources.kafkaSource.topic = flume
# 配置消费者组的id
a1.sources.kafkaSource.groupId = flume1
# 消费超时时间,参照如下写法可以配置其他所有kafka的consumer选项。注意格式从kafka.xxx开始是consumer的配置属性
a1.sources.kafkaSource.kafka.consumer.timeout.ms = 100

#------- memoryChannel相关配置-------------------------
# channel类型
a1.channels.memoryChannel.type = memory
# channel存储的事件容量
a1.channels.memoryChannel.capacity=1000
# 事务容量
a1.channels.memoryChannel.transactionCapacity=1000

#---------hdfsSink 相关配置------------------
a1.sinks.hdfsSink.type = hdfs
a1.sinks.hdfsSink.hdfs.path = hdfs://hadoop:8020/apps/hive/warehouse/test.db/test/%Y%m%d%H%M
a1.sinks.hdfsSink.hdfs.filePrefix = log_%Y%m%d_%H%M%S
a1.sinks.hdfsSink.hdfs.fileSuffix = .lzo
#写入HDFS文件块的最小副本数
a1.sinks.hdfsSink.hdfs.minBlockReplicas=1
#是否启用时间上的”舍弃”
a1.sinks.hdfsSink.hdfs.round = true
a1.sinks.hdfsSink.hdfs.roundValue = 15
a1.sinks.hdfsSink.hdfs.roundUnit = minute
#文件格式,包括:SequenceFile, DataStream,CompressedStream
a1.sinks.hdfsSink.hdfs.fileType=DataStream
#写sequence文件的格式。包含:Text, Writable(默认)
a1.sinks.hdfsSink.hdfs.writeFormat=TEXT
#当临时文件达到该大小(单位:bytes)时,滚动成目标文件
a1.sinks.hdfsSink.hdfs.rollSize=0
#hdfs sink间隔多长将临时文件滚动成最终目标文件,单位:秒
a1.sinks.hdfsSink.hdfs.rollInterval=60
#当events数据达到该数量时候,将临时文件滚动成目标文件
a1.sinks.hdfsSink.hdfs.rollCount=0
#执行HDFS操作的超时时间(单位:毫秒);
a1.sinks.hdfsSink.hdfs.callTimeout = 60000

启动flume

./bin/flume-ng agent -c conf -f conf/example.conf -n a1 -Dflume.root.logger=INFO,console

flume参数参考
flume hdfs参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值