apache gobblin mysql_gobblin简单使用
一、下載編譯
解壓后查看目錄下是否存在gradle/wrapper/gradle-wrapper.jar 文件
使用 ./gradlew build -x findbugsMain -x test -x rat -x checkstyleMain
編譯項目(因網絡因素可能有幾次失敗)
編譯后文件apache-gobblin-incubating-bin-0.14.0.tar.gz
二、配置編寫
啟動命令(需指定配置文件目錄,工作目錄):
./bin/gobblin-standalone.sh start --conf /conf/gobblin --workdir /data/gobblin
也可 vi ~/.bashrc
export GOBBLIN_JOB_CONFIG_DIR=/conf/gobblin
export GOBBLIN_WORK_DIR=/data/gobblin/
以mysql --> canal --> kafka --> gobblin --> mysql 線為例
task-job配置文件
#job 名稱 需唯一必填
job.name=CanalKafkaToMysql
job.group=gobblin
job.description=canal kafka base data to mysql
#是否開啟鎖,需zk支持
job.lock.enabled=false
#kafka相關配置
kafka.brokers=10.174.89.47:9092
#數據源 此處按官網配置將異常
source.class=org.apache.gobblin.source.extractor.extract.kafka.KafkaDeserializerSource
extract.namespace=org.apache.gobblin.extract.kafka
topic.whitelist=dxh_base
#simple.writer.delimiter=\n
#反序列化類型
kafka.deserializer.type=CONFLUENT_JSON
mr.job.max.mappers=1
bootstrap.with.offset=earliest
#寫入mysql
writer.destination.type=MYSQL
writer.builder.class=org.apache.gobblin.writer.JdbcWriterBuilder
#輸出到nohup.out
#writer.builder.class=org.apache.gobblin.writer.ConsoleWriterBuilder
#臨時寫入目錄
writer.staging.dir=/data/gobblin/write-staging
writer.output.dir=/data/gobblin/write-output
#轉換器 多個轉換器按順序
converter.classes=org.apache.gobblin.converter.avro.JsonIntermediateToAvroConverter
converter.classes=org.apache.gobblin.converter.jdbc.AvroToJdbcEntryConverter
#converter.avro.jdbc.entry_fields_pairs={\"src_fn\":\"firstname\",\"src_ln\":\"lastname\"}
#最終提交
data.publisher.type=org.apache.gobblin.publisher.JdbcPublisher
data.publisher.final.dir=/data/gobblin/job-out
data.publisher.replace.final.dir=true
#jdbc相關信息
jdbc.publisher.url=jdbc:mysql://10.174.89.47:3306
jdbc.publisher.driver=com.mysql.jdbc.Driver
jdbc.publisher.username=dxh
jdbc.publisher.password=Dxh2017$$
jdbc.publisher.database_name=dxh_base
jdbc.publisher.table_name=itemsku_tmp
writer.jdbc.batch_size=1000
metrics.reporting.file.enabled=true
metrics.log.dir=/data/gobblin/metrics
metrics.reporting.file.suffix=txt
state.store.dir=/data/gobblin/state-store
注:jdbc需依賴gobblin-sql-0.14.0.jar 文件,若lib目錄下不存在 可在gobblin-modules 找到
流程線:
source --> converter --> writer --> publisher
三、注意事項
1.每個表需要一個topic
2.每個表需要一個job
3.數據導入中會在目標庫建臨時表用于暫存數據,雖然可通過配置關閉,但有丟數據的可能。
4.若不擴展converter,與canal對接需寫各種schema 定義數據,且對sql進行過濾較難實現
5.若擴展converter需注意傳輸格式及schema
總結
以上是生活随笔為你收集整理的apache gobblin mysql_gobblin简单使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 上古情歌电视剧全集1
- 下一篇: mysql 3种报错_MySQL读取Bi