"导入"的最佳做法是什么?从Kafka流入HBase的数据?
用例如下:车辆传感器数据流式传输到Kafka。之后,必须转换这些感知数据(即,在人类可读数据中从protobuf反序列化)并存储在HBase中。
1)您推荐哪种工具集(例如,Kafka - > Flume - > HBase,Kafka - > Storm - > HBase,Kafka - > Spark Streaming - > HBase,卡夫卡 - > HBase)
2)进行protobuf deseralization的最佳位置是什么(例如,在使用拦截器的Flume中)?
感谢您的支持。
最好,托马斯
答案 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