首先确保JDK已正确安装并设置好环境变量

安装Zookeeper

到官网下载: https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/

zookeeper-3.4.11.tar.gz

这里下载到/usr/local/software

下载后解压

tar -xzf zookeeper-3.4..tar.gz

进入zookeeper/conf目录,把配置复制一份

cp zoo_sample.cfg zoo.cfg

修改配置

dataDir=/opt/data/zookeeper

设置zookeeper环境变量

Linux 添加环境变量

启动

zkServer.sh start

查看状态

zkServer.sh status

使用jps查看

zookeeper集群配置

分别在两台CentOS上按上面步骤下载解压,配置环境变量,这里假设Server1(192.168.31.147),Server2(192.168.31.146)

编辑上面的zoo.cfg,加上集群配置

server.=192.168.31.147::
server.=192.168.31.146::

2888端口表示该服务器与集群中的leader交换信息的端口,3888表示选举时服务器相互通信的端口,两台服务器防火墙打开这两个端口

firewall-cmd --zone=public --add-port=/tcp --permanent
firewall-cmd --zone=public --add-port=/tcp --permanent
firewall-cmd --reload

在主服务器(147)的/opt/data/zookeeper目录下新建一个myid文件,在里面存一个值1,zookeeper在启动时会读取myid文件中的值与zoo.cfg中的配置进行比较,以确定是哪台服务器

在从服务器(146)的/opt/data/zookeeper目录下同样建一个myid文件,存值为2

接下来分别运行再查看状态

147:

146:

这样集群配置就完成了。

安装kafka

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

kafka_2.11-1.1.0.tgz

同样下载到/usr/local/software目录

下载完后解压,修改安装目录下的/config/server.properties中zookeeper.connect配置

146配置,这里的broker.id与zookeeper的值一致

broker.id=
log.dirs=/opt/data/kafka-logs
zookeeper.connect=192.168.31.146:2181,192.168.31.147:2181

147配置

broker.id=
log.dirs=/opt/data/kafka-logs
zookeeper.connect=192.168.31.146:,192.168.31.147:

启动kafka

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

使用jps查看

这里要注意,如果更改过broker.id的话,需要将原来生成的data删除,否则kafka会自动关闭,错误信息可以在kafka的安装目录下logs中server.log找到

两台服务器的zookeeper和kafka都启动后,在任意一台服务器上运行

zkCli.sh -server localhost:

进入控制台后执行

ls /brokers/ids

可以看到有两个节点信息,表示2台服务器kafka正常启动

查看brokers信息

可以看到brokerid为2的节点作为Leader控制器,此时我们kill掉brokerid=2的kafka进程

再查看会发现kafka集群选出另外一个节点作为leader控制器

关闭kafka节点

kafka-server-stop.sh

主题管理

创建主题

kafka-topics.sh --create --zookeeper 192.168.31.147:,192.168.31.146: --replication-factor  --partitions  --topic kafka-action

查看主题

为了方便,将IP添加到host中,然后使用如下脚本查看

kafka-topics.sh --list --zookeeper server-:,server-:

kafka-topics.sh --describe --zookeeper server-:,server-:

生产者

kafka-console-producer.sh --broker-list localhost: --topic kafka-action --property parse.key=true

启动一个生产者,同时指定启用消息的key配置,默认key与消息之间使用制表符分割,输入tab键,输入格式不对会报错

也可以自定义分隔符,比如空格

kafka-console-producer.sh --broker-list localhost: --topic kafka-action --property parse.key=true --perty key.separator=' '

使用以下命令验证消息是否发送成功

kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list localhost: --topic kafka-action --time -

表示:主题名+分区编号+偏移量

如果开启了auto.create.topics.enable=true,生产者向一个不存在的topic发送消息时会自动创建一个

kafka-console-producer.sh --broker-list localhost: --topic producer-create-topic

控制台会提示主题不存在并创建一个

查看log目录

可以通过以下命令来查看消息

kafka-run-class.sh kafka.tools.DumpLogSegments --files /neworiental/logs/kafka-logs/producer-create-topic-/.log

消费者

kafka-console-consumer.sh --bootstrap-server localhost:  --consumer-property group.id=new-consumer-test --consumer-property client.id=new-consumer-c1 --topic kafka-action

先启动一个消费者,然后再按上文启动一个生产者,在生产者发消息,消费者接受消息

单播和多播

要实现单播,让多个消费者同属于一个消费组即可,属于不同的消费组即可实现多播

查看消费组

kafka-consumer-groups.sh --bootstrap-server localhost:  --list

查看消费偏移量

kafka-consumer-groups.sh --bootstrap-server localhost:  --describe --group new-consumer-test

安装kafka-manager

下载地址:https://github.com/yahoo/kafka-manager

下载后解压,在安装目录运行

./sbt clean dist

此过程相当耗时,编译完成后会在提示目录生成一个zip文件

将此文件解压到指定位置,编辑conf目录下的application.conf,修改zookeeper地址

kafka-manager.zkhosts="localhost:2181"

cd到bin目录,执行下面命令

./kafka-manager -Dconfig.file=../conf/application.conf

后台启动

nohup ./kafka-manager -Dconfig.file=../conf/application.conf >& &

默认监听9000端口

打开浏览器

