복붙노트

[HADOOP] hdfs를 통해 hbase 데이터를 가져 오거나 내보내는 법 (hadoop 명령)

HADOOP

hdfs를 통해 hbase 데이터를 가져 오거나 내보내는 법 (hadoop 명령)

파일 시스템이 hdfs 인 Hbase의 nutch가 크롤링 한 데이터를 저장했습니다. 그런 다음 hdfs의 명령을 사용하여 직접 로컬 디렉토리에 내 데이터 (hbase의 한 테이블)를 복사했습니다.

hadoop fs -CopyToLocal /hbase/input ~/Documents/output

그 후, 나는 그 데이터를 다른 hbase (다른 시스템)에 다음 명령에 따라 복사했다.

hadoop fs -CopyFromLocal ~/Documents/input /hbase/mydata

그것은 hdfs에 저장되며 hbase 쉘에서 list 명령을 사용하면 다른 테이블, 즉 'mydata'로 표시되지만 스캔 명령을 실행하면 'mydata'라는 이름의 테이블이 없다고 표시됩니다.

위의 절차에 문제가 있습니까?  간단한 단어로 :

해결법

  1. ==============================

    1.한 hbase 클러스터에서 테이블을 내보내고 다른 테이블로 가져 오려면 다음 방법 중 하나를 사용하십시오.

    한 hbase 클러스터에서 테이블을 내보내고 다른 테이블로 가져 오려면 다음 방법 중 하나를 사용하십시오.

    Hadoop 사용

  2. ==============================

    2.hbase 테이블을 백업하는 대신 Hbase 명령을 사용할 수있는 경우 map reduce 작업을 사용하여 hfile, 로그 및 스냅 샷 메타 데이터를 다른 파일 시스템 (로컬 / hdfs / s3)에 복사하는 Hbase ExportSnapshot 도구를 사용할 수 있습니다.

    hbase 테이블을 백업하는 대신 Hbase 명령을 사용할 수있는 경우 map reduce 작업을 사용하여 hfile, 로그 및 스냅 샷 메타 데이터를 다른 파일 시스템 (로컬 / hdfs / s3)에 복사하는 Hbase ExportSnapshot 도구를 사용할 수 있습니다.

    로컬 파일 시스템에서 다시 hdfs : /// srv2 : 8082 / hbase로 내 보낸 다음 hbase 쉘에서 restore 명령을 실행하여 스냅 샷에서 테이블을 복구 할 수 있습니다.

     $ ./bin/hbase shell
     hbase> disable 'myTable'
     hbase> restore_snapshot 'myTableSnapshot-122112'
    

    참조 : Hbase 스냅 샷

  3. from https://stackoverflow.com/questions/25909132/how-to-import-export-hbase-data-via-hdfs-hadoop-commands by cc-by-sa and MIT license