centos7 安装kafak

 kafka:基于发布/订阅的分布式消息系统、数据管道;最初用来记录活动数据--包括页面访问量(Page View)、被查看内容方面的信息以及搜索情况等内容和运营数据--服务器的性能数据(CPU、IO使用率、请求时间、服务日志等等数据)。Kafka是一个分布式流数据系统,使用Zookeeper进行集群的管理。kafka自己做为Broker Server

1、安装

下载:去官网 http://kafka.apache.org/downloads.html

centos7 安装kafak_第1张图片

使用ftp上传至服务器,

centos7 安装kafak_第2张图片

或者直接使用网页下载或者命令行下载,安装压缩包

wget -c http://mirrors.shu.edu.cn/apache/kafka/1.1.0/kafka_2.12-1.1.0.tgz

运行 tar -zxvf kafka_2.12-1.1.0.tgz指令进行解压安装

 2、配置mq运行需要的环境server.properties

2.1、配置连接zookeeper 服务

############################# Zookeeper #############################
# Zookeeper connection string (see zookeeper docs for details).
# This is a comma separated host:port pairs, each corresponding to a zk
# server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002".
# You can also append an optional chroot string to the urls to specify the
# root directory for all kafka znodes.
zookeeper.connect=localhost:2181

2.2、kafaka队列数据存放地址

############################# Log Basics #############################
# A comma separated list of directories under which to store log files
#kafka数据的存放地址,多个地址的话用逗号分割,多个目录分布在不同磁盘上可以提高读写性能  /data/kafka-logs-1,/data/kafka-logs-2
log.dirs=/home/wangyong/mq/kafkaData/kafka-logs

 3、启动kafka服务

3.1、在启动kafka服务前需要保证kafka连接的zookeeper服务是正常启动的

3.2、启动kafka服务 bin/kafka-server-start.sh config/server.properties &

centos7 安装kafak_第3张图片

3.3、启动正常信息

centos7 安装kafak_第4张图片

3.4、假如kafka启动产生异常信息则表示kafka服务启动失败

[root@developmentEnvironment kafka_2.12-2.1.0]# Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c0000000, 1073741824, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 1073741824 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /home/wangyong/mq/kafka_2.12-2.1.0/hs_err_pid14350.log
Socket error Event: 32 Error: 10053.
Connection closing...Socket close.
Connection closed by foreign host.
Disconnected from remote host(192.168.72.129) at 18:29:36.
Type `help' to learn how to use Xshell prompt.

上面错误信息表示启动kafka服务时需要的内存空间过大服务无法正常启动,需要修改kafka服务的启动参数

打开kafka安装位置,在bin目录下找到kafka-server-start.sh文件,将

export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"修改为
export KAFKA_HEAP_OPTS="-Xmx256M -Xms128M"

如果kafka安装在Windows下,在bin/windows下找到kafka-server-start.bat文件,将

set KAFKA_HEAP_OPTS=-Xmx1G -Xms1G 改为

set KAFKA_HEAP_OPTS=-Xmx256M -Xms128M

注意:有操作系统位数的区别,是32位系统修改32位的,是64位修改64位的

然后重新启动,运行成功就可以了;但是如果还是报同样的错误,进入到Kafka的安装位置,如下图,有一个错误的日志文件,删掉后,重新启动,就可以了。

3.5、假如出现一下异常信息表示给kafka服务(tomcat)启动分配的内存空间太小需要调整kafka服务的启动空间

[root@developmentEnvironment kafka_2.12-2.1.0]# Error occurred during initialization of VM
Initial heap size set to a larger value than the maximum heap size
[root@developmentEnvironment kafka_2.12-2.1.0]# bin/kafka-server-start.sh config/server.properties &
[2] 16352
[1]   退出 1                bin/kafka-server-start.sh config/server.properties

set KAFKA_HEAP_OPTS=-Xmx512M -Xms515M

centos7 安装kafak_第5张图片

检测2181与9092端口

netstat -tunlp|egrep "(2181|9092)"
tcp        0      0 :::2181                     :::*                        LISTEN      19787/java          
tcp        0      0 :::9092                     :::*                        LISTEN      28094/java 

说明:

Kafka的进程ID为28094,占用端口为9092

QuorumPeerMain为对应的zookeeper实例,进程ID为19787,在2181端口监听

  4、启动两个客户端测试通讯是否正常

4.1、创建 TOPIC:使用 kafka-topics.sh 创建单分区单副本的 topic test:

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

  查看 topic 列表:

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

4.2、启动消息生产者服务(需要保证kafka服务运行环境所在主机运行9092端口进行连接访问,否则服务启动)

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

 上述表示服务端正常启动,且发送了一个消息至kafka服务的test 主题队列的消息

4.3、启动kafka服务消费者客户端进行监听消息的接收

bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning

或者

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

centos7 安装kafak_第6张图片

表示消息消费者服务正常启动,且接收到两天测试消息 

参考资料

https://www.cnblogs.com/shengulong/p/9013282.html

https://www.cnblogs.com/justuntil/p/8033792.html

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

你可能感兴趣的:(kafka,MQ)