如何通过 JAVA 在 spark 中 read/write 来自 HBASE 的数据

How to read/write data from HBASE in spark by JAVA

我可以通过 HBASE 项目提供的 JAVA api 来自 HBASE 的 read/write 数据。但是这样读取操作会在spark driver程序中进行处理,看起来并不是什么巧妙的做法。有没有什么spark的方法可以从HBASE读取数据,让读取操作可以在不同的worker中完成,从而提高性能?

Is there some spark way to read data from HBASE

  • 您可以在 HBase 之上使用 Apache Phoenix。
  • Phoenix 在 HBase 之上提供了类似 SQL 的层。
  • 可以使用 SQLContext 在 Spark 中加载 HBase table。
  • 只需包含 hbase-phoenix 客户端 jar 和 spark-csv databricks jar

读取Hbase的Spark代码table

============================================= ===================

sqlContext.read.format("org.apache.phoenix.spark")
.option("table","HBase_table_name")
.option("zkUrl","Master_node_DNS_name:2181")
.load()
.registerTempTable("tempTblName")