2015-02-05 3 views
0

I 해요 하둡 관리 :하이브, HDFS의 로컬 시스템에 데이터를 다시

내가에서 복제 요인을 찾을 수 없습니다 (8 개 노드의 아파치 하둡 2.4.1 클러스터, 16TB DFS 사용이 새로운 xml 파일 중 하나), 하이브 0.13, MySQL 메타 스토어.

목표 : 클러스터의 데이터를 NFS 드라이브에 백업하고 클러스터를 제거하고 다른 배포판 (Cloudera, Hortonworks)을 설치하고 NFS 드라이브의 데이터를이 새 클러스터에 다시로드하십시오.

하이브 테이블은 956GB (대략 90 억 개의 행)와 32Gb (몇 백만 개의 행)와 몇 개의 작은 테이블이 있습니다.

우려/쿼리 :

  1. 어떻게 백업 드라이브 NFS에 전체 클러스터합니까? 현재 NFS 드라이브가 장착 된 독립형 시스템 (클러스터의 일부가 아님)이 있습니다.
  2. 가장 중요한 방법은 csv/tsv 파일에 테이블을 NFS 드라이브로 내보내는 것입니다. 준비가되었지만 내보낼 때 새로운 클러스터에로드하십시오. 이러한 큰 테이블을 csv/tsv는 나를 불편하게 만들지 만 다른 방법을 생각할 수 없었습니다
  3. distcp는 HDFS 수준에서 내 이해에 따라 작동하므로 HDFS에서 NFS로 더 빨리 복사 할 수 있는지 잘 모르겠습니다. NFS를 새로운 HDFS로 변환합니다. 이것은 Hive 메타 데이터를 백업 한 다음 가능하지 않을 수도있는 새로운 배포판에서 작동해야하기 때문입니다.

HDFS에서 NFS 로의 데이터 이전은 어떻게해야합니까? 다시?

  1. 것은 그 옵션이없는 경우
  2. 버리기 기존 클러스터

을 distcp 사용하여 새 하둡 클러스터

  • 데이터 복사 새 클러스터를 만듭니다

  • 답변

    0

    이러한 단계는 우리가 따를 수 있습니다

    1. ca N 하둡 FS를 사용하여 데이터는 같은 쉘 스크립트는
    0

    사용 Hadoop fs -get 명령을 매개 변수로 HDFS 디렉토리 나 파일 패턴을 복용 nohup을 사용하여 병렬로 실행할 수있는 방식으로 논리를 적용해야합니다

  • 을 -get 복사 파일을 NAS로 전송하십시오. NAS가 hadoop 노드 중 하나에 마운트되었다고 가정합니다. HIVE 메타 데이터의 경우 "SHOW CREATE TABLE tablename" 명령을 실행하여 새 클러스터에서 실행할 수있는 create 문을 가져옵니다.

    위의 단계가 목적에 맞을지라도. 권장되는 옵션은 DISTCP를 사용하여 기존 클러스터에서 새 클러스터로 데이터를 직접 복사하는 것입니다. 및 하이브 DDL 스크립트