【发布时间】:2016-10-25 21:54:16
【问题描述】:
我想将 Twitter 流保存在 HBase 数据库中。我现在拥有的是用于接收和转换数据的 Sapk 应用程序。但是我不知道如何将我的 TwitterStream 保存到 HBase 中?
我发现唯一有用的是PairRDD.saveAsNewAPIHadoopDataset(conf) 方法。但是我应该如何使用它,我必须进行哪些配置才能将 RDD 数据保存到我的 HBase 表中?
我唯一发现的是 HBase 客户端库,它可以通过 Put 对象将数据插入到表中。但这不是 Spark 程序内部的解决方案,是吗(有必要遍历 RDD 中的所有项目!!)?
有人可以举个JAVA的例子吗?我的主要问题似乎是org.apache.hadoop.conf.Configuration 实例的设置,我必须在saveAsNewAPIHadoopDataset 中提交...
这里是代码sn-p:
JavaReceiverInputDStream<Status> statusDStream = TwitterUtils.createStream(streamingCtx);
JavaPairDStream<Long, String> statusPairDStream = statusDStream.mapToPair(new PairFunction<Status, Long, String>() {
public Tuple2<Long, String> call(Status status) throws Exception {
return new Tuple2<Long, String> (status.getId(), status.getText());
}
});
statusPairDStream.foreachRDD(new Function<JavaPairRDD<Long,String>, Void>() {
public Void call(JavaPairRDD<Long, String> status) throws Exception {
org.apache.hadoop.conf.Configuration conf = new Configuration();
status.saveAsNewAPIHadoopDataset(conf);
// HBase PUT here can't be correct!?
return null;
}
});
【问题讨论】:
标签: java hadoop apache-spark hbase spark-streaming