Windows环境下Kafka与Zookeeper安装配置与启动过程
【Kafka源码】Kafka启动过程
【Kafka源码】Kafka启动过程⼀般来说,我们是通过命令来启动kafka,但是命令的本质还是调⽤代码中的main⽅法,所以,我们重点看下启动类Kafka。
源码下下来之后,我们也可以通过直接运⾏Kafka.scala中的main⽅法(需要指定启动参数,也就是server.properties的位置)来启动Kafka。
因为kafka依赖zookeeper,所以我们需要提前启动zookeeper,然后在server.properties中指定zk地址后,启动。
下⾯我们⾸先看⼀下main()⽅法:def main(args: Array[String]): Unit = {try {val serverProps = getPropsFromArgs(args)val kafkaServerStartable = KafkaServerStartable.fromProps(serverProps)// attach shutdown handler to catch control-cRuntime.getRuntime().addShutdownHook(new Thread() {override def run() = {kafkaServerStartable.shutdown}})kafkaServerStartable.startupkafkaServerStartable.awaitShutdown}catch {case e: Throwable =>fatal(e)System.exit(1)}System.exit(0)}我们慢慢来分析下,⾸先是getPropsFromArgs(args),这⼀⾏很明确,就是从配置⽂件中读取我们配置的内容,然后赋值给serverProps。
第⼆步,KafkaServerStartable.fromProps(serverProps),object KafkaServerStartable {def fromProps(serverProps: Properties) = {KafkaMetricsReporter.startReporters(new VerifiableProperties(serverProps))new KafkaServerStartable(KafkaConfig.fromProps(serverProps))}}这块主要是启动了⼀个内部的监控服务(内部状态监控)。
Kafka安装及配置过程
Kafka安装及配置过程⼀.安装2.Kafka与scala版本也有关系。
3.kafka安装之前需要提前配置好hadoop集群与zookeeper集群。
kafka是依赖于zookeeper集群的。
hadoop集群:master,slave1,slave24.解压:tar -zxvf kafka_2.12-2.5.1.tgz -C /usr/hadoop⼆.修改配置⽂件进⼊解压⽂件 /usr/hadoop/kafka_2.12-2.5.1/config 这个⽬录下1.修改 server.properties#broker的全局唯⼀编号,不能重复broker.id=0#⽤来监听链接的端⼝,producer或consumer将在此端⼝建⽴连接port=9092#处理⽹络请求的线程数量work.threads=3#⽤来处理磁盘IO的线程数量num.io.threads=8#发送套接字的缓冲区⼤⼩socket.send.buffer.bytes=102400#接受套接字的缓冲区⼤⼩socket.receive.buffer.bytes=102400#请求套接字的缓冲区⼤⼩socket.request.max.bytes=104857600#kafka消息存放的路径log.dirs=/usr/hadoop/kafka_2.12-2.5.1/data#topic在当前broker上的分⽚个数num.partitions=2#⽤来恢复和清理data下数据的线程数量num.recovery.threads.per.data.dir=1#segment⽂件保留的最长时间,超时将被删除log.retention.hours=168#滚动⽣成新的segment⽂件的最⼤时间log.roll.hours=168#⽇志⽂件中每个segment的⼤⼩,默认为1Glog.segment.bytes=1073741824#周期性检查⽂件⼤⼩的时间log.retention.check.interval.ms=300000#⽇志清理是否打开log.cleaner.enable=true#broker需要使⽤zookeeper保存meta数据zookeeper.connect=master:2181,slave1:2181,slave2:2181#zookeeper链接超时时间zookeeper.connection.timeout.ms=6000#partion buffer中,消息的条数达到阈值,将触发flush到磁盘log.flush.interval.messages=10000#消息buffer的时间,达到阈值,将触发flush到磁盘log.flush.interval.ms=3000#删除topic需要server.properties中设置delete.topic.enable=true否则只是标记删除delete.topic.enable=true#此处的为本机IP(重要),如果不改,则客户端会抛出:Producerconnection to localhost:9092 unsuccessful 错误!=master注:broker.id=0 这个配置在每个配置节点上要修改不同的值。
Window下zookeeper安装和启动
Window下zookeeper安装和启动请参考和1.下载稳定的最新版本的zookeeper,这⾥下载了zookeeper-3.5.7版本注意 apache-zookeeper-3.5.7-bin.tar.gz 才是启动zookeepr需要的,千万别下载错。
2.解压缩 apache-zookeeper-3.5.7-bin.tar.gz 。
在该⽂件夹下打开cmd命令,使⽤如下命令解压缩⽂件tar -zxvf apache-zookeeper-3.7.7-bin.tar.gz3.复制/conf ⽂件夹下的zoo_sample.cfg 并重命名为zoo.cfg。
修改zoo.cfg⽂件如下(配置log路径)添加如下两⾏三⾏设置log⽂件路径并修改zookeeper的启动端⼝为8082,默认为8080dataDir=C:\\zookeeper\\apache-zookeeper-3.5.7-bin\\datadataLogDir=C:\\zookeeper\\apache-zookeeper-3.5.7-bin\\logadmin.serverPort=8082完整⽂件如下# The number of milliseconds of each ticktickTime=2000# The number of ticks that the initial# synchronization phase can takeinitLimit=10# The number of ticks that can pass between# sending a request and getting an acknowledgementsyncLimit=5# the directory where the snapshot is stored.# do not use /tmp for storage, /tmp here is just# example sakes.dataDir=C:\\zookeeper\\apache-zookeeper-3.5.7-bin\\datadataLogDir=C:\\zookeeper\\apache-zookeeper-3.5.7-bin\\log# the port at which the clients will connectclientPort=2181# the maximum number of client connections.# increase this if you need to handle more clients#maxClientCnxns=60## Be sure to read the maintenance section of the# administrator guide before turning on autopurge.## /doc/current/zookeeperAdmin.html#sc_maintenance## The number of snapshots to retain in dataDir#autopurge.snapRetainCount=3# Purge task interval in hours# Set to "0" to disable auto purge feature#autopurge.purgeInterval=1#change server port, 8080 by defaultadmin.serverPort=80824.修改 bin\zkEnv.cmd⽂件,配置JAVA_HOME,否则启动zookeepr会报错参考添加set JAVA_HOME="C:\java\jdk1.8.0_212-X64"修改后的部分zkEnv.cmd⽂件如下@REM setup java environment variablesset JAVA_HOME="C:\java\jdk1.8.0_212-X64"if not defined JAVA_HOME (echo Error: JAVA_HOME is not set.goto :eof)set JAVA_HOME=%JAVA_HOME:"=%if not exist "%JAVA_HOME%"\bin\java.exe (echo Error: JAVA_HOME is incorrectly set: %JAVA_HOME%echo Expected to find java.exe here: %JAVA_HOME%\bin\java.exegoto :eof)5.启动zookeeper,在/bin⽬录下打开cmd窗⼝,并执⾏命令 zkServer.cmd。
kafka入门教程
kafka入门教程
Kafka是一个分布式流处理平台,被广泛应用于大数据处理和
实时数据流处理的场景。
它具有高吞吐量、可扩展性强、持久性和容错能力、以及多种数据处理模式等特点。
本教程将引导你进入Kafka的世界,教你如何安装、配置和使
用Kafka。
下面是教程内容概述:
1. 下载和安装Kafka
首先,你需要从Kafka的官方网站上下载最新版本的Kafka。
接下来,我们将介绍如何在不同操作系统上进行安装和配置。
2. 配置Kafka
在安装完成后,你需要对Kafka进行一些必要的配置。
这包
括设置Zookeeper连接、主题(Topic)的配置、分区(Partition)的配置等。
3. 创建生产者和消费者
一旦配置完成,你就可以创建Kafka的生产者和消费者实例了。
生产者可将消息发送到指定的主题,消费者则可以订阅特定的主题并消费其中的消息。
4. 发送和接收消息
通过创建生产者并将消息发送至主题,你可以实现向Kafka
集群发送消息的功能。
消费者可以通过订阅主题并接收消息来完成消息消费的功能。
5. Kafka的高级特性
在熟悉基本使用后,你还可以学习一些更高级的Kafka特性,如消息分区、消息持久化、消息的顺序性等。
6. 故障处理和调优
正确处理故障和进行性能优化是使用Kafka的关键。
我们将
介绍一些常见的故障处理和性能优化技巧。
通过本教程,你将能够迅速上手使用Kafka,并了解它的基本
概念和常用功能。
希望这对你入门Kafka有所帮助!。
Zookeeper配置开机启动
Zookeeper配置开机启动ZooKeeper是Hadoop的正式子项目;Hadoop是一个分布式系统基础架构,由Apache基金会所开发;Zookeeper能够用来leader选举;也就是你有N+1台同样的服务器的时候又zookeeper来决定谁是主服务器;当我们配置好zookeeper之后都希望当系统重启之后能够自动启动zookeeper程序;今天小编就为大家介绍如何得配置zookeeper的开机启动本次演示环境是在Centos7下完成的;其他版本的centos都是一样的操作步骤如下:1.请自行下载安装配置zookeeper的服务器环境本经验仅仅介绍如何配置zookeeper的开机自动启动2.首先请登陆你的linux服务器,用cd 命令切换到/etc/rc.d/init.d/目录下3.接着用touch zookeeper创建一个文件4.然后为这个文件添加可执行权限chmod +x zookeeper5.接着用vi zookeeper来编辑这个文件6.接着在zookeeper里面输入如下内容(路径根据实际情况编写)#!/bin/bash#chkconfig:2345 20 90#description:zookeeper#processname:zookeepercase $1 instart) su root /usr/local/sw/zookeeper/bin/zkServer.sh start;;stop) su root /usr/local/sw/zookeeper/bin/zkServer.sh stop;;status) su root /usr/local/sw/zookeeper/bin/zkServer.sh status;;restart) su root /usr/local/sw/zookeeper/bin/zkServer.sh restart;;*) echo "require start|stop|status|restart" ;;esac输入:wq 保存退出7.这个时候我们就可以用service zookeeper start/stop来启动停止zookeeper服务了8.最后一点我们需要开机自动启动,所以需要添加到启动里面。
kafka+zookeeper篇(组件、原理、使用场景、面试)
kafka zookeeper篇(组件、原理、使用场景、面试)Kafka与Zookeeper的结合:1. Kafka是一个开源流处理平台,提供流数据生产和消费的服务。
它主要用于构建实时数据流管道和应用,如日志收集、消息分发、流数据处理等。
2. Zookeeper是一个分布式协调服务,提供分布式应用程序的数据同步、配置管理和服务发现等功能。
Kafka依赖于Zookeeper来管理集群的元数据信息和协调集群中的broker节点。
Kafka与Zookeeper的结合原理:1. Kafka集群中的每个broker节点都会将自己注册到Zookeeper中,并保存自身的元数据信息,如配置信息和broker状态等。
2. Zookeeper保存了整个Kafka集群的元数据信息,包括Topic信息、Partition信息和Broker信息等。
这些信息对Kafka的分布式协调非常重要,可以确保Kafka 集群的正常运行。
3. 当Kafka客户端进行生产或消费操作时,它会首先与Zookeeper进行交互,获取集群的状态信息和元数据信息,然后根据这些信息进行相应的操作。
Kafka与Zookeeper的使用场景:1. Kafka在实时数据处理领域广泛应用,如日志收集、消息分发和流数据处理等。
它可以处理大量的数据流,并提供高吞吐量和低延迟的服务。
2. Zookeeper常用于分布式系统中的协调和服务发现。
它可以管理分布式节点的状态信息和元数据信息,提供一致性和可靠性保证。
Kafka与Zookeeper的面试问题:1. Kafka是什么?它有哪些特点?2. Zookeeper是什么?它有哪些功能?3. Kafka与Zookeeper的关系是什么?它们是如何结合的?4. Kafka如何保证数据的安全性和可靠性?5. Zookeeper在Kafka中的作用是什么?它如何管理Kafka集群的元数据信息?。
kafka在windows下的安装和配置
kafka在windows下的安装和配置博主最近在学习有关kafka的配置安装以及在spring的集成使⽤。
但⽹上关于kafka的配置参考资料基本都是于linux下的配置,于是博主在整理了相关windows下kafka的配置记录在博客⾥。
由于是简单配置所以在这⾥只建了⼀个topic以及⼀个producer和两个consumer。
在官⽹上下载 zookeeper和kafka(我下的版本kafka_2.11-0.11.0.0,这个版本中bin⽬录下有windows⽬录),注意不要下载源码包(名字中带有src),否则启动的时候会报错。
1、配置好jdk环境2、解压zookeeper到指定⽬录,找到解压后⽬录中conf⽂件夹中zoo_sample - 副本.cfg⽂件,复制在conf中改名为zoo.cfg。
在bin⽂件夹中打开zkServer.bat启动zookeeper。
⾄此,zookeeper启动完成。
3、解压kafka到指定⽬录。
查看kafka根⽬录中config⽂件夹下server.properties,确认其中关于zookeeper的连接端⼝和zookeep中zoo.cfg的端⼝⼀致。
3.1、启动kafka 在cmd中进⼊kafka根⽬录。
输⼊以下命令: .\bin\windows\kafka-server-start.bat .\config\server.properties kafka启动成功 3.2、创建topic 在cmd中进⼊kafka\bin\windows⽬录,输⼊以下命令: kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test 创建成功 3.3、创建kafka producer 在cmd中进⼊kafka\bin\windows⽬录,输⼊以下命令: kafka-console-producer.bat --broker-list localhost:9092 --topic test 注意这⾥的端⼝和server.properties的端⼝号⼀致。
windows下部署kafka日记_20150514
1.修改 log4j.properties 文件中的“kafka.logs.dir=logs ”为“kafka.logs.dir=/tmp/logs”。
2.修 改 test-log4j.properties 文 件 中 的 4 处 “ File=logs/server.log ” 为
“File=/tmp/logs/server.log”。
打开命令提示符窗口,在 kafka_2.11-0.8.2.1/bin 目录下执行如下命令: kafka-console-producer.bat --broker-list localhost:9093 --topic my-replicated-topic 启动成功后,即可在此窗口输入测试内容,回车后即可发送成功。
十二、未解决的异常信息
命令提示符还会输入一些异常信息,还未解决。但是目前看,不影响使用。 1. 启动 kafka 时: [2015-05-14 17:36:50,027] INFO Initiating client connection, connectString=localhost:2181 sessionTimeout=6000 watcher=org.I0Itec.zkclient.ZkClient@2e716cb7 (org.apache.zo okeeper.ZooKeeper) [2015-05-14 17:36:50,058] INFO Opening socket connection to server 127.0.0.1/127.0.0.1:2181. Will not attempt to authenticate using SASL (ng.SecurityException: 无 法定位登录配置) (org.apache.zookeeper.ClientCnxn) [2015-05-14 17:36:50,063] INFO Socket connection established to 127.0.0.1/127.0.0.1:2181, initiating session (org.apache.zookeeper.ClientCnxn) [2015-05-14 17:36:50,110] INFO Session establishment complete on server 127.0.0.1/127.0.0.1:2181, sessionid = 0x14d51c7fc560000, negotiated timeout = 6000 (org.apache.zoo keeper.ClientCnxn) [2015-05-14 17:36:50,112] INFO zookeeper state changed (SyncConnected) (org.I0Itec.zkclient.ZkClient) [2015-05-14 17:36:50,273] INFO Loading logs. (kafka.log.LogManager) [2015-05-14 17:36:50,323] INFO Recovering unflushed segment 0 in log my-replicated-topic-0.
kafka安装及配置过程
kafka安装及配置过程⼀、安装kafka根据Scala版本不同,⼜分为多个版本,我不需要使⽤Scala,所以就下载官⽅推荐版本kafka_2.12-2.4.0.tgz。
使⽤tar -xzvf kafka_2.12-2.4.0.tgz 解压为了使⽤⽅便,可以创建软链接kafka0⼆、Zookeeper配置当前下载的kafka程序⾥⾃带Zookeeper,可以直接使⽤其⾃带的Zookeeper建⽴集群,也可以单独使⽤Zookeeper安装⽂件建⽴集群。
1. 单独使⽤Zookeeper安装⽂件建⽴集群Zookeeper的安装及配置可以参考另⼀篇博客,⾥⾯有详细介绍2. 直接使⽤其⾃带的Zookeeper建⽴集群kafka⾃带的Zookeeper程序脚本与配置⽂件名与原⽣Zookeeper稍有不同。
kafka⾃带的Zookeeper程序使⽤bin/zookeeper-server-start.sh,以及bin/zookeeper-server-stop.sh来启动和停⽌Zookeeper。
⽽Zookeeper的配制⽂件是config/zookeeper.properties,可以修改其中的参数(1)启动Zookeeperbin/zookeeper-server-start.sh -daemon config/zookeeper.properties加-daemon参数,可以在后台启动Zookeeper,输出的信息在保存在执⾏⽬录的logs/zookeeper.out⽂件中。
对于⼩内存的服务器,启动时有可能会出现如下错误os::commit_memory(0x00000000e0000000, 536870912, 0) failed; error='Not enough space' (errno=12)可以通过修改bin/zookeeper-server-start.sh中的参数,来减少内存的使⽤,将下图中的-Xmx512M -Xms512M改⼩。
Ubuntu18.04设置Zookeeper和kafka开机自启动
Ubuntu18.04设置zookeeper和kafka开机自启动1 进入/etc/init.d/目录cd /etc/init.d/2 创建zookeeper文件touch zookeeper3 赋予文件权限sudo chmod +x zookeeper4命令写入执行脚本vim zookeeper#! /bin/sh### BEGIN INIT INFO# Short-Description: Zookeeper# Description: Zookeeper# Provides: flex# Required-Start: $local_fs $network# Required-Stop: $local_fs# Default-Start: 2 3 4 5# Default-Stop: 0 1 6### END INIT INFOcase "$1" instart)su -l root -c ' /usr/local/hcj/zookeeper-3.3.4/bin/zkServer.sh start'exit 0;;stop)su -l root -c ' /usr/local/hcj/zookeeper-3.3.4/bin/zkServer.sh stop' exit 0;;*) echo 'require start|stop'exit 1;;esac5重新载入配置文件systemctl reload zookeeper6设置启动开机自启动systemctl enable zookeeper7重启reboot8查看是否启动成功sudo jps9 kafka自启动vim /etc/rc-local#添加以下启动脚本cd /home/hcj/kafka/kafka_2.11-1.0.2bash bin/kafka-server-start.sh -daemon config/server.properties bash bin/kafka-server-start.sh -daemon config/server1.properties bash bin/kafka-server-start.sh -daemon config/server2.properties如果启动不成功修改启动文件配置vim kafka-run-class.sh将JAVA_MAJOR_VERSION=$($JAVA -version 2>&1 | sed -E -n 's/.* version "([^.-]*).*"/\1/p')修改为JAVA_MAJOR_VERSION=$($JAVA -version 2>&1 | sed -E -n 's/.* version "([^.-]*).*/\1/p')[Unit]# Zookeeper服务的描述Description=Zookeeper Service# 服务依赖—在什么服务之后启动,一般为在网络服务启动后启动After=network.target[Service]# 服务类型—如果是shell脚本的方式,则Type=forking,否则不指定作何值(也就是去掉该配置项)Type=forking# 启动环境参数# 此脚本指定了Zookeeper日志和Java的目录Environment=ZOO_LOG_DIR=/usr/local/hcj/zookeeper-3.3.4/log/Environment=JAVA_HOME=/usr/local/hcj/jdk1.8.0_231# 启动命令ExecStart=/usr/local/hcj/zookeeper-3.3.4/bin/zkServer.sh start# 停止命令ExecStop=/usr/local/hcj/zookeeper-3.3.4/bin/zkServer.sh stop# 重启命令ExecReload=/usr/local/hcj/zookeeper-3.3.4/bin/zkServer.sh restart[Install]WantedBy=multi-user.target。
ZooKeeper设置开机启动
ZooKeeper设置开机启动1 在init.d⽬录下新建脚本⽂件进⼊到/etc/rc.d/init.d⽬录下,命令是:cd /etc/rc.d/init.d新建⼀个名为zookeeper的⽂件,命令是:touch zookeeper如图:1.1⽂件内容的第⼀种⽅案(推荐)使⽤vim命令修改⽂件内容,⽂件内容的写法有很多,除了上⾯的第⼀种⽅案,⽤下⾯的这种也可以:#!/bin/bash#chkconfig: 2345 10 90#description: service zookeeperexport JAVA_HOME=/opt/java/jdk1.8.0_121export ZOO_LOG_DIR=/opt/zookeeper/logZOOKEEPER_HOME=/opt/zookeeper/zookeeper-3.4.10su root ${ZOOKEEPER_HOME}/bin/zkServer.sh "$1"1.2⽂件内容的第⼆种⽅案使⽤vim命令修改⽂件内容,⽂件内容是:#!/bin/bash#chkconfig: 2345 10 90#description: service zookeeperexport JAVA_HOME=/usr/java/jdk1.7.0_45export ZOOKEEPER_HOME=/usr/local/zookeeper/zookeeper-3.4.6case "$1" in start) su root ${ZOOKEEPER_HOME}/bin/zkServer.sh start;; start-foreground) su root ${ZOOKEEPER_HOME}/bin/zkServer.sh start-foreground;; stop) su root ${ZOOKEEPER_HOME}/bin/zkServer.sh stop;; status) su root ${ZOOKEEPER_HOME}/bin/zkServer.sh status;; restart) su root ${ZOOKEEPER_HOME}/bin/zkServer.sh restart;; upgrade)su root ${ZOOKEEPER_HOME}/bin/zkServer.sh upgrade;; print-cmd)su root ${ZOOKEEPER_HOME}/bin/zkServer.sh print-cmd;; *) echo "requirestart|start-foreground|stop|status|restart|print-cmd";;esac1.3 其他说明注意1:新建⽂件的命令是touch,编辑⽂件的命令⽤vi和vim都⾏。
kafka使用手册
kafka使用手册Kafka是一种开源的分布式消息传递系统,由于其高效性以及可扩展性,近年来在大数据应用领域中越来越得到广泛的使用。
下面就来介绍一下如何使用Kafka。
安装Kafka首先需要从Apache Kafka官方网站上下载最新版本的Kafka。
下载完成后,解压缩到本地磁盘中。
启动Kafka启动Kafka需要依次启动多个服务,以下是完整的启动顺序:- ZooKeeper服务- Kafka服务首先启动ZooKeeper服务,进入到Kafka解压缩后的目录,运行以下命令:$ bin/zookeeper-server-start.sh config/zookeeper.properties接着启动Kafka服务,同样是在Kafka目录下运行以下命令:$ bin/kafka-server-start.sh config/server.properties创建Topic在Kafka中,消息以Topic为单位进行传输。
每个Topic会被分成多个Partition,每一个Partition顺序存储消息。
创建Topic可以使用以下命令:$ bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic <topic-name>- --zookeeper:指定ZooKeeper的地址。
- --replication-factor:指定同一Topic消息的备份数量,大于1时表示开启了数据冗余。
- --partitions:指定Topic分区的数量。
- --topic:指定Topic的名字。
生产消息使用命令行工具进行消息生产,可以使用以下命令:$ bin/kafka-console-producer.sh --broker-list localhost:9092 --topic <topic-name>- --broker-list:指定了Kafka Broker的地址列表。
Windows环境下Kafka与Zookeeper安装配置与启动过程
Windows环境下Kafka与Zookeeper安装配置与启动过程1.软件下载1.1下载jdk1.8.0_601.2 下载zookeeper-3.4.9.tar.gz1.3下载kafka_2.12-0.10.2.0.tgz2.环境准备安装配置java环境,配置jdk1.8为操作系统java运行时环境2.1安装jdk1.8将网站下载的jdk1.8.0_60压缩包解压缩到c:\program files\java目录下,如下图:2.2 配置java环境如图在“控制面板--系统和安全--系统”页,鼠标点击“高级系统设置”,在弹出的“系统属性”页面选择高级tab页:点击“环境变量”按钮后,在弹出的环境变量对话框中点击“系统变量”栏中的“新建”按钮,在弹出的“新建系统变量”窗口中输入如下::点确定确定后,再配置JRE_HOME同时打开一个cmd窗口在其中输入:SET JA V A_HOME=C:\Program Files\Java\jdk1.8.0_60SETCLASSPATH=.;%JA V A_HOME%/lib/dt.jar;%JA V A_HOME%/lib/tools.jar;%JRE_HOME%\lib\;%JRE_HOME%\lib\r t.jar;%JRE_HOME%\lib\jce.jar;%JRE_HOME%\lib\metadata-extractor-2.4.0-beta-1.jar;%JRE_HOME%\lib\mediautil-1.0.jar;SET Path=%JA V A_HOME%\bin;%JA V A_HOME%\jre\bin;在命令行输入java -version,输出如下,表明系统已启用java配置3.Zookeeper安装配置3.1 解压与目录设计在目录e:\apache\zookeeper\下解压文件zookeeper-3.4.9.tar.gz,并将解压文件夹改名为zk0,复制该文件夹到相同目录下分别改名为zk1、zk2.3.2在zk0\zk1\zk2目录下都创建空文件夹data和logs,如下图3.2在data目录中创建文件myid,设置zookeeper服务器的序号。
Kafka在windows下的配置使用
Kafka在windows下的配置使⽤下⾯就开始配置和使⽤1、下载2、下载完成之后,直接解压,⽬录结构是这样的bin⽬录是各种启动⽂件,config是相关参数配置⽂件,logs是⾃建的⽇志⽂件,libs是使⽤到的相关jar⽂件启动⽂件中有windows项,⽤例直接启动相关服务。
3、修改配置参数进⼊config⽬录,编辑 server.properties⽂件,找到并编辑log.dirs= D:\\Tools\\kafka_2.11-1.0.0\\logs,找到并编辑zookeeper.connect=localhost:2181。
表⽰本地运⾏。
(Kafka会按照默认,在9092端⼝上运⾏,并连接zookeeper的默认端⼝:2181)4、启动服务,在dos服务下输⼊下⾯命令进⾏启动D:\tools\kafka_2.12-2.1.0\bin\windows\zookeeper-server-start.bat D:\tools\kafka_2.12-2.1.0\config\zookeeper.properties⾸先启动,zookeeper服务,对应加载zookeeper的配置⽂件,kafka依赖zookeeper监控其状态D:\tools\kafka_2.12-2.1.0\bin\windows\kafka-server-start.bat D:\tools\kafka_2.12-2.1.0\config\server.properties然后启动kafka服务,对应加载相应配置⽂件查看现有主题 topic查看 broker6、编写测试类查看相关状况import org.apache.kafka.clients.consumer.ConsumerRebalanceListener;import org.apache.kafka.clients.consumer.ConsumerRecord;import org.apache.kafka.clients.consumer.ConsumerRecords;import org.apache.kafka.clients.consumer.KafkaConsumer;import mon.TopicPartition;import java.util.Arrays;import java.util.Collection;import java.util.Properties;/*** Created by songxiaofei on 2018-12-27.*/public class ConsumerMessage {public static void main(String[] args){Properties props = new Properties();props.put("bootstrap.servers", "10.1.9.3:9092");props.put("group.id", "test");props.put("mit", "true");props.put("mit.interval.ms", "1000");props.put("key.deserializer", "mon.serialization.StringDeserializer");props.put("value.deserializer", "mon.serialization.StringDeserializer");final KafkaConsumer<String, String> consumer = new KafkaConsumer<String,String>(props);consumer.subscribe(Arrays.asList("buy"),new ConsumerRebalanceListener() {public void onPartitionsRevoked(Collection<TopicPartition> collection) {}public void onPartitionsAssigned(Collection<TopicPartition> collection) {//将偏移设置到最开始consumer.seekToBeginning(collection);}});while (true) {ConsumerRecords<String, String> records = consumer.poll(100);for (ConsumerRecord<String, String> record : records)System.out.printf("offset = %d, key = %s, value = %s%n,checksum=%s", record.offset(), record.key(), record.value(),record.checksum());}}}执⾏代码,可以查看相关⽇志,⽤来查看kafka的配置情况D:\tools\Java\jdk1.8.0_31\bin\java "-javaagent:D:\tools\JetBrains\IntelliJ IDEA 2018.1\lib\idea_rt.jar=64422:D:\tools\JetBrains\IntelliJ IDEA 2018.1\bin" -Dfile.encoding=UTF-8 -classpath D:\tools\Java\jdk1.8.0_31\jre\lib\charsets.jar;D:\tools\Java\j log4j:WARN No such property [maxFileSize] in org.apache.log4j.DailyRollingFileAppender.log4j:WARN No such property [maxBackupIndex] in org.apache.log4j.DailyRollingFileAppender.2019-01-16 15:56:36,600 [main] [org.apache.kafka.clients.consumer.ConsumerConfig]-[INFO] ConsumerConfig values:metric.reporters = []metadata.max.age.ms = 300000partition.assignment.strategy = [org.apache.kafka.clients.consumer.RangeAssignor]reconnect.backoff.ms = 50sasl.kerberos.ticket.renew.window.factor = 0.8max.partition.fetch.bytes = 1048576bootstrap.servers = [10.1.9.3:9092]ssl.keystore.type = JKSmit = truesasl.mechanism = GSSAPIinterceptor.classes = nullexclude.internal.topics = truessl.truststore.password = nullclient.id =ssl.endpoint.identification.algorithm = nullmax.poll.records = 2147483647check.crcs = truerequest.timeout.ms = 40000heartbeat.interval.ms = 3000mit.interval.ms = 1000receive.buffer.bytes = 65536ssl.truststore.type = JKSssl.truststore.location = nullssl.keystore.password = nullfetch.min.bytes = 1send.buffer.bytes = 131072value.deserializer = class mon.serialization.StringDeserializergroup.id = testretry.backoff.ms = 100sasl.kerberos.kinit.cmd = /usr/bin/kinit = nullsasl.kerberos.ticket.renew.jitter = 0.05ssl.trustmanager.algorithm = PKIXssl.key.password = nullfetch.max.wait.ms = 500sasl.kerberos.min.time.before.relogin = 60000connections.max.idle.ms = 540000session.timeout.ms = 30000metrics.num.samples = 2key.deserializer = class mon.serialization.StringDeserializerssl.protocol = TLSssl.provider = nullssl.enabled.protocols = [TLSv1.2, TLSv1.1, TLSv1]ssl.keystore.location = nullssl.cipher.suites = nullsecurity.protocol = PLAINTEXTssl.keymanager.algorithm = SunX509metrics.sample.window.ms = 30000auto.offset.reset = latest7、使⽤命令⾏创建topicD:\tools\kafka_2.12-2.1.0\bin\windows\kafka-topics.bat --create --zookeeper localhost:12181 --replication-factor 1 --partitions 1 --topic hello查看已有的topicD:\tools\kafka_2.12-2.1.0\bin\windows\kafka-topics.bat --list --zookeeper 127.0.0.1:12181创建⼀个消息⽣产者,同时创建⼀个消息消费者,去接收消息⽣产者发来的消息D:\tools\kafka_2.12-2.1.0\bin\windows\kafka-console-producer.bat --broker-list 127.0.0.1:9092 --topic hello 创建⼀个消息⽣产者D:\tools\kafka_2.12-2.1.0\bin\windows\kafka-console-consumer.bat --bootstrap-server 127.0.0.1:9092 --topic hello --from-beginning 创建⼀个消息消费者。
WindowsZookeeper安装过程及启动图解
WindowsZookeeper安装过程及启动图解
⼆,下载下来解压后,在根⽬录添加data和log⽂件夹
三,将conf⽬录下的zoo_sample.cfg⽂件,复制⼀份,重命名为zoo.cfg,修改zoo.cfg配置⽂件,dataDir和dataLogDir dataDir=G:\\zookeeper\\zookeeper3.5.6\\
datadataLogDir=G:\\zookeeper\\zookeeper3.5.6\\log
四,设置环境变量,在系统环境变量添加ZOOKEEPER_HOME名,地址是指向你的zk包地址
ZOOKEEPER_HOME:本⽂我的zookeeper根⽬录是-G:\zookeeper\zookeeper
然后找到path添加,以下两条配置
1》%ZOOKEEPER_HOME%\bin
2》%ZOOKEEPER_HOME%\conf
五,进⼊本地的G:\zookeeper\zookeeper3.5.6\bin
点击 zkServer.cmd 进⾏启动
PS,如果遇到zkServer.cmd打开闪退的现象,我们应该进⾏⼀下来显⽰错误在哪⾥,右键编辑zkServer.cmd
在结尾的位置添加pause,然后双击运⾏zkServer.cmd,就会显⽰错误信息,⽽不是闪退的zkServer.cmd
六,如果以上步骤没问题,我们打开zkServer.cmd,然后打开zkCli.cmd,证明zookeeper已经配置成功,如下图
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
Windows下zookeeper安装及配置
Windows下zookeeper安装及配置zookeeper有单机、伪集群、集群三种部署⽅式,可根据⾃⼰对可靠性的需求选择合适的部署⽅式。
本章主要讲述单机部署⽅式。
系统要求zookeeper可以运⾏在多种系统平台上⾯,表1展⽰了zk⽀持的系统平台,以及在该平台上是否⽀持开发环境或者⽣产环境。
表1:zookeeper⽀持的运⾏平台系统开发环境⽣产环境Linux⽀持⽀持Solaris⽀持⽀持FreeBSD⽀持⽀持Windows⽀持不⽀持MacOS⽀持不⽀持zookeeper是⽤Java编写的,运⾏在Java环境上,因此,在部署zk的机器上需要安装Java运⾏环境。
为了正常运⾏zk,我们需要JRE1.6或者以上的版本。
⼀、下载进⼊要下载的版本⽬录,选择tar.gz⽂件下载⼆、解压解压zookeeper-3.4.10.tar.gz⽂件到D:\zookeeper-3.4.10三、配置⽂件修改3.1、进⼊D:\zookeeper-3.4.10\conf⽬录拷贝zoo_sample.cfg⽂件为zoo.cfg.3.2、编辑zoo.cfg,添加下图内容:ticktime时长单位为毫秒,为zk使⽤的基本时间度量单位。
例如,1 * tickTime是客户端与zk服务端的⼼跳时间,2 * tickTime是客户端会话的超时时间。
tickTime的默认值为2000毫秒,更低的tickTime值可以更快地发现超时问题,但也会导致更⾼的⽹络流量(⼼跳消息)和更⾼的CPU使⽤率(会话的跟踪处理)。
dataDir⽆默认配置,必须配置,⽤于配置存储快照⽂件的⽬录。
dataLogDir⽇志路径clientPortzk服务进程监听的TCP端⼝,默认情况下,服务端会监听2181端⼝。
四、配置环境变量4.1、添加变量 ZOOKEEPER_HOME变量值:D:\zookeeper-3.4.104.2、修改变量 path添加内容:;%ZOOKEEPER_HOME%/bin;%ZOOKEEPER_HOME%/conf 五、启动运⾏D:\zookeeper-3.4.10\bin\⽬录下的zkServer.cmd,出现如下界⾯代表安装成功:。
zookeeper+kafka 集群工作原理
Zookeeper与Kafka集群工作原理:技术报告一、概述在现代分布式系统中,Zookeeper和Kafka是两个重要的组件,它们各自扮演着不同的角色,并在共同协作中,提供了强大的分布式服务。
Zookeeper是一个分布式协调服务,主要用于管理分布式系统的状态,而Kafka则是一个分布式流平台,用于处理和传输实时数据。
二、Zookeeper工作原理Zookeeper的核心是一个分布式协调服务,它为分布式系统提供了一个集中式的配置管理、命名服务、状态同步等服务。
Zookeeper通过一种称为ZNode(节点)的数据结构来存储数据,这些数据结构类似于文件系统中的目录和文件。
Zookeeper的工作原理基于Paxos算法,这是一种解决分布式系统一致性的算法。
Zookeeper集群中的每个节点都维护了一份数据副本,并通过互相之间的通信来保持数据的一致性。
Zookeeper的集群架构保证了高可用性和容错性,即使部分节点发生故障,整个系统仍能正常工作。
三、Kafka集群工作原理Kafka是一个分布式流平台,它被设计用来处理和传输大量的实时数据。
Kafka集群由多个Kafka broker组成,每个broker负责存储一部分数据。
生产者负责将数据发送到Kafka集群,而消费者则从集群中读取数据。
Kafka的数据存储在称为topic的流中。
当数据被生产者发送到topic时,它被存储在broker中,并可以由消费者读取。
Kafka的强大之处在于它的高吞吐量和低延迟,这使得它能够处理大量的实时数据流。
Kafka的另一个重要特性是它的分布式特性。
在Kafka中,每个broker都是一个独立的节点,可以独立地接收和存储数据。
此外,Kafka还提供了副本机制,即一个topic的数据可以在多个broker上存储副本,以提供数据冗余和容错性。
四、Zookeeper与Kafka的协同工作尽管Zookeeper和Kafka各自具有不同的功能和特性,但它们经常一起使用,以提供更为完整的分布式系统解决方案。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Windows环境下Kafka与Zookeeper安装配置与启动过程1.软件下载
1.1下载jdk1.8.0_60
1.2 下载zookeeper-3.4.9.tar.gz
1.3下载kafka_
2.12-0.10.2.0.tgz
2.环境准备
安装配置java环境,配置jdk1.8为操作系统java运行时环境
2.1安装jdk1.8
将网站下载的jdk1.8.0_60压缩包解压缩到c:\program files\java目录下,如下图:
2.2 配置java环境
如图在“控制面板--系统和安全--系统”页,鼠标点击“高级系统设置”,在弹出的“系统属性”页面选择高级tab页:
点击“环境变量”按钮后,在弹出的环境变量对话框中点击“系统变量”栏中的“新建”按钮,在弹出的“新建系统变量”窗口中输入如下:
:
点确定确定后,再配置JRE_HOME
同时打开一个cmd窗口在其中输入:
SET JA V A_HOME=C:\Program Files\Java\jdk1.8.0_60
SET
CLASSPATH=.;%JA V A_HOME%/lib/dt.jar;%JA V A_HOME%/lib/tools.jar;%JRE_HOME%\lib\;%JRE_HOME%\lib\r t.jar;%JRE_HOME%\lib\jce.jar;%JRE_HOME%\lib\metadata-extractor-2.4.0-beta-1.jar;%JRE_HOME%\lib\mediautil-1.0.jar;
SET Path=%JA V A_HOME%\bin;%JA V A_HOME%\jre\bin;
在命令行输入java -version,输出如下,表明系统已启用java配置
3.Zookeeper安装配置
3.1 解压与目录设计
在目录e:\apache\zookeeper\下解压文件zookeeper-3.4.9.tar.gz,并将解压文件夹改名为zk0,复制该文件夹到相同目录下分别改名为zk1、zk2.
3.2在zk0\zk1\zk2目录下都创建空文件夹data和logs,如下图
3.2在data目录中创建文件myid,设置zookeeper服务器的序号。
Myid的内容分别为0、1、2
3.3配置zookeeper的属性
配置zk0\zk1\zk2目录下的config/zoo.cfg文件。
tickTime=2000
initLimit=5
syncLimit=2
dataDir=E:/Apache/zookeeper/zk0/data dataLogDir=E:/Apache/zookeeper/zk0/logs clientPort=2181
server.0=127.0.0.1:2888:3888
server.1=127.0.0.1:2889:3889
server.2=127.0.0.1:2890:3890
tickTime=2000
initLimit=5
syncLimit=2
dataDir=E:/Apache/zookeeper/zk1/data dataLogDir=E:/Apache/zookeeper/zk1/logs clientPort=2182
server.0=127.0.0.1:2888:3888
server.1=127.0.0.1:2889:3889
server.2=127.0.0.1:2890:3890
tickTime=2000
initLimit=5
syncLimit=2
dataDir=E:/Apache/zookeeper/zk2/data dataLogDir=E:/Apache/zookeeper/zk2/logs clientPort=2183
server.0=127.0.0.1:2888:3888
server.1=127.0.0.1:2889:3889
server.2=127.0.0.1:2890:3890
3.4启动zookeeper server
开三个cmd窗口,依次执行如下指令:
E:
cd E:\Apache\zookeeper\zk0\bin
zkServer.cmd
E:
cd E:\Apache\zookeeper\zk2\bin
zkServer.cmd
E:
cd E:\Apache\zookeeper\zk1\bin
zkServer.cmd
在三个窗口未同时启动前,前面开的窗口会报警:三个窗口都启动后,如下表明zookeeper正常启动:3.5启动zkclient测试zk server
cd E:\Apache\zookeeper\zk0\bin
zkCli.cmd -server 127.0.0.1:2182
在新开的windows的cmd窗口执行如下命令:create /zk hello
create /zk/subzk
get /zk
Ls /zk
反馈如下:
至此,zookeeper安装完毕
4.Kafka安装配置
4.1 目录配置
解压kafka_2.12-0.10.2.0.tgz的内容到E:\Apache\kafka目录下,并将文件命名为kafka0,复制该文件夹到相同目录,命名为kafka1,如图
在这两个文件夹下创建logs和matrix文件夹,如图
4.2 server.properties配置
修改两个kafka实例的config/server.properties文件,内容分别如下:
broker.id=0
port=9092
work.threads=2
num.io.threads=2
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=./logs
num.partitions=2
log.flush.interval.messages=10000
log.flush.interval.ms=1000
log.retention.hours=168
log.segment.bytes=536870912
log.cleanup.interval.mins=10
zookeeper.connect=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183
4.3 启动kafka server
在新开的windows的cmd窗口执行如下命令:
E:
cd E:\Apache\kafka\kafka0
.\bin\windows\kafka-server-start.bat .\config\server.properties
4.4 创建主题
创建主题,命名为“test2”,replication factor=2(因为2个Kafka服务器在运行)。
如果集群中所运行的Kafka 服务器不止2个,可以相应增加replication-factor,从而提高数据可用性和系统容错性。
在新开的windows的cmd窗口执行如下命令:
E:
cd E:\Apache\kafka\kafka0\bin\windows
kafka-topics.bat --create --zookeeper 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183 --replication-factor 2 --partitions 2
--topic test2
4.5启动producer
在新开的windows的cmd窗口执行如下命令:
E:
cd E:\Apache\kafka\kafka0\bin\windows
kafka-console-producer.bat --broker-list 127.0.0.1:9092,127.0.0.1:9093 --topic test2
4.6 启动consumer
E:
cd E:\Apache\kafka\kafka0\bin\windows
kafka-console-consumer.bat --zookeeper 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183 --topic test2
4.7 producer和consumer联合测试
如下图,在producer的窗口中输入文本,回车后会同步显示在2个consumer窗口中。