前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >hbase迁移EMR实践

hbase迁移EMR实践

原创
作者头像
EMR小助手
修改2020-12-31 10:37:15
1.1K0
修改2020-12-31 10:37:15
举报
文章被收录于专栏:腾讯云大数据与AI专家服务

一、业务背景: 业务方需要搭建一套hbase集群,数据来源是hive表。 集群数据规模:每天4.5kw个key,420亿条左右数据,平均每个key每天1000个记录。每天总数据量1.2T左右,3备份需要存储2年约2.5P。 为响应公司业务上云,通过腾讯云上EMR搭建hbase集群。hive集群是在IDC机房,和普通集群迁移相比,这涉及到跨机房、跨集群的数据迁移,以及hive表数据到hbase集群数据的转换。 二、技术方案步骤 1、IDC机房与EMR网络的联通性验证

2、在EMR上搭建hbase集群及hive组件

3、迁移hdfs数据,数据校验

4、在目标集群创建对应hive库、表

5、在目标集群中将数据转换为HFile文件、创建hbase表,通过bulkload方式将数据导入hbase表

6、hbase集群性能及数据验证

7、目标集群与调度组件环境通过接口机打通,编排脚本节点任务,整个hive至hbase集群迁移实现自动化调度

三、具体实施

1、IDC机房与EMR网络的联通性验证

      需要自建集群和EMR各个节点网络互通。distcp操作如果有xx 节点无法连接xx节点的异常,说明没有连通,需要继续设置。

2、在EMR上搭建hbase集群,hive组件(略)

3、迁移数据,数据校验

i)迁移数据

    一般在新集群上运行同步,这样同步的作业可以在新集群上运行,对老集群影响较小。

    方式:通过distcp命令同步集群数据

    hadoop distcp -pbug -m xx  源集群   目标集群(hdfs路径为hive表的location位置)

    迁移整体速度受集群间带宽,集群规模影响。

    -m指定map数,和集群规模,数据量有关;先同步几个分区,调整-m参数,找到一个适合该集群的值并评估一下整体时间。

    -bandwidth指定单个map的同步速度,是靠控制副本复制速度实现的,是大概值,由于IDC与EMR 是万兆带宽,就没设置该参数。

   -pb,当源集群中的dfs块的大小与目标集群不一致,需设置该参数,不然会报FileNotFoundException。

   -u,-g, 同步新老集群用户、用户组的权限。

   -p, hdfs有权限设置,确定老集群是否有acl规则,是否要同步,检查dfs.permissions.enabled 和dfs.namenode.acls.enabled的配置新老集群是否一致,按照实际需要修改。如果有acl规则要同步,distcp参数要加-p同步权限参数。如果distcp操作提示xx集群不支持acl,说明对应集群没配置。新集群没配置可以修改配置并重启NM。旧集群不支持,说明旧集群根本就没有acl方面的设置,也不需要同步。

   如果迁移过程中老集群还有写入,可以用-udpate再将变化同步过来。一般完全同步,需要有个短暂的业务停写,以启用双写双算或直接将业务切换到新集群上。由于本业务源数据是按天生成的,并且可以当天同步前天数据,所以没有加update参数。

ii) 数据校验

   通过 hadoop -fs du命令分别统计每个分区数据的大小,与原集群进行对比,做一个初步的数据校验。在第四步完成后通过hive命令统计每个分区的条数做对比。

4、在目标集群创建对应hive库、表

  i) 通过hive -e "create database/table xxx"

 ii) 由于hive的元数据放在MySQL或其他db里,通过上述步骤,并没绑定hive表与数据的关系,需执行msck repair table *** ,修复hive表元数据。

5、在目标集群中将数据转换为HFile文件、创建hbase表,通过bulkload方式将数据导入hbase表

     i) 通过mr生成hfile

       需要注意的是同一个rowkey的不同版本指定不同long型timestamp

     ii) 创建hbase表,通过bulkload方式将数据导入hbase表

        需要注意的是创建hbase表时指定region的划分策略,以及version的最大版本数。

  6、hbase集群性能及数据验证

       通过hbase shell的scan,get命令获取一定量数据,统计所需时间。测试获取最大版本数和在hive里查询的rowkey的个数进行对比,是否一致。

   7、目标集群通过接口机和调度组件环境打通。通过编排脚本节点任务,将数据工厂hive集群迁至EMR的hbase集群过程自动化调度

      在接口机安装EMR上一样的hadoop,hbase集群环境,然后调整脚本中的hadoop,hbase命令为该环境下的,编排脚本任务实施调度。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
弹性 MapReduce
弹性 MapReduce (EMR) 是基于云原生技术和泛 Hadoop 生态开源技术的安全、低成本、高可靠的开源大数据平台。提供易于部署及管理的 Hive、Spark、HBase、Flink、StarRocks、Iceberg、Alluxio 等开源大数据组件,帮助客户高效构建云端企业级数据湖技术架构。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档