1.生产者属性配置文件
vi custom_kafka_producer.properties
bootstrap.servers=192.168.1.51:9092,192.168.1.52:9092,192.168.1.53:9092
acks=1
#compression.type=snappy
reconnect.backoff.ms=1000
value.serializer=org.apache.kafka.common.serialization.ByteArraySerializer
key.serializer=org.apache.kafka.common.serialization.ByteArraySerializer
batch.size=102400
linger.ms=10000
security.protocol=SASL_PLAINTEXT --之前的不同点
sasl.kerberos.service.name=kafka --之前的不同点
sasl.mechanism=GSSAPI --之前的不同点
2.设置KRB5配置文件。
vi jaas.conf
KafkaClient {
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
storeKey=true
keyTab="/var/run/cloudera-scm-agent/process/3401-kafka-KAFKA_BROKER/kafka.keytab"
principal="kafka/mycdp3.cdp.com@CDP.COM";
};
3.设置环境变量:vi /etc/profile
export KAFKA_OPTS="-Djava.security.auth.login.config="/root/kafka_demo/jaas.conf"
4..配置OGG-KAFKA数据推送
[root@huajcdp3 dirprm]# cat hs_asset_fundaccount_kafka.props
gg.log=log4j
gg.log.level=info
gg.report.time=30sec
###Kafka Classpath settings ###
gg.classpath=/opt/cloudera/parcels/CDH/lib/kafka/libs/*:dirprm/:/data/ogg/ggjava/resources/lib/*
jvm.bootoptions=-Xmx1024m -Xms1024m -Djava.class.path=./ggjava/ggjava.jar -Dlog4j.configuration=log4j.properties -Djava.security.auth.login.config=/data/ogg/dirprm/kafka_demo/jaas.conf -Djava.security.krb5.conf=/etc/krb5.conf
javawriter.stats.full=TRUE
javawriter.stats.display=TRUE
### native library config ###
goldengate.userexit.nochkpt=TRUE
goldengate.userexit.timestamp=utc
### Kafka handler properties ###
gg.handlerlist = kafkahandler
gg.handler.kafkahandler.type=kafka
gg.handler.kafkahandler.KafkaProducerConfigFile=custom_kafka_producer.properties
gg.handler.kafkahandler.format=delimitedtext
gg.handler.kafkahandler.format.PkUpdateHandling=update
gg.handler.kafkahandler.mode=tx
gg.handler.kafkahandler.format.includeCurrentTimestamp=false
gg.handler.kafkahandler.topicMappingTemplate=HS_ASSET.FUNDACCOUNT_1
gg.handler.kafkahandler.SchemaTopicName=HS_ASSET.FUNDACCOUNT_1
gg.handler.kafkahandler.BlockingSend =false
gg.handler.kafkahandler.includeTokens=false
gg.handler.kafkahandler.mode=op
gg.handler.kafkahandler.format.insertOpKey = I
gg.handler.kafkahandler.format.updateOpKey = U
gg.handler.kafkahandler.format.deleteOpKey = D
注意:标注共色的部分是Oracle OGG同步到基于Kerberos认证的kafka和非Kerberos认证的Kafka的不同之处,其他都是一样的。