2012-10-02 2 views
3

flume을 사용하여 mysql에서 hbase로 계속로드하는 방법?flume을 사용하여 mysql에서 데이터를 읽는 방법?

저는 sqoop에 익숙하지만 MySQL 소스에서 계속해야합니다. 이렇게하려면 맞춤 소스가 있어야합니까?

+0

http://stackoverflow.com/questions/10548538/flume-to-migrate-data-from-mysql-to-hadoop과 거의 같습니다. –

답변

0

여러 가지 방법이 있지만 MySQL에서 데이터를 가져와 각각에 대해 Avro 이벤트를 생성하는 스크립트를 작성합니다.

그런 다음 내장 된 Avro 소스를 사용하여이 데이터를 수신하여 HDFS 싱크로 전송할 수 있습니다.

0

Sqoop은 RDBMS에서 HDFS/Hive/HBase로 대량 가져 오기에 적합합니다. 한 번만 가져올 수 있다면 매우 좋으며 종이에 약속 한대로 작동합니다. 그러나 실시간 증분 업데이 트를 원할 때 문제가 발생합니다. 두 가지 유형의 증분 업데이트 사이에서 Sqoop은 다음을 지원합니다.

Append이 옵션을 사용하면 sqoop 작업을 다시 실행할 수 있으며 모든 새 작업은 마지막 이전 작업이 끝나는 곳에서 시작됩니다. 예. 첫 번째 sqoop 작업은 0-100 행만 가져 왔고 다음 작업은 --last-value = 100을 기준으로 101에서 시작합니다. 그러나 0-100이 업데이트 되더라도 Append 모드는 더 이상 적용되지 않습니다.

마지막으로 수정 된이 IMHO는 소스 테이블에 행이 마지막으로 업데이트되는 시점을 나타내는 타임 스탬프 필드가 있어야합니다. 그런 다음 타임 스탬프에 따라 증분 업데이트 가져 오기를 수행합니다. 소스 테이블에 이와 같은 것이 없으면이 테이블은 유용하지 않습니다.

원본 DB를 사용하고 있다면 Sqoop을 사용하여 마지막으로 수정 한 모드로 이동할 수 있습니다.

관련 문제