默认进来是没有集群的,需要添加一个

其他选项默认即可

添加完成后可以看到

点击名字进去

点击Topic后面的数字进去

启动一个消费者

kafka-console-consumer.sh --bootstrap-server localhost:  --consumer-property group.id=new-consumer-test --consumer-property client.id=new-consumer-c1 --topic newtopic

在页面查看

CentOS 安装 kafka的更多相关文章

  1. Centos安装Kafka集群

    kafka是LinkedIn开发并开源的一个分布式MQ系统,现在是Apache的一个孵化项目.在它的主页描述kafka为一个高吞吐量的分布式(能 将消息分散到不同的节点上)MQ.在这片博文中,作者简单 ...

  2. 在CentOS 7上安装Kafka

    简介 Kafka 是一种高吞吐的分布式发布订阅消息系统,能够替代传统的消息队列用于解耦合数据处理,缓存未处理消息等,同时具有更高的吞吐率,支持分区.多副本.冗余,因此被广泛用于大规模消息数据处理应用. ...

  3. Kafka安装之二 在CentOS 7上安装Kafka

    一.简介 Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写.Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据. 这 ...

  4. Redis安装,mongodb安装,hbase安装,cassandra安装,mysql安装,zookeeper安装,kafka安装,storm安装大数据软件安装部署百科全书

    伟大的程序员版权所有,转载请注明:http://www.lenggirl.com/bigdata/server-sofeware-install.html 一.安装mongodb 官网下载包mongo ...

  5. Centos7.5安装kafka集群

    Tags: kafka Centos7.5安装kafka集群 Centos7.5安装kafka集群 主机环境 软件环境 主机规划 主机安装前准备 安装jdk1.8 安装zookeeper 安装kafk ...

  6. centos7安装kafka 转

    CentOS7安装和使用kafka         环境准备 安装kafka之前我们需要做一些环境的准备 1.centOS7系统环境 2.jdk环境 3.可用的zookeeper集群服务 安装jdk ...

  7. centos安装服务参考博客,亲测可用

    centos 安装nginx参考 日志log报错 nginx -c /etc/nginx/nginx.conf https://blog.csdn.net/weixin_41004350/articl ...

  8. CentOS安装gitlab,gerrit,jenkins并配置ci流程

    CentOS安装gitlab,gerrit,jenkins并配置ci流程 By Wenbin juandx@163.com 2016/4/9 这是我参考了网上很多的文档,配置了这三个软件在一个机器上, ...

  9. 【推荐】CentOS安装Subversion-1.8.11+HTTP协议支持配置

    注:以下所有操作均在CentOS 6.5 x86_64位系统下完成. 我们需要搭建一个自己的SVN服务器. 此外,搭建好的SVN服务器除了需要支持svn协议外,最好还需要支持HTTP协议和HTTPS协 ...

随机推荐

  1. Linux安装redis服务器

    Linux安装redis服务器 初次接触,这里简单的说下我遇到的情况以及安装方法,当然也是参考了诸位大神的. 确定虚拟机的主机IP. 1)首先需要一个linux虚拟机,确定虚拟机的ip ,输入命令:# ...

  2. c#关于Mysql MySqlBulkLoader 批量上传

    有个list表有几万数据 用insert插入,速度跟蜗牛爬行, 几十个表,传起来可就需要时间了. 搜搜,发现有  MySqlBulkLoader  这个人家mysql 的dll 里边已经提供了这个方法 ...

  3. BZOJ1026或洛谷2657 [SCOI2009]windy数

    BZOJ原题链接 洛谷原题链接 简单的数位\(DP\),套模板就好. #include<cstdio> #include<cstring> using namespace st ...

  4. BZOJ4381 : [POI2015]Odwiedziny / Luogu3591[POI2015]ODW - 分块+树剖

    Solution 在步伐$pace$比较小的时候, 我们发现用前缀和直接维护会很快 而在$pace$比较大的时候, 则暴力往上跳会最优 设$blo= \sqrt{N}$ 若$pace<=blo$ ...

  5. 基于ASP.NET高职学生工作管理系统--文献随笔(八)

    一.基本信息 标题:基于ASP.NET高职学生工作管理系统 时间:2015 出版源:电子科技大学 关键词:高职; 学生管理; ASP.NET; 系统; 二.研究背景 问题定义:随着社会的发展,我国经济 ...

  6. python任意进制转换

    python任意进制转换 import string def module_n_converter(q, s, base=None): """ 将自然数按照给定的字符串转 ...

  7. django网页分页

    blog/views.py from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger #导入分页插件包 def  ...

  8. SQLite3命令操作大全

    SQLite3命令操作大全 SQLite库包含一个名字叫做sqlite3的命令行,它可以让用户手工输入并执行面向SQLite数据库的SQL命令.本文档提供一个样使用sqlite3的简要说明. 一.ql ...

  9. Git+Github入门

    1.安装Git git 返回上一级文件命令 cd ..(cd 和..之间有空格) 2.安装完成后需进一步设置,在命令行输入 3.选择一个合适的地方创建一个空目录 pwd命令用于显示当前目录 4.通过g ...

  10. 13. The Impact of New Technology on Business 新科技对商务的影响

    13. The Impact of New Technology on Business 新科技对商务的影响 (1) New technology links the world as never b ...