CentOS7安装和使用kafka

 
 
 
 

环境准备

安装kafka之前我们需要做一些环境的准备

1、centOS7系统环境

2、jdk环境

3、可用的zookeeper集群服务

安装jdk

参考文章

linux软件(一)—CentOS安装jdk

安装Kafka

从官网下载Kafka 安装包,解压安装:

tar zxvf kafka_2.11-2.0.0.tgz
mv kafka_2.11-2.0.0.tgz
cd kafka
 

解压好既安装完成。

安装zookeeper服务

方案一使用kafka自带的kafka

适用于测试等小型场景或者单点kafka

使用kafka安装包中的脚本启动单节点Zookeeper 实例:

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

方案二独立安装zookeeper服务

最灵活的方式,适用于单点和多节点kafka

下载ZooKeeper

要在您的计算机上安装ZooKeeper框架,请访问以下链接并下载最新版本的ZooKeeper。

http://zookeeper.apache.org/releases.html

现在,最新版本的ZooKeeper是3.4.6(ZooKeeper-3.4.6.tar.gz)。

提取tar文件

使用以下命令提取tar文件

$ cd opt/
$ tar -zxf zookeeper-3.4.6.tar.gz
$ cd zookeeper-3.4.6
$ mkdir data
 

创建配置文件

使用命令vi conf/zoo.cfg 打开名为 conf/zoo.cfg 的配置文件,并将所有以下参数设置为起点。

$ vi conf/zoo.cfg
tickTime=2000
dataDir=/path/to/zookeeper/data
clientPort=2181
initLimit=5
syncLimit=2
 

一旦配置文件成功保存并再次返回终端,您可以启动zookeeper服务器。

启动ZooKeeper服务器

$ bin/zkServer.sh start
 

执行此命令后,您将得到如下所示的响应 -

$ JMX enabled by default
$ Using config: /Users/../zookeeper-3.4.6/bin/../conf/zoo.cfg
$ Starting zookeeper ... STARTED
 

启动CLI进入操作命令界面

$ bin/zkCli.sh
 

输入上面的命令后,您将被连接到zookeeper服务器,并将获得以下响应。

Connecting to localhost:2181
................
................
................
Welcome to ZooKeeper!
................
................
WATCHER::
WatchedEvent state:SyncConnected type: None path:null
[zk: localhost:2181(CONNECTED) 0]
 

停止Zookeeper服务器

连接服务器并执行所有操作后,可以使用以下命令停止zookeeper服务器 -

$ bin/zkServer.sh stop
 

成功安装ZooKeeper。

##方案三使用hadoop集群cdh等套件中的zookeeper

如果已经有hadoop集群,一般都已经有zookeeper集群服务了。

例如zookeeper集群服务ip如下:

192.168.11.90:2181
192.168.11.91:2181
192.168.11.92:2181
 

kafka可以直接配置使用。

如下:

配置zookeeper

config/server.properties是kafka安装目录中的配置文件

vim config/server.properties
 

里面的 zookeeper.connect

修改为:

zookeeper.connect=192.168.11.90:2181,192.168.11.91:2181,192.168.11.92:2181
 

使用kafka

启动服务器

通过以下命令来启动服务器

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

服务器启动后,您会在屏幕上看到以下响应:

$ bin/kafka-server-start.sh config/server.properties
INFO KafkaConfig values:
request.timeout.ms = 30000
log.roll.hours = 168
inter.broker.protocol.version = 0.9.0.X
log.preallocate = false
security.inter.broker.protocol = PLAINTEXT
....
 

创建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
test
或者 使用ip创建
bin/kafka-topics.sh --create --zookeeper 192.168.11.90:2181/kafka100 --topic topic-test3 --replication-factor 2 --partitions 4 --config key=value

生产消息

使用kafka-console-producer.sh 发送消息:

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

然后输入想要发送的消息例如

>Hello world!
>Hello Kafka!
 

消费消息

使用kafka-console-consumer.sh 接收消息并在终端打印:

老版本的kafka使用如下命令消费

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

新版本kafka使用如下消费(注意端口)

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

输出如下:

可能遇到的问题–zookeeper is not a recognized option

原因

对于消费者,kafka中有两个设置的地方:对于老版本的消费者,由–zookeeper参数设置;对于新版本的消费者,由–bootstrap-server参数设置

如果使用了–zookeeper参数,那么consumer的信息将会存放在zk之中

查看的方法是使用bin/zookeeper-client,然后

ls /consumers/[group_id]/offsets/[topic]/[broker_id-part_id]
 

这个是查看某个group_id的某个topic的offset

如果使用了–bootstrap-server参数,那么consumer的信息将会存放在kafka之中

《Kafka权威指南》中是这样描述的

停止服务器

执行所有操作后,可以使用以下命令停止服务器

$ bin/kafka-server-stop.sh config/server.properties
 

集群配置

单机多broker 集群配置

利用单节点部署多个broker。 不同的broker 设置不同的id,监听端口及日志目录。 例如:

cp config/server.properties config/server-1.properties
 

编辑配置:

config/server-1.properties:
broker.id=1
port=9093
log.dir=/tmp/kafka-logs-1
 

启动Kafka服务:

bin/kafka-server-start.sh config/server-1.properties &
 

启动多个服务,按上文类似方式产生和消费消息。序号1对应增加。

多机多broker 集群配置

