아무것도 실제로 '손으로'HFILE을 준비하고 있지만 이렇게에서 사람을 중지하지 것은 당신이 HFILE에 의존하기 시작 (어떤 언어로 잘 될 것입니다) 수 호환성 문제. 이 (https://hbase.apache.org/book/arch.bulk.load.html)에 따라 파일을 HDFS (HBase에 '근접')에 넣고 completebulkload
으로 전화하면됩니다.
제안 된 전략 : 은 - HBase를 소스에서 HFileOutputFormat2.java
파일을 확인하십시오. 표준 MapReduce OutputFormat입니다. 실제로 이것의 기본으로 필요한 것은 KeyValue
요소의 시퀀스입니다 (용어 또는 인터페이스로 말하면 Cell
). - MapReduce에서 HFileOutputFormat2
을 무료로 가져와야합니다. 이것에 대한 작가 논리를 확인하십시오. 이 부분 만 필요합니다. 는 - HFILE에 대한 처리>KeyValue
스트림 - OK, 당신은 Put
효과적인 솔루션을 구축하는 것이 필요합니다. 첫 번째로보아야 할 곳은 TotalOrderPartitioner
과 PutSortReducer
입니다. 당신은 당신이 넣어의 순서를 취할 수있는 솔루션을 모든 단계를 한 경우
(더 문제는 데이터에서 그들을 생성 없습니다) 그 결과는 지역 HFILE 있습니다. 꽤 일하는 것을 얻으려면 일주일이 걸리는 것처럼 보입니다.
단지 좋은 InputFormat과 매퍼를 변환 데이터 (나는 오래 전에 가지고있는) 지금은 모든 것이 전체 클러스터의 전원을 사용하여 작업이 표준 TotalOrderPartitioner
및 HFileOutputFormat2
INSIDE 맵리 듀스 프레임 워크를 사용할 수 있습니다 가지고 있기 때문에 나는이 길을 갈하지 않습니다. 10G SQL 덤프가 5 분 안에로드되어 혼란 스럽습니까? 나 아니야. 단일 서버를 사용하면 속도를 이길 수 없습니다.
OK,이 솔루션은 SQL DB가에서 ETL 프로세스를 수행하기 위해주의 SQL 요청 디자인이 필요합니다. 그러나 이제는 일상적인 절차입니다.