本文介绍如何使用Databricks 读写云数据库HBase数据。
前提条件
通过主账号登录阿里云 Databricks控制台。
已创建HBase实例,具体参见创建HBase实例。
已创建DDI集群,具体请参见DDI集群创建。
创建集群并通过knox账号访问NoteBook。
打通网络环境
进入DDI数据源点击添加选择通用网络打通,选择HBase数据库所在的VPC和vsw。
登录HBase控制台添加DDI集群各个机器IP至访问白名单。
创建HBase表准备数据,本实例使用的HBase表为:
mytable
方式: 通过HBase shell准备数据
bin/hbase shell
hbase(main):001:0> create 'mytable', 'cf'
hbase(main):001:0> put 'mytable', 'rowkey1', 'cf:col1', 'this is value'
说明
HBase shell客户端下载
使用Databricks 读写云数据库HBase数据
通过Spark建表读取云数据库HBase数据
%sql
-- 使用org.apache.hadoop.hbase.spark创建spark表
CREATE DATABASE IF NOT EXISTS test_hbase;
USE test_hbase;
DROP TABLE IF EXISTS spark_on_hbase;
CREATE TABLE spark_on_hbase USING org.apache.hadoop.hbase.spark
OPTIONS (
'catalog'= '{"table":
{"namespace":"default", "name":"mytable"},
"rowkey":"rowkey",
"columns":{
"col0":{"cf":"rowkey", "col":"rowkey", "type":"string"},
"col1":{"cf":"cf", "col":"col1", "type":"string"}
}
}',
'hbase.zookeeper.quorum' = 'your zkUrl'
);
数据查询
2. 通过Phoenix 读写云数据库HBase数据
%sql
-- 使用org.apache.phoenix.spark创建spark表
-- SQL实现
CREATE DATABASE IF NOT EXISTS test_hbase;
USE test_hbase;
DROP TABLE IF EXISTS spark_on_phoenix;
CREATE TABLE spark_on_phoenix USING org.apache.phoenix.spark
OPTIONS (
'zkUrl' 'your zkUrl',
'table' 'us_population'
)
数据展示
使用Spark API读HBase数据;
%spark
//使用org.apache.phoenix.spark读写spark表
val url = "your zkUrl"
val dbtable = "us_population"
val df = spark.read
.format("org.apache.phoenix.spark")
.options(Map("table" -> dbtable, "zkUrl" -> url))
.load()
//数据展示;
df.show()
数据展示
将数据写入到HBase
%spark
//定义DF
val add_df = spark.createDataFrame(
Seq(
("NJ", "Nanjing", 15000000),
("CQ", "Chongqing", 21000000)
)
).toDF("state", "city", "population")
//数据写入HBase
add_df.write.mode("overwrite").format("org.apache.phoenix.spark").options(Map("table" -> dbtable, "zkUrl" -> url)).save()
//数据查询
spark.table("spark_on_phoenix").show()
数据展示
文档内容是否对您有帮助?