1.下载kafka
下载链接
官网获取需求的版本下载地址后,创建kafka存放目录,下载后再解压
mkdir /hc/kafka
wget https://mirrors.bfsu.edu.cn/apache/kafka/2.7.0/kafka_2.12-2.7.0.tgz
tar -zxvf kafka_2.12-2.7.0.tgz
注:新版的kafka都自带了zookeeper,详见kafka/bin文件夹:
2.启动kafka服务
2.1、配置环境变量,编辑 /etc/profile文件,末尾增加如下内容
vim /etc/profile
export KAFKA_HOME=/usr/local/kafka/kafka_2.12-2.7.0
export PATH=$PATH:$KAFKA_HOME/bin
2.2、使环境变量生效:
source /etc/profile
2.3、配置 server.properties
创建kafka 日志目录 mkdir logs
cd /usr/local/kafka/kafka_2.12-2.7.0
mkdir kafka_logs
cd /usr/local/kafka/kafka_2.12-2.7.0/config
server.properties文件修改log.dirs
############################# Log Basics #############################
# A comma separated list of directories under which to store log files
log.dirs=/usr/local/kafka/kafka_2.12-2.7.0/kafka_logs
启动kafka
启动zookeeper
启动kafka 之前需要先启动zookeeper 否则会报错
启动命令:
nohup bin/zookeeper-server-start.sh config/zookeeper.properties &
-daemon:表示以守护进程的方式启动。
启动 kafka
启动命令:nohup ./bin/kafka-server-start.sh -daemon config/server.properties
备注:这里有可能报错,因为默认情况下,kafka默认的内存要1G,如果你这里没有这么多内存可用,那么就会启动失败。报错如下:
Java Hotspot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c5330000, 986513408, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (malloc) failed to allocate 986513408 bytes for committing reserved memory.
# An error report file with more information is saved as:
# hs_err_pid5535.log
解决方案:
修改启动脚本:kafka-server-start.sh
vim kafka-server-start.sh
默认是-Xmx1G -Xms1G ,根据自己情况适当 灵活调整。
阿里云服务器搭建开发的kafka
上面的kafka搭建好后
- 修改server.properties
broker.id=0
############################# Socket Server Settings #############################
#阿里云内网地址
host.name=172.23.xx.xx
#阿里云外网映射地址
advertised.host.name=106.14.xx.xx
############################# Socket Server Settings #############################
# The address the socket server listens on. It will get the value returned from
# java.net.InetAddress.getCanonicalHostName() if not configured.
# FORMAT:
# listeners = listener_name://host_name:port
# EXAMPLE:
# listeners = PLAINTEXT://your.host.name:9092
#(这个才是真正绑定的ip,写内网ip即可)
listeners=PLAINTEXT://172.23.xx.xx:9092
# Hostname and port the broker will advertise to producers and consumers. If not set,
# it uses the value for "listeners" if configured. Otherwise, it will use the value
# returned from java.net.InetAddress.getCanonicalHostName().
#(要暴露给外部访问的ip,写外网ip)
advertised.listeners=PLAINTEXT://106.14.xx.xx:9092
2.服务器 (下面的命令) 和 阿里云安全组(阿里云客户端设置)端口对外暴露
systemctl start firewalld.service #开启防火墙
firewall-cmd --zone=public --add-port=9092/tcp --permanent #将9092 kafka端口放入防火墙白名单
firewall-cmd --zone=public --add-port=2181/tcp --permanent #将2181 zk端口放入防火墙白名单
firewall-cmd --reload #重启防火墙
3.再启动zk 和kafka
启动zookeeper
启动kafka 之前需要先启动zookeeper 否则会报错
启动命令:
nohup ./bin/zookeeper-server-start.sh config/zookeeper.properties &
-daemon:表示以守护进程的方式启动。
启动 kafka
启动命令:
nohup ./bin/kafka-server-start.sh -daemon config/server.properties
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/65818.html