由于Kafka依赖Zookeeper,而Zookeeper需要java环境,故需要先安装jdk
一、安装JDK
(以下为jdk8的下载地址)
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
1.下载并解压到/opt/java目录下
tar -zxvf jdk-8u221-linux-x64.tar.gz
mv jdk1.8.0_221 /opt/java
2.配置环境变量
vim /etc/profile
#在profile文件的最后面添加
export JAVA_HOME=/opt/java
export PATH=$JAVA_HOME/bin:$PATH
3.验证是否安装成功
java -version 输出版本信息则说明jdk安装成功
二、安装Zookeeper
Zookeeper的下载地址:https://www.apache.org/dyn/closer.cgi/zookeeper/
1.下载并解压到/opt/zookeeper目录下
wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
tar -zxvf zookeeper-3.4.14.tar.gz
mv zookeeper-3.4.14 /opt/zookeeper
2.编辑配置文件
# 复制一份zoo_sample.cfg文件并改名为zoo.cfg
cp /opt/zookeeper/zoo_sample.cfg zoo.cfg
# 编辑zoo.cfg 文件
vim /opt/zookeeper/zoo.cfg
#主要修改dataDir和server.1=127.0.0.1:2888:3888这2处
# the directory where the snapshot is stored.
dataDir=/opt/zookeeper/data
# the port at which the clients will connect
clientPort=2181
server.1=127.0.0.1:2888:3888
3.配置环境变量
vim /etc/profile
#在profile末尾追加
export ZK_HOME=/opt/zookeeper
export PATH=$ZK_HOME/bin:$PATH
4.启动Zookeeper
zkServer.sh start
5.查看是否启动成功
查询进程是否存在
> ps -ef | grep QuorumPeerMain
或者
> jps
查询QuorumPeerMain进程是否存在
三、安装Kafka
下载地址:https://kafka.apache.org/downloads.html
1.下载并解压并将文件移动到/opt/kafka目录下
wget http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.3.0/kafka_2.12-2.3.0.tgz
tar -zxvf kafka_2.12-2.3.0.tgz
mv kafka_2.12 /opt/kafka
2.配置kafka
#创建日志存放目录
cd /opt/kafka
mkdir -p log/kafka
#修改配置文件/opt/kafka/config/server.properties
sudo vim /opt/kafka/config/server.properties
#主要修改下面几项内容如下:
broker.id=181
listeners = PLAINTEXT://127.0.0.1:9092
log.dirs=/opt/kafka/log/kafka
zookeeper.connect=127.0.0.1:2181
3.配置环境变量
vi /etc/profile #追加以下信息
export KAFKA_HOME=/opt/kafka
export PATH=$KAFKA_HOME/bin:$PATH
4.启动
kafka-server-start.sh -daemon /opt/kafka/config/server.properties
5.查看是否启动成功
> ps aux|grep Kafka
或者
> jps
查看是否有Kafka进程
kafka其他的配置
配置单条消息的最大字节数
socket.request.max.bytes=2147483647 # 设置了socket server接收的最大请求大小
log.segment.bytes=2147483647 # kafka数据文件的大小,确保这个数值大于一个消息的长度。一般说来使用默认值即可(一般一个消息很难大于1G,因为这是一个消息系统,而不是文件系统)。
message.max.bytes=2147483647 # 设置了kafka server接收的最大消息大小,应小于等于socket.request.max.bytes
replica.fetch.max.bytes=2147483647 #每个分区试图获取的消息字节数。要大于等于message.max.bytes,否则broker会接收此消息,但无法将此消息复制出去,从而造成数据丢失。
fetch.message.max.bytes=2147483647 #每个提取请求中为每个主题分区提取的消息字节数。要大于等于message.max.bytes,否则broker就会因为消费端无法使用这个消息而挂起。
配置开启远程访问
配置advertised.listeners=PLAINTEXT://yourIP:port ,重启kafka即可
参考文章:
https://www.cnblogs.com/Yang2012/p/8078586.html