将kafka流式数据“导入”到hbase的最佳实践是什么?
用例如下:车辆传感器数据流到kafka。之后,这些传感器数据必须转换(即,从人类可读数据中的protobuf反序列化)并存储在hbase中。
1) 您推荐哪种工具集(例如,kafka-->flume-->hbase、kafka-->storm-->hbase、kafka-->spark streaming-->hbase、kafka-->hbase)
2) 什么是进行protobuf反序列化的最佳位置(例如,在Flume内使用拦截器)?
谢谢你的支持。
最好的,托马斯
2条答案
按热度按时间rjzwgtxy1#
我认为你只需要做Kafka->风暴->hbase。
风暴:风暴喷口将订阅Kafka主题。
然后storm Bolt可以转换数据并将其写入hbase。
您可以使用java中的hbase客户端api从storm向hbase写入数据。
我建议使用storm,因为它实际上一次处理一个元组。
In Spark streaming, a micro-batch is processed
. 但是,如果您想使用公共基础设施进行批处理和流处理,那么spark可能是一个不错的选择。如果您最终使用spark,那么您的流也将是kafka->spark->hbase。
klh5stk12#
1) 我建议使用“kafka connect”连接器将数据从kafka传输到hbase。Kafka社区有几个接收器连接器:http://docs.datamountaineer.com/en/latest/hbase.htmlhttpshttp://github.com/mravi/kafka-connect-hbase 2)至于转换数据,您可以使用kafka streams,它是自2016年5月kafka 0.10发行以来kafka中包含的一个轻量级java库:http://kafka.apache.org/documentation/streams