1G 大小的日志文件(每分钟)+Flume+Kafka+Spark streaming 实时分析的问题

2017-04-17 22:29:29 +08:00
 anonymoustian

现在有一个采集机器,接收其他系统产生的日志文件,每分钟 1G ,也就是每分钟一个目录下会多出一个 1G 的文件。

现在想对每分钟出现的这 1G 的数据进行实时的分析,采用 Spark streaming 实时计算后存入其他的系统。

现在的一个问题是我想读取 1G 数据里的每一条记录,请问这个架构应该是怎样的呢?

应该由哪一个节点负责对该 1G 大小的日志文件 readline 操作形成的一条条的记录呢? 这里 Flume 有没有用?

请教一下,谢谢~

3832 次点击
所在节点    程序员
10 条回复
anonymoustian
2017-04-17 22:30:40 +08:00
我的理解是 Kafka 里面存的是 一条条的日志(一行行)而非整个的大文件,所以需要向里面存这样的数据,这么理解对吗?
anonymoustian
2017-04-17 22:40:24 +08:00
我的问题是

日志文件 -> Kafka 和 日志文件 -> Flume -> Kafka 有什么区别呢? 日志文件有千万行的记录,是在哪一个阶段把这些记录一条条的输入到 Kafka 中的呢?
EmdeBoas
2017-04-17 23:14:22 +08:00
学生党,个人的一点愚见
EmdeBoas
2017-04-17 23:15:50 +08:00
应该不需要 flume 直接在采集机器上跑 kafka 当生产者 不过要注意配置好 zookeeper 这个节点最好不要经常抖动或者老选举
anonymoustian
2017-04-17 23:29:49 +08:00
@EmdeBoas 谢谢 ,经常抖动或者老选举是什么意思?
EmdeBoas
2017-04-17 23:46:37 +08:00
@anonymoustian 我说详细一点吧,我觉得 60s 1~2G 的 IO 单台机器应该是吃得消的,所以直接在采集机器上跑生产者 另外关于 zookeeper 因为只有这一个生产者,所以它的稳点性肯定很重要的, kafka 依赖于 zookeeper ,你可以在同一台机器上直接跑 zookeeper ,最好它能是 leader(因为生产者肯定会频繁请求事务,事务只有 leader 处理。 follower 只处理请求) ,这样消息延迟就会降低....不要抖动就是说你 zookeeper 服务器的网得稳定,频繁发生新的选举的话之前的请求和事务都会阻塞的,运气差还可能旧操作被丢弃... PS 我没上过实际生产环境....很多知识都是书上的,你参考就好.....
lujiajing1126
2017-04-18 00:20:05 +08:00
Flume 投递到 Kafka 集群,然后 Spark Streaming 直接从 Kafka 消费数据应该没啥问题吧

https://flume.apache.org/FlumeUserGuide.html#kafka-sink
v2orz
2017-04-18 08:47:27 +08:00
如果是日志这种数据,一般是选择用 flume-->kafka-->spark
zacard
2017-04-18 10:38:06 +08:00
其他系统产生的日志->flume->spark->其他系统
snopy
2017-04-18 14:02:58 +08:00
参考 Spark+Redis ,我们公司每天实时分析处理 7~8 个 TB 的数据就是酱紫的架构, 10 台 Spark 集群, 3 台 Redis 集群

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/355496

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX