`
Belinda407
  • 浏览: 34232 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

从远端集群拷贝HBase表到本地HBase

 
阅读更多
背景描述:想导出 服务器HBase里面的一张表remine_4520及其数据,我能通过java连接HBase库,浏览器能访问master的信息。
方案:版本一样的话直接distcp表目录过来   然后hbck一下就行
HBase0.94.8,Hadoop 1.1.2,集群使用了loz压缩,远端HBase master节点域名为namenode
期间遇到了各种问题
问题1:执行 ./hadoop distcp hdfs://namenode/hbase/remine_4250 hdfs://127.0.0.1/hbase
      现象:opy failed: java.net.ConnectException: Call to namenode/10.20.5.34:8020 failed on connection exception: java.net.ConnectException: Connection refused
      解决:去60010界面查看HBase Root Directory,发现端口是9000

问题2:执行
./hadoop distcp hdfs://namenode:9000/hbase/remine_4520 hdfs://127.0.0.1:9000/hbase
现象:
(1)ERROR: Region { meta => null, hdfs =>hdfs://127.0.0.1:9000/hbase/remine_4520/ 50fffa73ecb465862055801ed8248428 deployed =>  } on HDFS, but not listed in META or deployed on any region server;
(2)util.HBaseFsckRepair: Region still in transition, waiting for it to become assigned
(3)failed to move out of transition within timeout 120000ms
解决:看看他把region分到了哪个rs上  然后去看那个rs的log
发现只有一个Region Server,于是直接去 $HBASE_HOME$/logs目录查看日志

问题3:现象:
java.io.IOException: Compression algorithm 'lzo' previously failed test.
解决:安装lzo和hadoop-lzo
从hdfs://namenode:60010/logs/**-regionserver-ubuntu.log 界面查看日志,得知远端集群使用的是hadoop-lzo-0.4.15.jar

问题4:下载安装lzo-2.09 http://www.oberhumer.com/opensource/lzo/download/lzo-2.09.tar.gz

$ tar -zxvf lzo-2.09.tar.gz
$ cd lzo-2.09
$ ./configure --enable-shared --prefix /usr/local/lzo-2.09
$ make && sudo make install

问题5:下载安装hadoop-lzo-0.4.15
从https://codeload.github.com/toddlipcon/hadoop-lzo/tar.gz/0.4.15下载
解压后
执行 ant package

编译期间遇到如下问题
参考了http://hi.baidu.com/qingchunranzhi/item/72155fd1ccf5e05bd73aaebc
问题6: [javah] 错误: 找不到类org.apache.hadoop.conf.Configuration。
加入一行
解决: 在 build.xml 里面添加一行
  <target name="compile-java" depends="init">
    <javac
    includeantruntime="false"
     encoding="${build.encoding}"
     srcdir="${java.src.dir}"  
     includes="**/*.java"
     destdir="${build.classes}"
     debug="${javac.debug}"
     optimize="${javac.optimize}"
     target="${javac.version}"
     source="${javac.version}"
     deprecation="${javac.deprecation}">
      <compilerarg line="${javac.args} ${javac.args.warnings}" />
      <classpath refid="classpath"/>
    </javac>

    <copy todir="${build.classes}">
      <fileset dir="${java.src.dir}" includes="**/*.properties"/>
    </copy>

  </target>
问题7: 还是[javah] 错误: 找不到类org.apache.hadoop.conf.Configuration。
解决:在 build.xml 里面添加一行
    <javah classpath="${build.classes}"
           destdir="${build.native}/src/com/hadoop/compression/lzo"
           force="yes"
           verbose="yes">
      <class name="com.hadoop.compression.lzo.LzoCompressor" />
      <class name="com.hadoop.compression.lzo.LzoDecompressor" />
     <classpath refid="classpath" />
    </javah>
问题8:ERROR lzo.GPLNativeCodeLoader: Could not load native gpl library
解决方案:拷贝文件hadoop-lzo-0.4.15/build/native/Linux-amd64-64/lib/*到目标目录
$HADOOP_HOME/lib/native/Linux-amd64-64 和 $HBASE_HOME/lib/native/Linux-amd64-64

问题9:最后执行修复命令
尝试修复错误
./hbase  hbck -fix
修复所有错误
./hbase  hbck -repairHoles

问题10:There is an overlap in the region chain
发现表中有2个region 的startkey相同,实际上是有个region是无数据的。disable表,在hdfs中备份有用的几个region文件夹
然后drop 表
正确顺序如下:
create表,disable,把region文件夹放回来,./hbase  hbck -repairHoles enable ./hbase  hbck -repairHoles

附:hbase classpath设置包含hadoop的?
export HBASE_CLASSPATH=$HBASE_CLASSPATH:`hadoop classpath`
查看目录下文件列表
hadoop fs -ls hdfs://namenode:9000/hbase
编译完hadoop-lzo后,hadoop-lzo-0.4.15.jar要同时拷贝到$HADOOP_HOME/lib和$HBASE_HOME/lib
分享到:
评论

相关推荐

    hbase权威指南

    《HBase权威指南》探讨了如何通过使用与HBase高度集成的Hadoop将HBase的...了解如何调节集群、设计模式、拷贝表、导入批量数据和删除节点等。  《HBase权威指南》适合使用HBase进行数据库开发的高级数据库研发人员阅读

    HBase权威指南

    《hbase权威指南》探讨了如何通过使用与hbase高度集成的hadoop将hbase的...了解如何调节集群、设计模式、拷贝表、导入批量数据和删除节点等。, 《hbase权威指南》适合使用hbase进行数据库开发的高级数据库研发人员阅读

    hbase_libJar包

    此外,还需要配置HBase的配置文件`hbase-site.xml`,设置诸如集群模式(standalone或distributed)、Zookeeper地址等关键参数。例如,如果你的HBase运行在分布式模式下,你需要指定`hbase.cluster.distributed`属性...

    hbase-0.98.9部署

    此外,为了利用Hadoop的本地库,还需要将Hadoop的`lib/native`目录下的库文件拷贝到HBase的相应目录。这样配置完成后,可以在Master节点上启动HBase,然后通过shell或其他客户端工具测试HBase的运行情况。 总的来说...

    hbase学习课件

    - 将 Hadoop 的配置文件 `hdfs-site.xml` 和 `core-site.xml` 拷贝到 HBase 的配置目录下。 通过以上步骤,可以完成 HBase 集群的基础搭建。需要注意的是,在实际部署过程中还需要根据具体环境调整配置参数,以...

    HBase权威指南(中文版).pdf

    《HBase权威指南》探讨了如何通过使用与HBase高度集成的Hadoop将HBase...了解如何调节集群、设计模式、拷贝表、导入批量数据和删除节点等。 《HBase权威指南》适合使用HBase进行数据库开发的高级数据库研发人员阅读。

    HBASE指南中文

    本书探讨了如何通过使用与HBase高度集成的Hadoop将HBase的可伸缩性变得简单;把大型数据集分布到相对廉价的商业服务器集群中;...了解如何调节集群、设计模式、拷贝表、导入批量数据和删除节点等。

    hbase备份恢复实例

    导出/导入是一种相对简单的数据迁移方式,通常用于将数据从一个HBase集群迁移到另一个集群。这种方式虽然简单易用,但效率较低,适合于数据量较小的情况。 #### 六、拷贝表(CopyTable) 拷贝表是指将一个表的所有...

    08 安装配置hbase0.94.9

    - 为了确保HBase与Hadoop版本兼容,需要将Hadoop目录下的 `hadoop-core-1.2.0.jar` 拷贝到 `/usr/hbase/lib` 目录,并替换原有的JAR包。 3. **配置文件**: - 修改 `hbase-env.sh` 文件,设置 `JAVA_HOME` 为你的...

    hbase2.0环境搭建

    hbase2.0环境搭建的知识点可以从多个维度展开,包括环境准备、软件安装、配置调整、服务启动以及性能优化等方面。 首先,环境准备是hbase2.0环境搭建的重要环节。文档中提到需要有hadoop2.7.5环境的搭建和启动,...

    java大数据案例_3HBase

    4. **拷贝配置到其他机器**: 使用`scp`命令将HBase目录复制到其他节点,确保所有节点配置一致。 **三、启动与监控** 1. **启动Hadoop**: 确保Hadoop已经启动,因为HBase依赖于HDFS。 2. **启动HBase**: 使用`start-...

    HBase权威指南中文版

    《HBase权威指南》探讨了如何通过使用与HBase高度集成的Hadoop将HBase的可伸缩性变得简单;把大型数据集分布到相对廉价的商业服务器集群中;...了解如何调节集群、设计模式、拷贝表、导入批量数据和删除节点等。

    hadoop+hbase集群安装

    本文详细介绍了如何在多台服务器上部署Hadoop + HBase集群的过程,包括了从基础环境配置到Hadoop和HBase的具体安装步骤。通过这些步骤,您可以成功地搭建起一个功能完备的分布式计算和存储平台,为大规模数据处理...

    hbase权威指南中文版

    《HBase权威指南》探讨了如何通过使用与HBase高度集成的Hadoop将HBase的可伸缩性变得简单;把大型数据集分布到相对廉价的商业服务器...了解如何调节集群、设计模式、拷贝表、导入批量数据和删除节点等。(仅供学习使用)

Global site tag (gtag.js) - Google Analytics