文章目录
基础环境配置
Kafka是用Scala语言开发的,鱼腥在JVM上,因此在安装Kafka之前需要安装JDK
JDK安装
最新版本的Kafka需要运行在JDK1.7以上,Kafka官方网站推荐使用JDK1.8,所以应用的JDK环境采用JDK1.8。
Windows安装
-
下载并安装。首先在oracle官方网站
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
下载JDK1.8安装文件,根据操作系统类型选择相应的JDK版本。 -
环境变量配置。在系统变量中新增变量名JAVA_HOME,变量值为JDK1.8安装路径。新增变量名CLASSPATH变量值为%JAVA_HOME%\lib\dt.jar,%JAVA_HOME%\lib\tools.jar。
-
验证。环境变量配置完成后,在Windows在cmd终端输入人查看Java版本的命令,以此来验证JDK安装配置是否成功。
#查看版本 java -version
Linux安装JDK
-
下载并安装。首先在oracle官方网站
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
下载JDK1.8安装文件,根据操作系统类型选择相应的JDK版本。tar -xzvf jdk-8u201-linux-x64.gz
将安装包解压后就安装完成JDK。
-
配置环境变量。在/etc/profile文件中添加JDK和HRE的路径,并添加到Path中。
添加内容
export JAVA_HOME=/usr/local/software/Java/jdk/jdk1.8.0_201 export JRE_HOME=/usr/local/software/Java/jdk/jdk1.8.0_201/jre export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
新安装的JDK替换系统自带的OpenJDK
-
将Java添加到bin
update-alternatives --install /usr/local/software/Java/jdk/jdk1.8.0_201 300
-
将Javac添加到bin
update-alternatives —install /usr/bin/Javac Javac /usr/local/software/Java/jdk/jdk1.8.0_201/bin/Javac 300
-
选择JDK版本
update-alternatives —config Java
执行该命令会出现JDK版本选择界面,选择重新安装的JDK版本即可。
-
-
验证。输入查看JDK版本命令,查看环境变量配置是否成功
#查看版本 java -version
SSH安装配置
对Kafka集群本身来讲,配置SSH免密钥登录并不是必须的步骤,单作为分布式系统,一般会由多台机器构成,为了方便操作管理,如通过SSH方式启动句群代理等。
-
在跟目录下查看是否存在一个影藏文件夹
.ssh
。若没有改文件夹,则在确保机器联网条件下执行以下命令安装SSH#安装ssh sudo apt-get install ssh
-
进入.ssh目录,生成密钥对
#生成密钥 ssh-keygen -t rsa
在~/.ssh目录下生成id_rsa和id_rsa.pub两个文件,其中id_rsa为死要文件,id_rsa.pub为公钥文件。依次在集群机器上完成步骤1、2
-
将id_rsa.pub文件内容追加到授权的key文件夹中
#追加公钥到授权文件中 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
若是单机环境,则已经完成配置。
-
将第一台机器的authorized_keys文件复制到第二胎机器上,并将第二胎机器的公钥也追加到authorized_keys文件中
# 复制第一台机器的授权文件到第二胎机器 scp authorized_keys root@ip:~/.ssh/ # 在第二胎机器上执行此命令,将第二胎机器的公钥主驾到授权文件中 cat ~/.ssh/id_rsa_.pub >> ~/.ssh/authorized_keys
ZooKeeper环境
ZooKeeper是一个分布式应用程序协调服务框架,分布式应用程序可以基于ZooKeeper来实现同步服务、配置维护、命名服务等,Zookeeper能提供基于类似于文件系统的目录节点树方式的数据存储,通过监控各节点数据状态的变化,达到基于数据的集群管理。
Kafka依赖Zookeeper,通过Zookeeper来对代理、消费者上下线管理、集群、分区元数据管理等。
进入Zookeeper官方网站https://www.apache.org/dyn/closer.cgi/zookeeper/
下载Zookeeper,然后将下载文件解压到指定目录。
windows安装Zookeeper
-
解压安装。首先将Zookeeper安装包Zookeeper安装包解压到相对应的目录下,然后进入Zookeeper安装路径conf目录下,会看到Zookeeper提供一个zoo_sample.cfg的配置模板,将该文件重命名为zoo.cfg。zoo.cfg文件中只需要修改dataDir和dataLogDir配置,其他配置使用默认值。
dataDir=F:\\zookeeper\\data dataLogDir=F:\\zookeeper\\logs
-
验证。执行启动Zookeeper命令。
# windows 下启动Zookeeper zkServer.cmd
若输出没有任何错误,通过jps命令可以看到Zookeeper相关进程。
# 查看java进程命令 jps
也可以进入Zookeeper安装路径bin目录下,通过Zookeeper客户端连接到Zookeeper服务,执行以下命令进一步验证Zookeeper是否安装成功。
zkCLi.cmd -server 127.0.0.1:2181
Linux搭建Zookeeper环境
-
解压安装。首先在3台服务器上分别解压到
/usr/local/software/zookeeper
目录,进入解压后的zookeeper/conf
目录,将zoo.sample.cfg重命名为zoo.cfg,修改配置。dataDir=/opt/data/zookeeper/data dataLogDir=/opt/data/zookeeper/logs
-
集群配置。在其中一台机器的Zookeeper安装路径conf目录进行配置。
server.1=server1:2888:3888 server.2=server2:2888:3888 server.3=server3:2888:3888
在dataDir路径下创建一个myid文件。myid里面存放的值就是服务器的编号,Zookeeper在启动时会读取myid文件中的值与zoo.cfg文件中的配置信息进行比较,以确定服务器。
设置Zookeeper安装路径,在、etc/profile相关环境变量配置中添加信息
export ZOOKEEPER_HOME=/usr/local/software/zookeeper path=$PATH:$ZOOKEEPER_HOME/bin
-
验证。由于配置了Zookeeper环境变量,因此无需进入Zookeeper安装路径bin目录。
# 启动Zookeeper服务 zkServer.sh start
Docker部署
这个使用的是个人push到阿里云容器服务商的镜像
docker run --name zookeeper \
-p 2181:2181 \
-v /zookeeper/conf:/conf \
-v /zookeeper/data:/data \
-v /zookeeper/datalog:/datalog \
-v /zookeeper/logs:/logs \
-d registry.cn-hangzhou.aliyuncs.com/mikrotik/zookeeper:latest
- -p:对外暴露的端口
- -v:关联的数据卷
- -d:后台启动容器
Kafka单机部署
Windows环境安装Kafka
- 下载及安装。进入Kafka官方网站
http://kafka.apache.org/downloads
下载。Kafka安装包并没有区分Windows安装包还是Linux安装包,仅在bin目录下降windows环境执行Kafka的相关脚本放在/bin/windows目录下。配置环境变量KAFKA_HOME - 启动KafkaServer验证。安装好Kafka后,启动KafkaServer。坐在启动Kafka之前,需要启动Zookeeper。若Zookeeper服务不是本地服务,应该修改Kafka安装目录下/config/server.properties文件zookeeper.connect配置项,然后进入¥KAFKA_HOME/bin/windows目录启动kafkaServer。
Linux环境安装kafka
-
解压安装。先将Kafka解压到指定目录。
指定Kafka安装路径
export KAFKA_HOME=/usr/local/software/kafka
将Kafka bin目录加到Path。
export PATH=$PATH:$KAFKA_HOME/bin
-
修改配置。修改$KAFKA_HOME/config目录下的server.properties文件,broker.id需要唯一。
broker.id=1 log.dirs=/opt/data/kafka-logs
-
验证。
启动Kafka,要保证Zookeeper已正常启动,进入Kafka安装路径$KAFKA_HOME/bin目录下,启动KafkaServer
# 启动kafka kafka-server-start.sh -daemon ../config/server.properties
Docker部署
这个使用的是个人push到阿里云容器服务商的镜像
docker run --name kafka \
-p 9092:9092 \
-v /kafka/conf:/opt/kafka/config \
--link zookeeper:zookeeper
-e KAFKA_ADVERTISED_PORT=9092 \
-e KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 \
-e KAFKA_ADVERTISED_HOST_NAME=kafka \
-d registry.cn-hangzhou.aliyuncs.com/mikrotik/kafka:latest
- -v:数据卷关联,方便修改配置文件
- –link:关联的容器
- -e:参数
- -d:后台启动容器
集群环境部署
只需修改server.properties文件中Kafka连接Zookeeper的配置,将Kafka连接到Zookeeper集群,配置格式为Zookeeper服务器IP:Zookeeper的客户端端口
,多个Zookeeper机器之间用逗号分隔。