Chinaunix首页 | 论坛 | 博客
  • 博客访问: 160160
  • 博文数量: 20
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 221
  • 用 户 组: 普通用户
  • 注册时间: 2015-01-14 18:03
个人简介

做好自己份内事

文章分类

全部博文(20)

文章存档

2019年(1)

2018年(2)

2017年(3)

2016年(3)

2015年(11)

我的朋友

分类: 系统运维

2018-03-06 15:03:59

kafka及kafka-manager安装

要求:jdk8+

所有配置文件配置项比较多,尽量保持默认值,环境搭建起来之后再依次调优。

kafka运行依赖jdk,所以首先安装jdk

验证本地是否已经安装jdk及版本命令:java -version

如果本地没有安装jdk。上传文件jdk-8u111-linux-x64.tar.gz(jdk文件,版本1.8)。

建立文件夹:mkdir -p /usr/local/java

拷贝文件:cp jdk-8u111-linux-x64.tar.gz /usr/local/java

解压文件:cd /usr/local/java && tar zxvf jdk-8u111-linux-x64.tar.gz

设置环境变量:

访问文件:vi /etc/profile

JAVA_HOME=/usr/local /java/jdk1.8.0_111

JRE_HOME=/usr/local /java/jdk1.8.0_111/jre

CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

export JAVA_HOME JRE_HOME CLASS_PATH PATH

更新设置文件命令:source /etc/profile

命令验证jdk安装:java -version


kafka安装

上传kafka文件:kafka_2.11-1.0.0.tgz

解压文件到/usr/local/目录下:tar zxvf kafka_2.11-1.0.0.tgz -C /usr/local/

进入kafka目录:cd /usr/local/kafka_2.11-1.0.0/

下列所有路径的相对路径都是/usr/local/kafka_2.11-1.0.0/

配置文件:/config/server.properties下列配置项必须配置:

log.dirs=/usr/local/kafka_2.11-1.0.0/data;日志文件路径,必须配置,同台机器上不同的服务路径必须不一样,否则数据会被覆盖,路径必须存在,手动创建。/usr/local/kafka_2.11-1.0.0/logs文件为kafka运行日志文件,

       num.partitions=40 默认分区数

       offsets.topic.replication.factor=3 生产环境必须这么配置,解决内部管理偏移量的topic备份数

       transaction.state.log.replication.factor=3 生产环境必须这么配置

       transaction.state.log.min.isr=3 生产环境必须这么配置
增加:

      auto.create.topics.enable=true 自动创建topic

      default.replication.factor=3 默认备份数



首先启动Zookeeper:

nohup bin/zookeeper-server-start.sh config/zookeeper.properties>/dev/null 2>&1 &

启动kafka

nohup bin/kafka-server-start.sh config/server.properties>/dev/null 2>&1 &

不同机器kafka集群安装,这里以三台为例,ip分别是:192.169.0.4192.169.0.5192.169.0.6

最主要是Zookeeper集群和kafka集群的搭建。

Zookeeper集群:最主要的配置文件是:config/zookeeper.properties

三台机器的配置文件都是一样的:

dataLogDir=/usr/local/kafka_2.11-1.0.0/zookeeper

dataDir=/usr/local/kafka_2.11-1.0.0/zookeeper

# the port at which the clients will connect

clientPort=2181

# disable the per-ip limit on the number of connections since this is a non-production config

maxClientCnxns=100

tickTime=2000

initLimit=10

syncLimit=5


server.1=192.169.0.4:2888:3888

server.2=192.169.0.5:2888:3888

server.3=192.169.0.6:2888:3888

标志红色部分以实际情况为主,路径需要存在,因为Zookeeper启动不会创建路径。在对应路径下创建文件myid。把对应ip的编号写进入。比如192.169.0.4机器下目录/usr/local/kafka_2.11-1.0.0/zookeeper下的myid,文件内容是1.

依次启动三台机器的Zookeeper,第一台机器启动的时候会不停的报错,连接不上另外两台机器,启动另外两台就好。Zookeeper的机器就算搭建成功了。


kafka集群:最主要的配置文件:config/server.properties

broker.id=1;默认是0,集群中,每台机器这个整形数值不能重复,可以依次为1、2、3

zookeeper.connect=192.169.0.4:2181,192.169.0.5:2181,192.169.0.6:2181;对应Zookeeper的集群ip,端口,逗号分隔。

依次启动kafka即可。


集群搭建ok之后,使用文档后面的常用命令测试一下。


kafka-manager安装

上传kafka-manager文件:kafka-manager-1.3.3.7.zip(这个文件是编译好的,官网上的文件都是需要编译的)

解压文件到/usr/local/目录下:unzip kafka-manager-1.3.3.7.zip -d /usr/local/

进入目录:cd /usr/local/ kafka-manager-1.3.3.7

最主要的配置文件:conf/application.conf

kafka-manager.zkhosts="192.169.0.4:2181,192.169.0.5:2181,192.169.0.6:2181";配置Zookeeper集群信息即可

启动命令:nohup bin/kafka-manager -Dconfig.file=conf/application.conf -Dhttp.port=8080

最后一个参数是指定端口,不加的话,默认端口是9000.

访问:

可以看到kafka-manager管理界面


kafka-manager编译

kafka-manager编译最好在一个有网络环境的机器上编译,下载路径:

下载之后,解压。./sbt clean dist

第一次编译会比较痛苦,时间比较久,容易出错,多执行几次就好。

编译要很久,大概半半天时间。

相对路径target/universal/下有kafka-manager-1.3.3.16.zip对应的编译完成的包




常用命令:

创建topic test

./bin/kafka-topics.sh --create --zookeeper 192.169.0.4:2181,192.169.0.5:2181,192.169.0.6:2181 --replication-factor 3 --partitions 3 --topic test

列出已创建的topic列表

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

模拟客户端去发送消息

./bin/kafka-console-producer.sh --broker-list 192.169.0.4:9092,192.169.0.5:9092,192.169.0.6:9092 --topic test

模拟客户端去接受消息

./bin/kafka-console-consumer.sh --zookeeper 192.169.0.4:2181,192.169.0.5:2181,192.169.0.6:2181 --from-beginning --topic test

指定客户端组消费消息

./bin/kafka-console-consumer.sh --zookeeper 192.169.0.4:2181,192.169.0.5:2181,192.169.0.6:2181 --group xiaoxiao --topic test

查看指定的主题

./bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic test

查看所有topic

./bin/kafka-topics.sh --zookeeper 192.169.0.4:2181,192.169.0.5:2181,192.169.0.6:2181 --list

删除指定topic

./bin/kafka-topics.sh --delete --zookeeper 192.169.0.4:2181,192.169.0.5:2181,192.169.0.6:2181 --topic test

阅读(11720) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~