2016-12-08 1 views

답변

0

Flume에는 HBase 싱크 인 HBaseSink (org.apache.flume.sink.hbase.HBaseSink)와 AsyncHBaseSink (org.apache.flume.sink.hbase.AsyncHBaseSink)가 있습니다. 이 두 싱크는 결국 비슷한 기능으로 수렴하지만 현재는 각각 다른 이상 몇 가지 장점이 있습니다

HBaseSink의 경우
The AsyncHBaseSink currently gives better performance than the HBaseSink, primarily because it makes non-blocking calls to HBase. 
The HBaseSink will soon support secure HBase clusters (FLUME-1626) and the new HBase IPC which was introduced in HBase 0.96. 

는, 시리얼 라이저는 하나 개 이상의 HBase를 둔다 및/또는 증분에 수로 이벤트를 변환합니다. serializer는 HbaseEventSerializer를 구현해야합니다. 싱크가 Flume 구성 프레임 워크에 의해 시작되면 직렬 변환기가 인스턴스화됩니다. 싱크가 처리 한 각 이벤트에 대해 싱크는 serializer에서 initialize 메서드를 호출합니다. 시리얼 라이저는 Flume Event를 getActions 및 getIncrements 메소드에 의해 리턴되어야하는 HBase put 및 increment로 "변환"해야합니다. 이 풋과 증분은 와이어를 통해 HBase 클러스터로 전송됩니다. 싱크가 멈 추면이 시리얼 라이저 인스턴스는 HBaseSink에 의해 닫힙니다.

AsyncHBaseSink의 serializer는 AsyncHbaseEventSerializer를 구현해야합니다.

이 경우 initialize 메서드는 시작될 때 싱크에서 한 번 호출됩니다. 모든 이벤트에 대해 싱크는 setEvent 메서드를 호출 한 다음 HBaseSink와 비슷한 getActions 및 getIncrements 메서드를 호출합니다. 싱크가 정지하면 (자), 시리얼 화자의 cleanUp 메소드가 불려갑니다. 이 메서드는 표준 HBase Puts 및 Increments를 반환하지 않지만 asynchbase API에서 PutRequest 및 AtomicIncrementRequest를 반환합니다. 이는 HBase Puts 및 Increments와 대략 동일하지만 약간의 차이가 있습니다.