2013-07-23 1 views
0

질문은 주로 내 프로젝트에서 3 열 패밀리를 사용하여 테이블을 작성하려고합니다. 기본 복제 번호는 3입니다.하지만 우리는이 복제 번호를 centain 열 패밀리에 대해 변경해야합니다.HBase에서 열 패밀리의 복제를 변경하는 방법

예를 들어, 테이블 이름이 table1이고, 3 개의 열 패밀리, f1, f2, f3을가집니다. 이 경우 f3의 복제 번호를 1으로 설정하려고합니다. 어떻게이 설정을 할 수 있습니까? 소스 코드를 변경하지 않고도 솔루션이 있습니까?

추 신 : hbase 셸 또는 JAVA?

답변

0

나는 이것에 대해 많이 보았다. 내가보기에는 열 패밀리는 말할 것도없고 테이블에 대해 다른 복제를 정의 할 수는 없습니다.

복제 횟수는 전체 테이블에 대한 hbase-site.xml에 정의되어 있습니다. REPLICATION_SCOPE를 사용하여 열 패밀리를 복제할지 또는 정의하지 않을지 정의 할 수 있습니다.

+0

신청 해 주셔서 감사합니다 ~하지만 REPLICATION_SCOPE는 우리의 요구 사항을 충족시킬 수 없습니다. 왜냐하면 우리는 복제 번호가 필요하기 때문에 테이블이 생성 될 때 결정됩니다. 이제는 소스 코드를 변경하려고 시도합니다. – user2610066

0

먼저 복제라는 용어에 약간의 오버로드가 있음을 지정해야합니다.

HBase는 HDFS를 저장소로 사용합니다. HDFS는 HBase가 생성하는 모든 파일을 구성하는 블록을 여러 DataNode에 복제합니다. (http://hadoop.apache.org/docs/stable/hdfs_design.html#Data+Replication 참조)이 값은 열 패밀리 또는 테이블별로 구성 할 수 없습니다. 서버 당 구성 가능합니다. (http://hbase.apache.org/book.html#hdfs_client_conf 참조)

변경하려는 항목이 있으면 새 기능을 요청하는 jira를 제출하는 것이 좋습니다.

HBase에는 한 HBase 클러스터의 편집 내용을 다른 클러스터로 복제 할 수도 있습니다. 이 복제는 미리 쓰기 로그 단위이며 열 패밀리마다 구성 할 수 있습니다. REPLICATION_SCOPE를 1로 설정하면이 지역 서버의 편집 내용을 다른 클러스터에 적용하도록 HBase에 알려줍니다. 이 값을 0으로 설정하면 복제가 해제됩니다.