IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> apache-flume使用经验及优化 -> 正文阅读

[大数据]apache-flume使用经验及优化

关于flume的简介不再过多赘述,小伙伴们可参考官方文档及谷歌翻译进行了解~

一、使用架构

apache-flume-1.9.0

目前我在实际生产使用的方案是在网上参照大神们的一套高可用方案:agent-collector。

一个节点作为agent从kafka消费获取数据,然后通过avro-sink,传输到2个collector(当然同样用avro-source进行接收了),然后2个collector绑定为一个group,并配置为failover,写入hdfs-sink。

注:这里的agent和collector,是角色,两部分都用的flume-agent启动的。

整个过程的channel,都用的是memory,因为这样效率比较高,如果用filechannel,那么可能就不考虑这样的3节点了,大家酌情使用。

?

二、重点参数

? ? ? ? agent:

#this flume is an agent of kafka-flumeagent-flumecollector?
agent1.channels = c1
agent1.sources = r1
agent1.sinks = k1 k2?
# set threads limit
agent1.sinks.k1.maxIoWorkers = 3
agent1.sinks.k2.maxIoWorkers = 3

#set channels c1
agent1.channels.c1.type = memory
agent1.channels.c1.capacity = 100000
agent1.channels.c1.transactionCapacity = 1000(少量多次)
agent1.channels.c1.keep-alive = 120(防止被kafka认为死掉踢出消费者组)
#set sources r1
agent1.sources.r1.type = org.apache.flume.source.kafka.KafkaSource
agent1.sources.r1.channels = c1
agent1.sources.r1.batchSize = 200
agent1.sources.r1.batchDurationMillis = 10(少量多次)
agent1.sources.r1.kafka.bootstrap.servers = xxx:x
agent1.sources.r1.kafka.topics = xxx
agent1.sources.r1.kafka.consumer.group.id = xxx
agent1.sources.r1.kafka.consumer.session.timeout.ms = 120000(防止被踢)
agent1.sources.r1.kafka.consumer.max.poll.interval.ms = 60000000(防止被踢)
# set sink1?
agent1.sinks.k1.channel = c1
agent1.sinks.k1.type = avro
agent1.sinks.k1.hostname = xx1
agent1.sinks.k1.port = x
# set sink2
agent1.sinks.k2.channel = c1
agent1.sinks.k2.type = avro?
agent1.sinks.k2.hostname = xx2
agent1.sinks.k2.port = x
#set group1
agent1.sinkgroups = g1
#set sink group1
agent1.sinkgroups.g1.sinks = k1 k2
#set failover
#64.3 is more prior
agent1.sinkgroups.g1.processor.type = failover
agent1.sinkgroups.g1.processor.priority.k1 = 10(大则优先)
agent1.sinkgroups.g1.processor.priority.k2 = 5
#failover waiting time
agent1.sinkgroups.g1.processor.maxpenalty = 1000

? ? ? ? collector:

# more prior than xx2
a1.sources = r1
a1.channels = c1
a1.sinks = hdfs_k1
#
a1.channels.c1.type = memory
a1.channels.c1.capacity = 100000
a1.channels.c1.transactionCapacity = 1000
a1.channels.c1.keep-alive = 120
#properties of avro-AppSrv-source 
a1.sources.r1.type = avro  
a1.sources.r1.bind = xx1
a1.sources.r1.port = x
a1.sources.r1.channels=c1
#
#set sink to hdfs  
a1.sinks.hdfs_k1.type=hdfs
a1.sinks.hdfs_k1.channel=c1
a1.sinks.hdfs_k1.hdfs.path=xxx
a1.sinks.hdfs_k1.hdfs.fileType=DataStream  
a1.sinks.hdfs_k1.hdfs.writeFormat=TEXT
a1.sinks.hdfs_k1.hdfs.minBlockReplicas=1
a1.sinks.hdfs_k1.hdfs.rollInterval=0
a1.sinks.hdfs_k1.hdfs.rollCount=0
a1.sinks.hdfs_k1.hdfs.rollSize=134217728(这里设置为128M,减少小文件,同时基本等于hdfs的块大小,其实126、127兆更好,因为总会多写一点)
a1.sinks.hdfs_k1.hdfs.idleTimeout=120
a1.sinks.hdfs_k1.hdfs.batchSize=200
a1.sinks.hdfs_k1.hdfs.threadsPoolSize=3
a1.sinks.hdfs_k1.hdfs.maxOpenFiles=1(比较关键,一个是防止打开多个文件,未关闭的文件无法被hive识别到;同时为了保证隔天能及时关闭前一天的文件。)
# 
a1.sinks.hdfs_k1.hdfs.filePrefix=%Y-%m-%d-xx1(其实配置了前缀就不必配置拦截器了,防止两个collector的文件重名)
a1.sinks.hdfs_k1.hdfs.fileSuffix=.txt
a1.sinks.hdfs_k1.hdfs.useLocalTimeStamp = false 
#################################################################################################

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-08-15 15:39:36  更:2021-08-15 15:41:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 9:19:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码