我想使用JAVA通过Spark访问HBase。除此之外,我还没有找到任何这样的例子。
这个
一个。答案是这样写的:
您也可以用Java编写以下代码
我从
如何使用spark读取hbase
:
import org.apache.hadoop.hbase.client.{HBaseAdmin, Result}
import org.apache.hadoop.hbase.{ HBaseConfiguration, HTableDescriptor }
import org.apache.hadoop.hbase.mapreduce.TableInputFormat
import org.apache.hadoop.hbase.io.ImmutableBytesWritable
import org.apache.spark._
object HBaseRead {
def main(args: Array[String]) {
val sparkConf = new SparkConf().setAppName("HBaseRead").setMaster("local[2]")
val sc = new SparkContext(sparkConf)
val conf = HBaseConfiguration.create()
val tableName = "table1"
System.setProperty("user.name", "hdfs")
System.setProperty("HADOOP_USER_NAME", "hdfs")
conf.set("hbase.master", "localhost:60000")
conf.setInt("timeout", 120000)
conf.set("hbase.zookeeper.quorum", "localhost")
conf.set("zookeeper.znode.parent", "/hbase-unsecure")
conf.set(TableInputFormat.INPUT_TABLE, tableName)
val admin = new HBaseAdmin(conf)
if (!admin.isTableAvailable(tableName)) {
val tableDesc = new HTableDescriptor(tableName)
admin.createTable(tableDesc)
}
val hBaseRDD = sc.newAPIHadoopRDD(conf, classOf[TableInputFormat], classOf[ImmutableBytesWritable], classOf[Result])
println("Number of Records found : " + hBaseRDD.count())
sc.stop()
}
}
谁能给我一些提示,如何找到正确的依赖,对象和东西?
看起来像是
是在
,但我实际上坚持
..。这不是应该在同一个依赖中吗?
有没有更好的方式用spark访问hbase?
发布于 2017-03-03 05:01:51
是的。有。使用
SparkOnHbase
来自Cloudera。
org.apache.hbase
hbase-spark
1.2.0-cdh5.7.0
以及使用HBase扫描从HBase表读取数据(如果知道要检索的行的键,则使用Bulk Get )。
Configuration conf = HBaseConfiguration.create();
conf.addResource(new Path("/etc/hbase/conf/core-site.xml"));
conf.addResource(new Path("/etc/hbase/conf/hbase-site.xml"));
JavaHBaseContext hbaseContext = new JavaHBaseContext(jsc, conf);
Scan scan = new Scan();
scan.setCaching(100);
JavaRDD>>> hbaseRdd = hbaseContext.hbaseRDD(tableName, scan);
System.out.println("Number of Records found : " + hBaseRDD.count())
https://stackoverflow.com/questions/42370170
复制相似问题