2012-12-04 4 views
4

Hbase 디자인에 따르면 Hbase는 memstore를 사용하여 쓰기를 저장하며 결국 memstore가 크기 제한에 도달하면 HDMS로 플러시합니다. 이 플러싱 운동은 테마 뒤에 자동으로 발생합니다.Hbase memstore 수동 플러시

내 경우에는 hdfs 마이그레이션을 수행하고 한 클러스터에서 다른 클러스터로 마이그레이션하고 싶습니다. 원본 클러스터에서 hbase 프로세스를 종료하기 전에 메모리에 남아있는 것이 없는지 확인해야합니다. 어쨌든 우리는 memstore가 한계에 도달하지 않은 경우에도 플러시를 수동으로 강제 할 수 있습니까?

== 질문은 더 질문을 ==

을 추가 : 어떻게 플러시가 완료 알 수 있습니까? 측정 항목을 통해?

답변

9

쉘에서 수행 할 수 있습니다. 플러시 'tableName' memstore를 플러시합니다.

하지만 HDFS를 통해 그렇게 할 수있는 방법을 /를 HBase를/테이블 폴더의 백업을 수행하려는 경우입니다 : - 테이블을 비활성화 : (쉘에서 : 사용 안 함 'TABLENAME')를 는 - 파일을 복사 : 하둡 FS를 (쉘에서 : 'tableName'을 활성화하십시오)

또는 CopyTable 또는 Export 도구 (http : //hbase.apache.)를 사용할 수 있습니다. org/book/ops.backup.html)

+0

테이블을 사용하지 않도록 설정하면 메모리가 플러시됩니다. – Shengjie

+0

예. 죄송합니다. 표를 사용 중지하려면 전체 표를 '중지'하십시오. 이는 memstore flush를 의미하며 테이블에 대한 읽기 또는 쓰기는 허용되지 않습니다. – th30z

0

hbase 전체 DB를 마이 그 레이션 할 예정이므로 일괄 처리를 사용하지 않도록 설정할 수 있습니다.

disable_all '.*' 

이렇게하면 hbase가 memstore를 플러시하고 모든 것을 HFiles에 쓰게됩니다. 비활성화 된 후에도 여전히 /hbase/WALs 아래에 일부 WAL이 표시되지만 걱정하지 않아도됩니다. hbase에는 HFiles로 플러시 한 후에도 WAL을 잠시 유지하는 WATT가 있기 때문입니다.
가 귀하의 질문에 대답하는 "플러시가 완료되었는지 확인하는 방법"
은 HBase를 UI로 이동 -> 지역 -> 메모리
확실 그들은 모두 "0"을, Memstore Size을 볼 수 있습니다.