oracle 亿级数据迁移,45亿数据迁移记录后续-日数据量千万级别到clickhouse

flume 发送方的slink 需要填写的是接受方的ip,以及端口。我这边本地发送方是 104 ,接受方式118。 相关配置

# 定义三大组件的名称

agent1.sources = source1

agent1.sinks = sink1

agent1.channels = channel1

# 配置 source 组件

agent1.sources.source1.type = exec

agent1.sources.source1.command = tail -F /home/logs/gps.log

# 将数据流复制给多个channel

#agent1.sources.source1.selector.type = replicating

# 配置 sink 组件

agent1.sinks.sink1.type = avro

agent1.sinks.sink1.hostname = 192.168.108.118

agent1.sinks.sink1.port = 4141

agent1.sinks.sink1.request-timeout = 500000

# 配置 channel 组件

agent1.channels.channel1.type = memory

agent1.channels.channel1.capacity = 100000

agent1.channels.channel1.transactionCapacity = 10000

agent1.channels.channel1.keep.alive = 80

# 给 source 和 sink 绑定 channel

agent1.sources.source1.channels = channel1

agent1.sinks.sink1.channel = channel1

agent1.sources.source1.interceptors = filter1 search-replace1

agent1.sources.source1.interceptors.filter1.type = REGEX_FILTER

agent1.sources.source1.interceptors.filter1.regex = (接收到的数据为:)

agent1.sources.source1.interceptors.filter1.excludeEvents = false

#agent1.sources.source1.interceptors.filter2.type = REGEX_FILTER

#agent1.sources.source1.interceptors.filter2.regex = (接收到的数据为:)

#agent1.sources.source1.interceptors.filter2.excludeEvents = false

#agent1.sources.source1.interceptors = search-replace1

agent1.sources.source1.interceptors.search-replace1.type = search_replace

agent1.sources.source1.interceptors.search-replace1.searchPattern = [^{]*(?=\{)

agent1.sources.source1.interceptors.search-replace1.replaceString =

这里的source 就是读取的日志文件地址

channel 配置的规则是 capacity > transactionCapacity > batchSize

接收方的配置如下

#定义三大组件的名称

agent1.sources = source1

agent1.sinks = sink1

agent1.channels = channel1

# 配置 source 组件

agent1.sources.source1.type = avro

# 要监听的 hostname 或者IP地址

agent1.sources.source1.bind = 192.168.108.118

agent1.sources.source1.port = 4141

# 配置 sink 组件

agent1.sinks.sink1.type = hdfs

agent1.sinks.sink1.hdfs.path = hdfs://cluster1/user/oracle/%Y-%m-%d

#Flume在HDFS文件夹下创建新文件的固定前缀

agent1.sinks.sink1.hdfs.filePrefix = access_log

#允许打开的最大文件数,如果超过这个数量,最先打开的文件会被关闭

#agent1.sinks.sink1.hdfs.maxOpenFiles = 5000

#向 HDFS 写入内容时每次批量操作的 Event 数量

agent1.sinks.sink1.hdfs.batchSize= 5000

#文件格式,目前支持: SequenceFile 、 DataStream 、 CompressedStream 。 1. DataStream 不会压缩文件,不需要设置hdfs.codeC 2. CompressedStream 必须设置hdfs.codeC参数

agent1.sinks.sink1.hdfs.fileType = DataStream

#文件写入格式

agent1.sinks.sink1.hdfs.writeFormat = Text

#替换转义序列时是否使用本地时间戳

agent1.sinks.sink1.hdfs.useLocalTimeStamp = true

#Flume在HDFS文件夹下创建新文件的后缀

#agent1.sinks.sink1.hdfs.fileSuffix = .txt

#当前文件写入达到该大小后触发滚动创建新文件(0表示不根据文件大小来分割文件)

agent1.sinks.sink1.hdfs.rollSize = 0

#当前文件写入达到该值时间后触发滚动创建新文件(0表示不按照时间来分割文件),单位:秒

agent1.sinks.sink1.hdfs.rollInterval = 0

#当前文件写入Event达到该数量后触发滚动创建新文件(0表示不根据 Event 数量来分割文件)

agent1.sinks.sink1.hdfs.rollCount = 0

#允许HDFS操作的毫秒数,例如:open,write, flush, close。如果很多HFDS操作超时,这个配置应该增大。

agent1.sinks.sink1.hdfs.callTimeout = 480000

#每个HDFS sink的HDFS的IO操作线程数(例如:open,write)

agent1.sinks.sink1.hdfs.threadsPoolSize = 10

#在发起一个关闭命令后,HDFS sink必须尝试重命名文件的次数

agent1.sinks.sink1.hdfs.closeTries = 0

#在几秒钟之间连续尝试关闭文件

agent1.sinks.sink1.hdfs.retryInterval = 60

# 配置 channel 组件

agent1.channels.channel1.type = memory

agent1.channels.channel1.transactionCapacity = 10000

agent1.channels.channel1.keep.alive = 80

agent1.channels.channel1.capacity = 100000

# 给 source 和 sink 绑定 channel

agent1.sources.source1.channels = channel1

agent1.sinks.sink1.channel = channel1

接收方的source 这里是118自己,因为它需要把自己的端口发布出去,114 才可以连接上,进行传输。这里建议填写自己的ip,不要填写localhost以及127.0.0.0

发送读取日志文件的时候,需要注意,是大写的F,注意这里与 linux 的区分。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值