首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SparkStreaming和Kafka从HBase获取数据

使用SparkStreaming和Kafka从HBase获取数据
EN

Stack Overflow用户
提问于 2016-03-09 14:06:31
回答 1查看 848关注 0票数 1

我正在尝试将SparkStreaming与HBase集成。我正在调用以下API来连接HBase:

代码语言:javascript
复制
HConnection hbaseConnection = HConnectionManager.createConnection(conf);
hBaseTable = hbaseConnection.getTable(hbaseTable);

因为我不能获得连接并广播连接,所以每次从HBase获取数据的API调用都非常昂贵。我尝试使用cdh5.5中的hbase-spark库来使用JavaHBaseContext (JavaHBaseContext hbaseContext = new JavaHBaseContext(jsc, conf)),但无法从maven导入该库。有没有人能够成功解决这个问题。

我正在尝试使用最新的API来连接Cloudera上的HBase和SparkStreaming。

这里提到的一些JIRA项目。

http://blog.cloudera.com/blog/2015/08/apache-spark-comes-to-apache-hbase-with-hbase-spark-module/

我使用JavaHBaseContext hbaseContext = new JavaHBaseContext(jssc.sparkContext(), conf);,然后调用bulk Get API hbaseContext.streamBulkGet(TableName.valueOf(tableName), 2, lines, new GetFunction2(), new ResultFunction());

但是这个批量API是在初始化期间调用的,而不是在每个流消息期间调用。还使用了:

代码语言:javascript
复制
hbaseContext.foreachPartition(jDStream,new VoidFunction<Tuple2<Iterator<String>, Connection>>() {
      public void call(Tuple2<Iterator<String>, Connection> t)throws Exception { ...}

API存在,但不知何故,它不能用于流消息。我也尝试过hbaseContext.streamMap(jdstream, new Function<Tuple2<Iterator<String>, Connection>, Iterator<String>>(),但它也不起作用。

我们有一个如何使用spark streaming API获取数据的示例吗?

EN

回答 1

Stack Overflow用户

发布于 2016-03-10 00:12:06

您在哪里建立连接?如果连接代码仅在驱动程序上,请确保连接对象是可序列化的

我正在使用Cassandra,我所做的是我有一个scala对象,其中我有cassandra connection对象。这样,在驱动程序和工作程序上,至少有一个exeuctor作用域的连接对象

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35884171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档