分别在多个节点按上述方式安装Kafka,配置启动多个Zookeeper 实例。 例如: 在192.168.11.90,192.168.11.91,192.168.11.92三台机器部署,Zookeeper配置如下:

initLimit=5
syncLimit=2
server.1=192.168.11.90:2888:3888
server.2=192.168.11.91:2888:3888
server.3=192.168.11.92:2888:3888
 

分别配置多个机器上的Kafka服务 设置不同的broke id,zookeeper.connect设置如下:

zookeeper.connect=192.168.11.90:2181,192.168.11.91:2181,192.168.11.92:2181
 

转载请注明出处 :CentOS7安装和使用kafka

参考链接:

http://kafka.apache.org/quickstart

https://www.w3cschool.cn/apache_kafka/apache_kafka_installation_steps.html

https://www.mtyun.com/library/how-to-install-kafka-on-centos7

https://segmentfault.com/a/1190000012730949

https://colobu.com/2014/08/06/kafka-quickstart/

 

centos7安装kafka 转的更多相关文章

  1. CentOS7 安装kafka集群

    1. 环境准备 JDK1.8 ZooKeeper集群(参见本人博文) Scala2.12(如果需要做scala开发的话,安装方法参见本人博文) 本次安装的kafka和zookeeper集群在同一套物理 ...

  2. centos7 安装kafka Manager

    1.安装sbt编译环境 curl https://bintray.com/sbt/rpm/rpm |tee /etc/yum.repos.d/bintray-sbt-rpm.repo yum inst ...

  3. CentOS7 安装Kafka

    关闭防火墙 systemctl stop firewalld.service systemctl disable firewalld.service 安装JDK yum install -y http ...

  4. centos7安装kafka

    1.官网或 wget 下载 kafka_2.12-2.2.0.tgz 二进制代码包 cd /home/tar wget http://mirror.bit.edu.cn/apache/kafka/2. ...

  5. centOS7安装kafka和zookeeper

    wget http://mirrors.hust.edu.cn/apache/kafka/2.0.0/kafka_2.11-2.0.0.tgz tar zxvf kafka_2.-.tgz cd ka ...

  6. CentOS7安装CDH 第九章:CDH中安装Kafka

    相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ...

  7. Centos7.5安装kafka集群

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

  8. Centos7.4 kafka集群安装与kafka-eagle1.3.9的安装

    Centos7.4 kafka集群安装与kafka-eagle1.3.9的安装 集群规划: hostname Zookeeper Kafka kafka-eagle kafka01 √ √ √ kaf ...

  9. centos7单机安装kafka,进行生产者消费者测试

    [转载请注明]: 原文出处:https://www.cnblogs.com/jstarseven/p/11364852.html   作者:jstarseven    码字挺辛苦的.....  一.k ...

随机推荐

  1. C#开发PACS医学影像处理系统(三):界面布局之工具栏

    工具栏布局采用WPF中Grid作为容器,按钮采用自定义样式和图标,并采用Separator分割线: XAML设计器代码: 其中  Style="{StaticResource ButtonS ...

  2. cmd运行SpringBoot的jar中文乱码

    问题: 通过以下命令启动springBoot项目后,在项目中查看日志,发现中文乱码 java -jar projectName.jar 解决 启动时添加参数-Dfile.encoding=UTF-8即 ...

  3. Ruby探微初步

    我的导师,曾经对我说过,常规编程语言大抵不过顺序.条件.循环 接下来以Ruby为例,简单说说 控制语句 控制语句能让程序在某种条件下,改变执行顺序,或者只执行某一部分. 控制语句的分类 控制语句大致可 ...

  4. 数组如何在ElasticSearch中索引

    一.简介 在ElasticSearch里没有专门的数组类型,任何一个字段都可以有零个和多个值.当字段值的个数大于1时,字段类型就变成了数组. 下面以视频数据为例,介绍ElasticSearch如何索引 ...

  5. 测试必备:jmeter测试http协议接口的各种传参方式

    测试接口,postman和jmeter是用得最频繁的工具,特别是jmeter,支持很多种协议,且除了测功能,还能做自动化测试和性能测试.下面主要介绍jmeter测试http协议接口的用法,包含get, ...

  6. Oracle学习(二)SQL高级--表数据相关

    SQL高级语句 top / limit / rownum / percent (前XXX条数据) --top(SQL Server / MS Access) select top 条数 from 表; ...

  7. Spring框架分为哪七大模块,各模块的主要功能作用是什么

    七大模块,如下: 1. Spring Core: Core封装包是框架的最基础部分,提供IOC和依赖注入特性.这里的基础概念是BeanFactory,它提供对Factory模式的经典实现来消除对程序性 ...

  8. 用Docker swarm快速部署Nebula Graph集群

    用Docker swarm快速部署Nebula Graph集群 一.前言 本文介绍如何使用 Docker Swarm 来部署 Nebula Graph 集群. 二.nebula集群搭建 2.1 环境准 ...

  9. Java 审计之XXE篇

    Java 审计之XXE篇 0x00 前言 在以前XXE漏洞了解得并不多,只是有一个初步的认识和靶机里面遇到过.下面来 深入了解一下该漏洞的产生和利用. 0x01 XXE漏洞 当程序在解析XML输入时, ...

  10. SON Web Tokens 工具类 [ JwtUtil ]

    pom.xml <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt< ...