CentOS 7 单机安装 kafka 0.11.0.1

一 安装 jdk
1 安装 jdk ,这里选择 openjdk 1.8

yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel

安装后的jre和jdk在 /usr/lib/jvm/ 里,本例中具体的文件夹是java-1.8.0-openjdk-1.8.0.144-0.b01.el7_4.x86_64,注意这里的版本可能和你安装的不一样,以你的为准
2 配置 jdk
环境变量在 /etc/profile文件 或者 /etc/profile.d/文件夹中新建 java.sh 文件,这里使用新建文件的方式,在文件中加入以下内容

vi /etc/profile.d/java.sh
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.144-0.b01.el7_4.x86_64 #注意这里的版本号按你安装的来
JRE_HOME=$JAVA_HOME/jre
CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASSPATH PATH

3 让环境变量立即生效

source /etc/profile

4 检验版本

java -version

二 配置防火墙
1 配置防火墙

firewall-cmd --permanent --zone=public --add-port=2181/tcp # 客户端访问端口
firewall-cmd --permanent --zone=public --add-port=2888/tcp # zookeeper 之间访问的端口
firewall-cmd --permanent --zone=public --add-port=3888/tcp # zookeeper 和其它应用的通信端口
firewall-cmd --permanent --zone=public --add-port=9092/tcp # 客户端访问端口
firewall-cmd --reload

2 降低SELinux的安全级别,否则SELinux会限制集群数据传输(setenforce 0 命令只能设置运行时的安全级别,想要完全设置安全级别,需要在SELinux的配置文件中进行配置更改)
打开/etc/selinux/config配置文件,设置SELINUX=permissive
使用reboot命令重启服务器使SELinux安全级别更改生效

三 下载并启动 kafka
1 创建 kafka 文件夹

mkdir /usr/local/kafka

2 进入创建的 kafka 文件夹,下载 kafka 二进制代码

cd /usr/local/kafka
curl -o kafka_2.11-0.11.0.1.tgz http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/0.11.0.1/kafka_2.11-0.11.0.1.tgz

3 解压 kafka 并进入文件夹 

tar -xzf kafka_2.11-0.11.0.1.tgz
cd kafka_2.11-0.11.0.1

4 启动 kafka
kafka 需要 zookeeper 作为基本服务,kafka 下载的代码中有自带的单台 zookeeper 服务器,使用解压文件夹根目录下的配置启动 zookeeper ,在参数中使用 -daemon 让服务在后台运行,不占用命令界面。(网上有说在命令最后便加 & 号也可以起到 -daemon 参数的作用,但我使用未成功,网上命令 bin/kafka-server-start.sh config/server-1.properties &)

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

5 启动kafka

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

四 验证 kafka(需要在加压的文件夹根目录中执行以下命令,本例中是 cd /usr/local/kafka/kafka_2.11-0.11.0.1)
1 创建一个 topic ,就像一个数据库表一样,生产者和消费者都需要通过一个 topic 向消息队列发送消息或者消费消息

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

2 查看刚才的 topic 是否创建成功,如果成功会输出 test

bin/kafka-topics.sh --list --zookeeper localhost:2181

3 模拟生产者向 test 发送消息

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

运行上边的命令后就可以在 > 号提示下发送信息了,没发送一条后回车确认
4 再启动一个远程连接 ssh 模拟消费者客户端

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

执行以上命令后刚才发的消息都能收到,而且现在在刚才的生产者 ssh 客户端发送信息,消费者客户端都可以收到。

五 设置开机自启动服务
1 编写 zookeeper 的 systemd 自启动服务文件

vi /etc/systemd/system/zookeeper.service

内容如下

[Unit]
Description=zookeeper
After=syslog.target network.target

[Service]
Type=forking
ExecStart=/usr/local/kafka/kafka_2.11-0.11.0.1/bin/zookeeper-server-start.sh -daemon /usr/local/kafka/kafka_2.11-0.11.0.1/config/zookeeper.properties
ExecStop=/usr/local/kafka/kafka_2.11-0.11.0.1/bin/zookeeper-server-stop.sh
Restart=always
User=root
Group=root

[Install]
WantedBy=multi-user.target

2 设置 zookeeper 自启动

systemctl enable zookeeper
systemctl start zookeeper

3 编写 kafka 的 systemd 自启动服务文件

[Unit]
Description=kafka
After=network.target remote-fs.target nss-lookup.target zookeeper.service
Wants=zookeeper.service

[Service]
Type=forking
ExecStart=/usr/local/kafka/kafka_2.11-0.11.0.1/bin/kafka-server-start.sh -daemon /usr/local/kafka/kafka_2.11-0.11.0.1/config/server.properties
ExecStop=/usr/local/kafka/kafka_2.11-0.11.0.1/bin/kafka-server-stop.sh
Restart=always
User=root
Group=root

[Install]
WantedBy=multi-user.target

4 设置 kafka 自启动

systemctl enable kafka
systemctl start kafka

 

转载于:https://my.oschina.net/ioooi/blog/1551448

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值