当前位置: 首页 > news >正文

aws glue配置读取本地kafka数据源

创建连接时填写本地私有ip地址,选择网络配置

image-20231126000238398

配置任务选择kafka作为数据源

image-20231126000336628

但是执行任务时日志显示连接失败

image-20231126000046457

文档提到只能用加密通信

如果您希望与 Kafka 数据源建立安全连接,请选择 Require SSL connection (需要 SSL 连接),并在 Kafka private CA certificate location (Kafka 私有 CA 证书位置) 中,输入自定义 SSL 证书的有效 Amazon S3 路径。对于与自我托管式 Kafka 的 SSL 连接,自定义证书是强制性的。对于 Amazon MSK 则是可选的。

启动带tls加密的kafka

  • https://github.com/PardhuMadipalli/kafka-ssl-docker/tree/main
  • 提前将本机ip地址映射到host,datasource.zhaojiew.work
version: "3"
services:kafka:# image: "pardhu1212/kafka-ssl:0.1.0"image: xxxxxxx.dkr.ecr.cn-north-1.amazonaws.com.cn/kafka-ssl:0.1.0ports:# SSL port- "9093:9093"# Plaintext port- "9094:9094"# zookeeper- "2181:2181"init: trueenvironment:PASSWORD: "Passwd_1qaz"# This can be domain name or IP addressDOMAIN: "datasource.zhaojiew.work"container_name: kafkassl# 非常重要修改hostnamehostname: datasource.zhaojiew.work

复制密钥到本地

docker cp kafkassl:/kafka_2.12-2.5.0/ssl/server.keystore.jks keystore.jks

客户端配置

#client.properties
security.protocol=SSL
ssl.truststore.password=Passwd_1qaz
ssl.truststore.location=/home/ec2-user/download/kafka_2.12-3.0.0/bin/keystore.jks

创建topic

./kafka-topics.sh --bootstrap-server datasource.zhaojiew.work:9093 --command-config client.properties --topic glue --create --partitions 1 --replication-factor 1
Created topic glue.

生产消息

./kafka-console-producer.sh --bootstrap-server datasource.zhaojiew.work:9093 --producer.config client.properties --topic glue

image-20231126040035928

创建glue的connection

image-20231126025105590

出现新的报错,看起来是由于password使用kms加密导致的,关闭账户下的connection加密设置

image-20231126024845614

出现新的报错

image-20231126031713601

image-20231126031918905

检查发现是没有指定ca证书,从容器中拷贝出ca证书指定,出现新的报错

  • 这里可以出连接已经建立成功,只不过由于json消息中包含了嵌套消息导致存储为csv失败

image-20231126033420614

image-20231126033738588

指定ca证书,ca证书在容器的kafka_home/ssl目录下的ca.cert,直接重命名为ca.pem拷贝到s3即可

image-20231126035609615

由于刚才已经发送了错误的消息结构,因此调整为从latest读取,并且输出格式调整为json

image-20231126034257045

成功拿到结果

image-20231126040126911

相关文章:

  • 【Linux】关于获取进程退出状态中的core dump标志补充
  • Google Earth Engine(GEE)深度学习入门教程-Python数据读入篇
  • npm build报错Cannot find module ‘html-webpack-plugin‘解决方法
  • 设计模式—23种设计模式重点 表格梳理
  • cherry-markdown公式不好选中的问题
  • 国产PS插件新选择;StartAI平替中的佼佼者!
  • 微软的野望:下一代操作系统
  • 软考结束。有什么要说的
  • 关于Profinet远程IO模块的超详细讲解
  • 前端 JS 经典:构建工具
  • Java 编程入门:从零开始
  • linux学习(六)
  • 【Linux】:Linux 2.6内核 调度队列和调度原理
  • JavaWeb_SpringBootWeb
  • 手搓顺序表(C语言)
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • Apache Zeppelin在Apache Trafodion上的可视化
  • DOM的那些事
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • IP路由与转发
  • Laravel 实践之路: 数据库迁移与数据填充
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • Python_网络编程
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • XML已死 ?
  • 阿里云应用高可用服务公测发布
  • 分享一份非常强势的Android面试题
  • 使用common-codec进行md5加密
  • 手写一个CommonJS打包工具(一)
  • 详解移动APP与web APP的区别
  • 一、python与pycharm的安装
  • 主流的CSS水平和垂直居中技术大全
  • 正则表达式-基础知识Review
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • (1) caustics\
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (4) PIVOT 和 UPIVOT 的使用
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (Ruby)Ubuntu12.04安装Rails环境
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (笔记自用)LeetCode:快乐数
  • (第二周)效能测试
  • (含笔试题)深度解析数据在内存中的存储
  • (精确度,召回率,真阳性,假阳性)ACC、敏感性、特异性等 ROC指标
  • (十一)手动添加用户和文件的特殊权限
  • (贪心) LeetCode 45. 跳跃游戏 II
  • (一)SpringBoot3---尚硅谷总结
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • (自用)网络编程
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • .Net Remoting(分离服务程序实现) - Part.3
  • .NET 发展历程
  • .net 托管代码与非托管代码