美文网首页
腾讯云MapReduce emr集群hbase数据导出(Expo

腾讯云MapReduce emr集群hbase数据导出(Expo

作者: 彩色的炮灰 | 来源:发表于2022-11-08 13:42 被阅读0次

    目前使用腾讯云hbase产品(MapReduce emr集群),做历史归档的时候,发现腾讯云对于hbase的归档,并不是很友好,故使用其他方法做全量数据归档。

    环境准备:

    1、MapReduce emr集群
    备注:腾讯云emr集群可以在core节点直接使用 ./hbase shell 登陆hbase。
    2、ssh 登陆服务器后切换hadoop用户: su hadoop
    3、./hbase shell 默认登陆路径:/usr/local/service/hbase/bin

    下面是操作步骤:

    1、先使用一台主机(hbase客户端)连接hbase,使用list命令查看数据库中的表,我们可以看到,此数据库有好几个表分别为:

    [hadoop@10 bin]$ ./hbase shell
    HBase Shell; enter 'help<RETURN>' for list of supported commands.
    Type "exit<RETURN>" to leave the HBase Shell
    Version 1.2.4, rUnknown, Wed Mar  1 12:57:53 CST 2017
    
    hbase(main):001:0> list
    TABLE                                                                                                                                                                                                                                                                                                        
    lvwentao                                                                                                                                                       
    meterdata                                                                                                                                                      
    meterdata_history                                                                                                                                              
    test                                                                                                                                                           
    wentao                                                                                                                                                         
    7 row(s) in 0.3470 seconds
    
    => [ "lvwentao", "meterdata", "meterdata_history", "test", "wentao"]
    hbase(main):002:0> 
    

    2、我们扫描(使用scan命令)一下数据中的数据前行,重点是查看#列族#名,下图可以看到列族名为:xinxi(记住此列族名,导入数据的时候需要创建表和列族)。

    hbase(main):002:0> scan 'wentao'
    ROW                                      COLUMN+CELL                                                                                                           
     1                                       column=xinxi:name, timestamp=1667814892862, value=lili                                                                
     2                                       column=xinxi:name, timestamp=1667814929007, value=city                                                                
    2 row(s) in 0.1130 seconds
    
    hbase(main):003:0>
    
    image.png

    3、退出连接,我们选择Export方式导出数据到本地(选择一个较小的数据库做测试):
    ./hbase org.apache.hadoop.hbase.mapreduce.Export wentao file:///data/test/wentao

    注意: file:///data/test/wentao(最后一级目录(wentao)必须由hbase创建,不能自己创建。)

    4、此时我们查看我们制定的目录下的文件,可以看到目录下有我们的数据库备份文件。

    [root@fastdfs ~]# ls -ld /opt/sl_ev_trips/*
    
    

    5、在第二台hbase中新建表和列族(表名随意,不过建议和原数据库表名相同,列族名必须和原数据库相同):

    hbase(main):079:0> create 'test3','trips'
    0 row(s) in 1.2760 seconds
    
    => Hbase::Table - test3
    hbase(main):080:0> 
    

    6、至此,我们hbase数据库导出成功,可以做到本地备份归档。

    二、下面开始分析踩坑

    1、刚开始导出命令如下:

    ./hbase org.apache.hadoop.hbase.mapreducExport wentao /data/test/wentao

    此命令导出数据可以成功,但不是导出到本地文件夹,而是导出到hdfs文件系统。可以在hdfs文件系统看到导出的文件。
    我们想要将数据导出到本地保存,故使用下面命令:
    ./hbase org.apache.hadoop.hbase.mapreduce.Export wentao file:///data/test/wentao

    2、在命令写正确的情况下,执行会报错:

    Error: java.io.IOException: Mkdirs failed to create file:/data/test/wentao/_temporary/1/_temporary/attempt_1667821207495_0014_m_000000_0 (exists=false, cwd=file:/data/emr/yarn/local/usercache/hadoop/appcache/application_1667821207495_0014/container_e19_1667821207495_0014_01_000002)

    image.png
    看错误可知hadoop需要权限。我们第一步给权限:
    要导到/data盘 可专门在data盘创建一个hadoop有读写权限的目录
    chown -R hadoop:hadoop /data/test

    3、然后将/data/test赋予 777权限
    chmod 777 -R /data/test

    4、此时使用export可以正常导出数据。

    相关文章

      网友评论

          本文标题:腾讯云MapReduce emr集群hbase数据导出(Expo

          本文链接:https://www.haomeiwen.com/subject/saqntdtx.html