MAPREDUCE服务 MRS-Spark同步HBase数据到CarbonData开发思路:数据规划
数据规划
运行样例程序前,需要在Spark客户端的“spark-defaults.conf”配置文件中将配置项“spark.yarn.security.credentials.hbase.enabled”设置为“true”(该参数值默认为“false”,改为“true”后对已有业务没有影响。如果要卸载HBase服务,卸载前请将此参数值改回“false”)。
- 创建HBase表,构造数据,列需要包含key,modify_time,valid。其中每条数据key值全表唯一,modify_time代表修改时间,valid代表是否为有效数据(该样例中'1'为有效,'0'为无效数据)。
create 'hbase_table','key','info'
put 'hbase_table','1','info:modify_time','2019-11-22 23:28:39'
put 'hbase_table','1','info:valid','1'
put 'hbase_table','2','info:modify_time','2019-11-22 23:28:39'
put 'hbase_table','2','info:valid','1'
put 'hbase_table','3','info:modify_time','2019-11-22 23:28:39'
put 'hbase_table','3','info:valid','0'
put 'hbase_table','4','info:modify_time','2019-11-22 23:28:39'
put 'hbase_table','4','info:valid','1'
上述数据的modify_time列可设置为当前时间之前的值。
put 'hbase_table','5','info:modify_time','2021-03-03 15:20:39'
put 'hbase_table','5','info:valid','1'
put 'hbase_table','6','info:modify_time','2021-03-03 15:20:39'
put 'hbase_table','6','info:valid','1'
put 'hbase_table','7','info:modify_time','2021-03-03 15:20:39'
put 'hbase_table','7','info:valid','0'
put 'hbase_table','8','info:modify_time','2021-03-03 15:20:39'
put 'hbase_table','8','info:valid','1'
put 'hbase_table','4','info:valid','0'
put 'hbase_table','4','info:modify_time','2021-03-03 15:20:39'
上述数据的modify_time列可设置为样例程序启动后30分钟内的时间值(此处的30分钟为样例程序默认的同步间隔时间,可修改)。
put 'hbase_table','9','info:modify_time','2021-03-03 15:32:39'
put 'hbase_table','9','info:valid','1'
put 'hbase_table','10','info:modify_time','2021-03-03 15:32:39'
put 'hbase_table','10','info:valid','1'
put 'hbase_table','11','info:modify_time','2021-03-03 15:32:39'
put 'hbase_table','11','info:valid','0'
put 'hbase_table','12','info:modify_time','2021-03-03 15:32:39'
put 'hbase_table','12','info:valid','1'
上述数据的modify_time列可设置为样例程序启动后30分钟到60分钟内的时间值,即第二次同步周期。
- 在sparksql中创建HBase的hive外表,命令如下:
create table external_hbase_table(key string ,modify_time STRING, valid STRING)
using org.apache.spark.sql.hbase.HBaseSource
options(hbaseTableName "hbase_table", keyCols "key", colsMapping "modify_time=info.modify_time,valid=info.valid");
- 在sparksql中创建CarbonData表:
create table carbon01(key string,modify_time STRING, valid STRING) stored as carbondata;
- 初始化加载当前hbase表中所有数据到CarbonData表;
insert into table carbon01 select * from external_hbase_table where valid='1';
- 用spark-submit提交命令:
spark-submit --master yarn --deploy-mode client --class com.huawei.bigdata.spark.examples.HBaseExternalHivetoCarbon /opt/example/HBaseExternalHivetoCarbon-1.0.jar
- 什么是Spark_如何使用Spark_Spark的功能是什么
- MapReduce服务_什么是MapReduce服务_什么是HBase
- MRS优势_什么是MRS_MRS功能
- 数据治理中心_数据开发_数据开发示例_使用教程-华为云
- GaussDB开发_GaussDB数据库开发_高斯数据库开发_华为云
- MapReduce服务_什么是ZooKeeper_如何使用ZooKeeper
- MapReduce服务_什么是Loader_如何使用Loader
- MRS备份恢复_MapReduce备份_数据备份
- mysql数据库的特点_mysql数据库同步_安装mysql数据库
- 数据治理中心_数据开发_数据开发能力_脚本和节点介绍-华为云