2014-01-23 4 views
0

다음과 같이 많은 컴퓨터에서 접두사 트리로 거대한 시퀀스 목록을 표현하고 저장하고 싶습니다. + 마스터 컴퓨터가 시퀀스의 접두사를 나타냅니다. + n 개의 슬레이브 머신은 각각이 나머지 시퀀스를 포함하는 n 개의 서브 프리픽스 트리를 나타냅니다.Hbase 및 분산 접두어 트리

내 문제를 해결하기 위해 Hbase를 사용할 수 있는지 궁금합니다. 그 점에 대해 나에게 어떤 경험을 나눠 주시겠습니까?

답변

0

아마도 "마스터"의 개념은 HMaster와 정확히 같지 않을 수 있습니다. HMaster는 주어진 테이블 행 세트에 대해 Region을 포함하는 RegionServer를 식별하는 것과 같은 관리 목적으로 사용됩니다. 당신의 테이블의의 행

모든 데이터는 RegionServer의 내부에있을 것입니다. RegionServers와의 데이터 읽기/쓰기는 행이 어느 서버에 있는지 결정하는 것 외에는 HMaster와의 상호 작용없이 수행됩니다.

"마스터"vs "슬레이브"컴퓨터 토폴로지로 돌아와서 : 시퀀스 접두사를 별도의 테이블로 저장하기로 결정할 수 있습니다. 그런 다음 접두사에 대한 RegionServers는 하위 접두사 트리와 별도로 관리 할 수 ​​있습니다. 어떤 경우라도 데이터를 저장하는 "단일 마스터 컴퓨터"가 아니라 하나 이상의 RegionServers에 하나 이상의 지역이 있습니다.

+0

고맙습니다. javadba. 내 토폴로지에서는 마스터 시스템에 많은 쿼리가있는 경우 병목 현상을 방지하기 위해 하나 이상의 마스터 시스템을 사용할 수 있습니다. 어쨌든, 나는 당신의 아이디어를 적용하려고합니다. : =) – htpvl

1

HBase 테이블은 행 키로 사전 식으로 정렬됩니다. 시나리오에서 HBase에 저장된 자연스러운 방법은 하위 트리가 각 접두사 바로 뒤에 오는 것입니다. 즉, 하위 트리가 상위 트리가있는 동일한 영역에있을 가능성이 큽니다 (접미사가 같기 때문에).

만약 당신이 마스터를 보유하고있는 노드와 나머지 노드를 보유하고있는 노드를 갖고 있다면 매우 중요합니다. Javadba는 HBase의 솔루션은 개념을 별도의 테이블로 분리하는 것이며 컴퓨터를 공유하지 않기를 원할 경우 균형을 유지해야합니다.

정확한 물리적 아키텍처가 중요하지 않은 경우 당신이 정말로 원하는 것은 이야기의 효율성입니다. 그래프 데이터베이스를보고 싶어 할 수 있습니다. HBase (또는 Cassandra), Neo4J 등을 기반으로하는 Titan

+0

+1 광산을 보완하는 더 많은 정보를 제공해 주셨습니다. – javadba