2014-04-13 2 views
0

대량로드는 일반적으로지도 사용 HDFS에 파일을 만들 줄이고이 파일은 다음 지역으로 assoicated됩니다 (정확한 나의 이해이다). 경우 먹으 렴, 내 클라이언트 (로컬)이 파일을 만들 수 있습니다 및 HDFS에 넣어 경우HBase를 : 대량로드는

. 우리가 이미 알고있는 키가 무엇인지, 어떤 값을 가지고 있는지, 서버를로드하지 않고 로컬에서 수행 할 수 있는지 확인하십시오. 는 예 누군가 포인트는 HFILE를 생성 할 수있는 방법을

관련

답변

0

아무것도 실제로 '손으로'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 효과적인 솔루션을 구축하는 것이 필요합니다. 첫 번째로보아야 할 곳은 TotalOrderPartitionerPutSortReducer입니다. 당신은 당신이 넣어의 순서를 취할 수있는 솔루션을 모든 단계를 한 경우

(더 문제는 데이터에서 그들을 생성 없습니다) 그 결과는 지역 HFILE 있습니다. 꽤 일하는 것을 얻으려면 일주일이 걸리는 것처럼 보입니다.

단지 좋은 InputFormat과 매퍼를 변환 데이터 (나는 오래 전에 가지고있는) 지금은 모든 것이 전체 클러스터의 전원을 사용하여 작업이 표준 TotalOrderPartitionerHFileOutputFormat2 INSIDE 맵리 듀스 프레임 워크를 사용할 수 있습니다 가지고 있기 때문에 나는이 길을 갈하지 않습니다. 10G SQL 덤프가 5 분 안에로드되어 혼란 스럽습니까? 나 아니야. 단일 서버를 사용하면 속도를 이길 수 없습니다.

OK,이 솔루션은 SQL DB가에서 ETL 프로세스를 수행하기 위해주의 SQL 요청 디자인이 필요합니다. 그러나 이제는 일상적인 절차입니다.