gobblin简单使用

栏目: 数据库 · 发布时间: 6年前

内容简介:官网坐标:下载源码 坐标解压后查看目录下是否存在gradle/wrapper/gradle-wrapper.jar 文件

一、下载编译

官网坐标: https://gobblin.apache.org/

下载源码 坐标 https://github.com/apache/incubator-gobblin/releases

解压后查看目录下是否存在gradle/wrapper/gradle-wrapper.jar 文件

若不存在 使用此坐标下载并丢过去 https://github.com/apache/incubator-gobblin/blob/0.12.0/gradle/wrapper/gradle-wrapper.jar

使用 ./gradlew build -x findbugsMain -x test -x rat -x checkstyleMain 编译项目(因网络因素可能有几次失败)

编译后文件apache-gobblin-incubating-bin-0.14.0.tar.gz

二、配置编写

文档坐标: https://gobblin.readthedocs.io/en/latest/

启动命令(需指定配置文件目录,工作目录):

./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


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Two Scoops of Django

Two Scoops of Django

Daniel Greenfeld、Audrey M. Roy / CreateSpace Independent Publishing Platform / 2013-4-16 / USD 29.95

Two Scoops of Django: Best Practices For Django 1.5 is chock-full of material that will help you with your Django projects. We'll introduce you to various tips, tricks, patterns, code snippets, and......一起来看看 《Two Scoops of Django》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具