首页 > 其他分享 >Kafka学习

Kafka学习

时间:2022-11-24 18:24:02浏览次数:73  
标签:kafka 学习 source sink file Kafka properties connect

Kafka学习

一、kafka所需的命令

启动kafka要先启动zookeeper,zookeeper学习可以参考bilibili的尚硅谷的教程:07_尚硅谷_zk_本地_安装_哔哩哔哩_bilibili

启动kafka需要执行命令,进入到/opt/module/zookeeper-3.5.7路径下,执行

bin/zkServer.sh start

将start改为status可以查看zookeeper的状态。

kafka启动命令:进入到kafka目录中,/opt/module/kafka。使用命令起到kafka:

bin/kafka-server-start.sh -daemon config/server.properties

停止kafka命令

bin/kafka-server-stop.sh

二、kafka的connect尝试

同步文件

尝试使用connect自带的文件source和sink测试文件的同步更新。

  1. standalone模式启动connect:

​ 其中的一些配置文件说明如下,首先是config目录下的connect-standalone.properties配置文件:

#设置需要连接到的Kafka节点
bootstrap.servers=localhost:9092
# key和value的转换器
key.converter=org.apache.kafka.connect.json.JsonConverter
value.converter=org.apache.kafka.connect.json.JsonConverter
# 是否也转换schema,如果设置为false的话,就只会转换payload
key.converter.schemas.enable=true
value.converter.schemas.enable=true
# offset保存于的文件
offset.storage.file.filename=/tmp/connect.offsets
# 自动刷新Offset的时间,单位时毫秒
offset.flush.interval.ms=10000

​ 因为我们要测试文件的同步,所以我们先编辑source的配置文件connect-file-source.properties,内容如下:

# Source的名字
name=local-file-source
# Source对应的类型
connector.class=FileStreamSource
# Task的数量,因为我们是standalone模式,所以只能是1个。在分布式部署时,可以设置为多个
tasks.max=1
# 需要读取的文件
file=/root/access.log
# 读取消息后存入的主题,这个主题最好提前创建出来,可以提前规划好分区和副本因子
topic=connect-test

​ 对应的sink的配置文件是connect-file-sink.properties

# Sink的名字
name=local-file-sink
# Sink的类型,因为我们是文件的connect,所以这个类不能动
connector.class=FileStreamSink
# Task的数量
tasks.max=1
# sink输出的文件
file=/root/access2.log.sink
# 消费的主题,必须与source的主题一致
topics=connect-test

connect-test主题的创建,如果我们不自己创建的话,connect是会自动创建的,我们就默认由connect自动创建。接着启动connect,使用如下命令进行启动:

bin/connect-standalone.sh -daemon config/connect-standalone.properties config/connect-file-source.properties config/connect-file-sink.properties

​ 对应的三个配置文件分别就是我们刚刚介绍的三个properties文件,运行命令后,查看jps命令,可以看到多了一个ConnectStandalone进程出来。

​ 这就是一个Worker了。下面我测试是否可以进行同步,多开一个ssh选项卡,使用tail -f /root/access2.log.sink 命令追踪该文件内容,可以发现,/root/access2.log.sink文件自动创建出来了,但是source的文件/root/access.log并没有自动创建,下面我们创建该文件touch /root/access.log,并向其中追加内容。通过echo命令新增内容。

​ 如果我修改,将“123”改成“321”的话:

access2.log.sink的内容不会修改。所以该方式是适合日志同步的,因为日志是追加编辑的,并且一般来说不会修改已经写入的内容。

同步数据库

标签:kafka,学习,source,sink,file,Kafka,properties,connect
From: https://www.cnblogs.com/csq-66/p/16922750.html

相关文章

  • Struts2学习总结
    struts2其实主要充当MVC模式的View层,主要是为了代替Servlet获取请求参数那些繁琐的操作。它提供的功能主要有如下2点:1.通过属性绑定和模型绑定来简化传统servlet需要使用req......
  • C# 如何将Word、Excel、PPT转成PDF文件(使用Spire提供的组件)学习
    第一步:新建一个winform项目,下载Spire组件dll下载Spire.Doc、Spire.XLS、Spire.Presentation,路径:工具--NuGet包管理器--管理解决方案NuGet程序包1)Spire.Doc:word转成其它......
  • Hibernate学习总结
    Hibernate主要是在开发中对Dao(databaseaccessobject)层进行操作,因为他主要是操作数据库的,所以hibernate主要用于数据库的增删查改,下面就来一一介绍:1.配置hibernate,在src目......
  • K8S学习记录
    kubelet在启动之后会一直闪烁运行;systemctlstatuskubelet之后,会发现有时候runnning有时候退出,属于一直闪烁。(尚硅谷P34视频最后)systemctl命令 ctl表示controller。......
  • Kafka 日志存储及其清除策略
    Kafka日志存储及其清除策略日志存储结构Kafka存储结构图:kafka中消息是以主题topic为基本单位进行归类的,这里的topic是逻辑上的概念,实际上在磁盘存储是根据分区存......
  • android学习布局管理器的一些心得——基础篇
    LinearLayout---线性布局   在LinearLayout中,如下方法是比较容易忘记的,而且这些方法是LinearLayout常用的方法:1.android:gravity(在代码编程实现中的方法为:setGravit......
  • android学习布局管理器的一些心得2——基础篇
    RelativeLayout-----相对布局1.RelativeLayout不是相对于单体的布局,每一个组件的布局都要依赖另外一个或多个组件,这个布局表示的是一个组件相对于另一个组件(或者是整个Rel......
  • 如何为机器学习进行数据标签、版本控制和管理
    一个丰富食物数据集的案例研究介绍几个月前,托洛卡和ClearML公司一起创建了此联合项目。我们的目标是向其他机器学习的从业者展示从收集数据到将数据输入机器学习模型之......
  • linux学习用到的命令
    创建快件方式ln创建目录的快件方式sudoln-s/root/myhack//root/Desktop以上指令是创建软链接到桌面。ln-s/mnt/hgfs/VMware_share//home/ICer/Vm_Share指令......
  • Vue学习笔记(2)
    31.父子组件通信1.父亲给儿子通信利用props2.儿子给父亲通信,先利用props让父亲给儿子传个函数,再让儿子再调用函数32.todolist案例总结组件化编码流程:(1).拆分静态组......