Ste*_*han 8 java bigdata business-intelligence apache-kafka
我们正在尝试构建一个BI系统,该系统将收集应由其他组件处理的大量数据.
我们认为有一个中间层来收集,存储和分发数据是个好主意.
数据由一组大量日志消息表示.每条日志消息都有:
系统细节:
我们以为Kafka会做这个工作,但我们遇到了几个问题.
我们尝试为每个产品类型和每个产品的分区创建一个主题.通过这样做,我们可以提取1个产品/ 1动作类型来消费.
最初我们遇到"打开文件太多"的问题,但在我们更改服务器配置以支持更多文件后,我们发现内存不足错误(12GB分配/节点)
此外,我们遇到了Kafka稳定性问题.在众多话题中,卡夫卡倾向于冻结.
我们的问题:
我发布这个答案是为了让其他用户可以看到我们采用的解决方案。
由于 Kafka 的限制(大量分区导致操作系统几乎达到最大打开文件数)和性能稍弱,我们决定使用 apache commons 、 guava 、 trove 等库构建一个自定义框架来满足我们的需求我们需要的性能。
整个系统(分布式且可扩展)有3个主要部分:
ETL(读取数据,处理数据并将其写入二进制文件)
Framework Core(用于读取二进制文件并计算统计数据)
顺便说一句:我们尝试了其他解决方案,例如 HBase、Storm 等,但没有一个能够满足我们的需求。