导入Bigtable数据
本文为您介绍如何将Bigtable数据迁移到Lindorm。
前提条件
注意事项
Bigtable仅支持通过专有网络迁移数据。为确保网络连通性及低延迟,建议将Bigtable实例与Lindorm实例部署在同一VPC内。
您可以通过以下两种方式提升任务运行效率:
调整Executor数量:增加Executor可提升并发处理能力,但也会增加资源开销,建议结合业务负载特征和集群资源配置动态调优。
优化batchSize参数:适当增大batchSize可提高单次数据处理吞吐量,但需结合数据特征调优,避免内存溢出或GC频繁引发性能抖动。
步骤一:启用Bigtable API
读取Bigtable数据需要开启API服务,开启方式请参见使用 IAM 进行 Bigtable 访问权限控制。
步骤二:创建服务账号密钥
创建服务账号密钥并下载到本地,并将文件重命名为GOOGLE_APPLICATION_CREDENTIALS.json
。
步骤三:上传密钥
登录Lindorm管理控制台。
在页面左上角,选择实例所属的地域。
在实例列表页,单击目标实例ID或者目标实例所在行操作列的管理。
在左侧导航栏,单击计算引擎。
单击作业管理页签。
单击上传资源。
在上传资源对话框,上传服务账号密钥文件
GOOGLE_APPLICATION_CREDENTIALS.json
。单击对话框左上角的上传。
步骤四:配置迁移任务
配置主程序启动参数
任务启动参数以JSON格式配置:
{
"bigtable.projectId":"myproject",
"bigtable.instanceId":"myInstanceId",
"bigtable.tableName":"bigtable_name",
"lindorm.seedServer":"ld-bp1hn6yq0yb34****-proxy-lindorm.lindorm.rds.aliyuncs.com:30020",
"lindorm.namespace":"default",
"lindorm.tableName":"lindorm_table_name",
"lindorm.userName":"root",
"lindorm.password":"test****",
"lindorm.batchSize":16
}
参数说明
参数 | 说明 |
bigtable.projectId | Bigtable项目ID。 |
bigtable.instanceId | Bigtable实例ID。 |
bigtable.tableName | Bigtable源表名称。 |
lindorm.seedServer | Lindorm宽表引擎HBase Java API访问连接地址。 |
lindorm.namespace | Lindorm目标命名空间。 |
lindorm.tableName | Lindorm目标表名称。 |
lindorm.userName | Lindorm宽表引擎用户名。 |
lindorm.password | Lindorm宽表引擎的密码。 |
lindorm.batchSize | 批量写入大小。 |
转换Base64编码
将上述主程序启动参数转换为Base64编码,示例如下:
ewoiYmlndGFibGUucHJvamVjdElkIjoibXlwcm9qZWN0IiwKImJpZ3RhYmxlLmluc3RhbmNlSWQiOiJteUluc3RhbmNlSWQiLAoiYmlndGFibGUudGFibGVOYW1lIjoiYmlndGFibGVfbmFtZSIsCgoibGluZG9ybS5zZWVkU2VydmVyIjoibGQtKioqKioqKioqKi1wcm94eS1saW5kb3JtLmxpbmRvcm0ucmRzLmFsaXl1bmNzLmNvbTozMDAyMCIsCiJsaW5kb3JtLm5hbWVzcGFjZSI6ImRlZmF1bHQiLAoibGluZG9ybS50YWJsZU5hbWUiOiJsaW5kb3JtX3RhYmxlX25hbWUiLAoibGluZG9ybS51c2VyTmFtZSI6IioqKioqKioqKiIsCiJsaW5kb3JtLnBhc3N3b3JkIjoiKioqKioqKioqIiwKImxpbmRvcm0uYmF0Y2hTaXplIjoxNgp9
配置数据迁移任务
登录Lindorm管理控制台。
在页面左上角,选择实例所属的地域。
在实例列表页,单击目标实例ID或者目标实例所在行操作列的管理。
在左侧导航栏,单击计算引擎。
单击作业管理页签。
单击创建作业。
在创建作业对话框,自定义作业名称并选择作业类型。
根据作业内容模板,配置以下作业参数,其他参数默认配置。
{ "token": "bf198279-5d1f-4aca-97f7-d16eda2f****", "appName": "bigtable-to-lindorm", "mainResource": "hdfs:///ldps-user-resource/ldps-bigtable-to-lindorm-1.0-SNAPSHOT.jar", "mainClass": "com.alibaba.bds.Main", "configs": { "spark.dynamicAllocation.maxExecutors": "50", "spark.executor.cores":4, "spark.executor.memory":"11264m", "spark.executor.memoryOverhead":"5120m", "spark.kubernetes.executor.disk.size":500 }, "args": ["ewoiYmlndGFibGUucHJvamVjdElkIjoibXlwcm9qZWN0IiwKImJpZ3RhYmxlLmluc3RhbmNlSWQiOiJteUluc3RhbmNlSWQiLAoiYmlndGFibGUudGFibGVOYW1lIjoiYmlndGFibGVfbmFtZSIsCgoibGluZG9ybS5zZWVkU2VydmVyIjoibGQtKioqKioqKioqKi1wcm94eS1saW5kb3JtLmxpbmRvcm0ucmRzLmFsaXl1bmNzLmNvbTozMDAyMCIsCiJsaW5kb3JtLm5hbWVzcGFjZSI6ImRlZmF1bHQiLAoibGluZG9ybS50YWJsZU5hbWUiOiJsaW5kb3JtX3RhYmxlX25hbWUiLAoibGluZG9ybS51c2VyTmFtZSI6IioqKioqKioqKiIsCiJsaW5kb3JtLnBhc3N3b3JkIjoiKioqKioqKioqIiwKImxpbmRvcm0uYmF0Y2hTaXplIjoxNgp9"] }
参数说明
参数
说明
token
提交Spark作业时用于进行计算资源鉴权的token。您可以通过云原生多模数据库 Lindorm控制台获取,单击目标实例ID,在左侧导航栏选择数据库连接,切换至计算引擎页面并查看token值。
appName
作业名称,用于标识任务。
mainResource
JAR包或者Python文件在HDFS或OSS的存储路径。
mainClass
JAR作业的程序入口类。
configs
Spark系统参数配置。此外,如果您已将作业上传至OSS,则需要在此增加以下配置:
spark.dynamicAllocation.maxExecutors:程序最大Executor数量。
spark.executor.cores:单Executor提供的计算槽位数量。
spark.executor.memory:单Executor堆内内存大小,单位为MB。
spark.executor.memoryOverhead:单Executor堆外内存大小,单位为MB。
spark.kubernetes.executor.disk.size:单Executor本地磁盘大小,单位为GB。
args
主程序启动参数的Base64编码。
配置完成后,单击页面右上角的保存并运行。
查看任务运行情况
单击作业列表,查看任务运行详情。