集成Kafka和HBase的最佳实践

时间:2015-08-18 07:04:08

标签: apache-spark hbase apache-kafka apache-storm flume

"导入"的最佳做法是什么?从Kafka流入HBase的数据?

用例如下:车辆传感器数据流式传输到Kafka。之后,必须转换这些感知数据(即,在人类可读数据中从protobuf反序列化)并存储在HBase中。

1)您推荐哪种工具集(例如,Kafka - > Flume - > HBase,Kafka - > Storm - > HBase,Kafka - > Spark Streaming - > HBase,卡夫卡 - > HBase)

2)进行protobuf deseralization的最佳位置是什么(例如,在使用拦截器的Flume中)?

感谢您的支持。

最好,托马斯

2 个答案:

答案 0 :(得分:3)

我认为你只需要做 Kafka - >风暴 - > HBase的

Storm: Storm spout 将订阅Kafka话题。
然后 Storm bolt 可以转换数据并将其写入HBase。
您可以在java中使用HBase client api从Storm中将数据写入HBase。

我建议使用Storm,因为它实际上一次处理一个元组。 In Spark streaming, a micro-batch is processed。但是,如果您想使用通用基础架构进行批处理和流处理,那么Spark可能是一个不错的选择。

如果您最终使用Spark,那么您的流量也将是 Kafka - > Spark - > HBase的

答案 1 :(得分:1)

1)我建议使用'Kafka Connect'连接器将您的数据从Kafka流式传输到HBase。 Kafka社区有几个接收器连接器: http://docs.datamountaineer.com/en/latest/hbase.html https://github.com/mravi/kafka-connect-hbase 2)至于转换数据,您可以使用Kafka Streams,这是自2016年5月Kafka 0.10发布以来Kafka中包含的轻量级Java库:http://kafka.apache.org/documentation/streams