文档详情

数据迁移实战

re****.1
实名认证
店铺
DOCX
15.12KB
约3页
文档ID:484679135
数据迁移实战_第1页
1/3

迁移hbase数据的3种常用方式HBase迁移数据方案一(两个集群可通信)1、 采用单表拷贝方式注释:可以在本集群中拷贝一张表,也可以将表拷贝到其他的集群中(需要先在目标建表,参考create_table.sh)#hbase org.apache.hadoop.hbase.mapreduce.CopyTable --peer.adr=$PEER:2181:/hbase $tabletable参数指定表名PEER参数指定被拷贝集群的zookeeper地址说明:(1)拷贝完成,不需要重启机器,在new cluster中就可以看到该表;(2)集群间的拷贝过程中,一直卡死在这里:I — ■■ M J *■ II — — ■=14/11/21 18:40:42 INFO mapreduceJok Running job: job_L416535707021_0013结论:拷贝失败原因:原因未知此方式的前提环境是:1) 集群间可互相访问(需要互配host)2) 集群可正常运行MapReduce任务(MR/ Yarn健康)若同步失败,可能的解决办法a) 查看集群见是否可访问b) HBase状态是否正常c) Hadoop Yarn状态是否正常HBase迁移数据方案二(两个集群不可通信)2、 export、import 方式此种方式可以最小到单表时间段迁移,可用于全量迁移。

org.apache.hadoop.hbase.mapreduce.Exportorg.apache.hadoop.hbase.mapreduce.Import参考《HBase数据同步脚本.doc》中“1.线上-线下实时同步”篇结论:失败原因:未知export从源集群中导出表数据过程中,一直卡死在这里:14/11/21 13:40:42 INFO mapreduceJoh Running job: job_L416535707021_M 12通过上述2种方式,可以猜测可能是目标hbase集群(实战中是172.16.6.10)有问题3、get、put 方式利用此种方式,可以最小到单表迁移,如果全表迁移,便利全表就是需要先建表(1) 从源hbase集群中复制出hbase数据库表到本地目录Hadoop fs -get /hbase/data/default/${table}/home/full${table}是表名(hbase中的每个表在hdfs上都会对应一个文件在/hbase/data/default目录下)/home/full是本地文件系统目录/hbase/data/default/是 hdfs 文件系统目录(2) 目标Hbase导入如果hdfs文件系统已经存在/hbase/data/default/${table}目录,则需要先删除此目录 #Hadoop fs -rmr /hbase/data/default/${table} //-rmr 参数是递归删除的意思#Hadoop fs -put /home/full/${table} /hbase/data/defaultbin/hadoop fs -put /home/full/Check_Result /hbase/data/default(将表数据文件放到你需要导入数据的集群上/hbase/data/default/目录下)(3) 修复META表hbase hbck -fixMeta(4) 重新分配数据到各RegionServerhbase hbck -fixAssignments执行此命令时有报错:ERROR: Region { meta => null, hdfs =>hdfs://per-hmaster1:9000/hbase/data/default/userAction_real/dddef71f86b5068609e9406a17e d435f, deployed => } on HDFS, but not listed in hbase:meta or deployed on any region server不知道是否影响hbase数据的正常使用。

验证数据迁移是否成功#bin/hbase shell 进入 hbase shell 终端>list 列出hbase中所有表u serAction_g n ginaI userActiDn_reat userAction_real_web userAction_subniit user^info vie-r^result^a unt 119 F™(s) in 1. W5G seconds:-> [hCheck_Result,ir *Cla55_Scare_Rank_Info,Ba "Messaged ■Faper_fnfci,\ ■Pen_Dsts\ "Pre_3ameTypeJEx; inalR, "Strake_InftaL ''Studlen七_防alysiE_REELjltL "Student_flnal "j ,BStudent_F!ail&d_Question". "Student_F^iled_Qu 12". "Student statistic", " st ud en t_Que5tion_st at is tic ■ r " 5tud en t_sc d re_Rani 13351\ "correct_exsni_] udge_info * u " da /_i d I e_task_c ou nt,h □ Fay. l_d at a_sDu rc e" P iel ds_map pi ng'\ 「et l_keys tep_suc 匚e&s" a 'ome_quKtiori_sciu rce-7 "gradedicf'r ,Bl og_er ro r_an is '■. "log_e,B,~-msg_singla_lo9""psgQ^ctiaO^a"? “归而,npagB_n( actDrH * -questian_image_data"r *question_kncwledge_relation", n".・[]Ljastucin s^era . ”「escan ‘Check_Result’ 浏览Check_Result表中的数据,会显示大量数据值510 ■ : ■ IL iy 11 5-A/UyiSJI- A.-U2AI 1 bU .■ UL'SijaJ' , " 0 L3 EE M3II0 " : ■ eMar 1 n " : " W-Bi; 1 bJbABflLJ bLi /L5L1EB690", "P Jperld": "8BB5178B75t2J5CE877F5ABF76ACAC51 ' d : 14182371L10M, "questiDnUUID' : "BD5E2C10&4FDJ7EBBD453277B750510A"/'iid&Jt' :Q, "metastring- : x5C\i5Cf 5}x+5f", "sta「1 LineTda" :7<"endLineHo'■:7P'^tartlnd&>-:e, "endlndex': 13/errors": [{■ansKSr-lD":" 1'. "ansh'&rl^a":"\xE3\Kfl7\xAB: (I:'\xE趴qE\xBE韦询 _]} = {k_Z:-1$XxE4\vEBXxA3\kE5\x85\: 10,5i = "P "e-rID- !' 53",' ?rrlnfo ' : ^zEBKxADVxA^xETKxAl^xAE"} ]d - = dentld" :^STBiaSCgTeDCeMEFSC 1 BeFSSDBSBDaCC?","cla&sld ":■OETSlC5FA70D4SSFAFD2A1JE37D0SeS3"/'classNaie":" \ ■name"! " ^.{"examl d":" DFBE162GaE4C410Me(2F6Ci7E5Cl EB6S0 '. Tpape rid" : "£96517387 孙 M6CE E77F6fi3F7MCaC61",目前只能通过这种简单的方式判别迁移是否成功,应该不能100%判断迁移成功。

其他1、 从目标集群中导出hbase表名参考 get_table.py从目标集群导出habse表数据,参考export_table_data.sh2、 采用get、put方式迁移数据的脚本参考 import_table_data.sh3、 常用到的命令Hadoop: 操作hdfs文件系统#hadoop fs -ls / 查看hdfs文件系统根目录下#hadoop fs -rmr /hbase/data 递归删除 /hbase/data#hadoop fs -mv /hbase /hbase-bak 移动/hbase 到/hbase-bak#hadoop fs -cp /hbase /hbase-bak 复制/hbase 到/hbase-bak#hadoop fs-get src localDest将文件或目录从HDFS中的src拷贝到本地文件系统localDest#hadoop fs -put localSrc dest将本地文件或目录localSrc上传到HDFS中的dest路径Hbase:#hbase shell 进入 hbase shell 终端。

下载提示
相似文档
正为您匹配相似的精品文档