6.阿里云上安装kafka

导读:本篇文章讲解 6.阿里云上安装kafka,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

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搭建好后

  1. 修改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

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!