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. docker下jira数据备份和还原注意路径

    重点:jira页面上的备份与恢复页面的路径,跟我实际路径是有出入的,如果找不到就用find去搜下备份文件就知道怎么操作了 1.登录jira后,右上角的系统——左侧的导入与导出——选择里面的备份与恢复 ...

  2. 吴恩达《深度学习》-第二门课 (Improving Deep Neural Networks:Hyperparameter tuning, Regularization and Optimization)-第一周:深度学习的实践层面 (Practical aspects of Deep Learning) -课程笔记

    第一周:深度学习的实践层面 (Practical aspects of Deep Learning) 1.1 训练,验证,测试集(Train / Dev / Test sets) 创建新应用的过程中, ...

  3. Swift入门

    Swift 入门 简介 Swift 语言由苹果公司在 2014 年推出,用来撰写 OS X 和 iOS 应用程序 2014 年,在 Apple WWDC 发布 历史 2010 年 7 月,苹果开发者工 ...

  4. [算法]美团春招笔试题C-求有趣子序列数(DP)

    题目 输入n,以及长度为n的数组元素 输出数组的非空子序列中有多少个"有趣序列"mod 998244353,有趣序列指所有元素满足arr[i]%i == 0, i从0记. 例: 输 ...

  5. MYsql添加用户、赋予权限

    1.创建新用户 CREATE USER 'admin'@'%' IDENTIFIED BY '123456'; '%' 表示可以远程登录访问.操作 ‘localhost’ 表示只能本地登录访问.操作2 ...

  6. JVM--先说本地方法接口

    本地方法接口 在讲Java虚拟机运行时数据区中本地方法栈之前,我们先来说说运行时数据区之外的一个叫本地方法接口的东西简称JNI(Java Native Interface) 简单来讲,一个Native ...

  7. 使用binlog2sql恢复数据

    binlog2sql 是一款比较常用的数据恢复工具,可以通过它从MySQL binlog解析出你要的SQL,并根据不同选项,可以得到原始SQL.回滚SQL.去除主键的INSERT SQL等.主要用途如 ...

  8. Java11-ZGC

    Java 11包含一个全新的垃圾收集器--ZGC,它由Oracle开发,承诺在数TB的堆上具有非常低的暂停时间. 在本文中,我们将介绍开发新GC的动机,技术概述以及由ZGC开启的一些可能性. 那么为什 ...

  9. mac电脑,charles,安卓手机如何配置代理,以及配置代理之后无法上网。已解决

    设备: 电脑:mac book pro 手机:小米10 charles:4.5.6 方法一: 步骤: 首先确保电脑,手机在同一局域网, 1. charles设置代理:proxy -> proxy ...

  10. 你在开发过程中使用Git Rebase还是Git Merge?

    摘要:在git里面经常的一个争论是到底用rebase还是用merge? 1. 痛苦吗?代码历史中的迷失羔羊 我们先来看一个真实的代码提交历史图形化截图: 图片源自 https://storage.kr ...