2016-12-08 56 views
2

是否可以通过spark-streaming作业设置跟踪HBase表并每次读取新的/更新的行?博客here表示HDFS文件受支持的来源。但他们似乎正在使用以下静态API:Spark Streaming:source HBase

sc.newAPIHadoopRDD(..) 

我找不到任何文档。是否有可能使用Spark Streaming上下文从hbase进行流式传输?任何帮助表示赞赏。

谢谢!

回答

1

提供的链接做以下

  1. 读取数据流 - 将其转换成HBase的投入,然后添加到HBase的表。在此之前,它的流媒体。这意味着你的摄取过程是流式传输。

  2. 统计计算部分,我认为是批处理 - 这使用newAPIHadoopRDD。这种方法将数据读取部分视为文件。在这种情况下,将文件从HBASE - 这就是以下的输入格式

VAL hBaseRDD = sc.newAPIHadoopRDD(CONF,classOf [TableInputFormat], classOf [org.apache.hadoop的原因。 hbase.io.ImmutableBytesWritable], classOf [org.apache.hadoop.hbase.client.Result])

如果你想读的HBase的更新如流,那么你应该有WAL的手柄(预写日志)后端的HBase,然后执行你的操作。 HBase-indexer是开始阅读HBase中任何更新的好地方。

我已经使用hbase-indexer在后端读取hbase更新,并在它们到达时指示它们solr。希望这可以帮助。