如何通过 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")
我可以通过 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")