kafka安装搭建以及topic创建相关

kafka安装搭建(Linux)

kafka安装

由于kafka运行需要jdk以及zookeeper的支持,所以需要先在环境里面搭建好jdk以及zookeeper

###java安装

  • 0.下载jdk8

    登录Oracle官网
    选择对应jdk版本下载。(可在Windows下下载完成后,通过文件夹共享到Linux上)

  • 1.登录Linux,切换到root用户

    • su root 获取root用户权限,当前工作目录不变(需要root密码)

    • sudo -i不需要root密码直接切换成root(需要当前用户密码)

    • 文件——连接SFTP标签——将压缩文件拖入SFTP窗口(最方便)

  • 2.在home目录下建立java安装目录 cd /home mkdir java

  • 3.将jdk-8u60-linux-x64.tar.gz拷贝到java目录下

    • cp /home/temp/linux/jdk-8u60-linux-x64.tar.gz /usr/java/
  • 4.解压jdk到当前目录

    • tar -zxvf jdk-8u60-linux-x64.tar.gz

      得到文件夹 jdk1.8.0_60

  • 5.安装完毕为他建立一个链接以节省目录长度

    • ln -s /usr/java/jdk1.8.0_60/ /usr/jdk(我没用这一步)
  • 6.编辑配置文件,配置环境变量

    vim /etc/profile
    添加如下内容:JAVA_HOME根据实际目录来

    JAVA_HOME=/home/java/jdk1.8.0_60
    
    CLASSPATH=$JAVA_HOME/lib/
    
    PATH=PATH:JAVA_HOME/bin
    
    export PATH JAVA_HOME CLASSPATH
    
    
  • 7.重启机器或执行命令 :source /etc/profile

    sudo shutdown -r now

  • 8.查看安装情况

    java -version

zookeeper安装

  • 下载

官网下载地址

img

  • 上传解压

    将刚才下载的文件,上传到Linux文件系统中。然后解压:

[root@nbu tmp]#tar -zxvf zookeeper-3.4.10.tar.gz

​ 将解压后的文件复制到/home目录下,并重命名为zookeeper

[root@nbu tmp]# cp zookeeper-3.4.10 /home/zookeeper -r  //复制所有文件到zookeeper 文件夹下
[root@nbu tmp]# cd /usr/local/zookeeper				   //切换到/home/zookeeper目录下
  • 配置

    切换到zookeeper目录下的conf目录下,重新复制一份zoo_sample.cfg文件并命名为zoo.cfg

[root@nbu conf]# cp zoo_sample.cfg zoo.cfg	//copy一份到当前目录下,并命名为zoo.cfg

修改zoo.cfg文件如下:

[root@nbu conf]# vi zoo.cfg



dataDir=/tmp/zookeeper

前提是要创建/tmp/zookeeper目录,不然启动时会报错。

  • 最后一步配置环境变量:
[root@nbu zookeeper]# vi /etc/profile			//编辑文件
[root@nbu zookeeper]# source /etc/profile    //使生效

添加如下内容:

export ZOOKEEPER=/usr/local/zookeeper
export PATH=$PATH:$ZOOKEEPER/bin

img

  • 启动Zookeeper

因为配置了环境变量,所以在任意目录下都可以运行以下启动命令启动Zookeeper。

[root@nbu ~]# zkServer.sh start //启动

[root@nbu ~]# zkServer.sh status  //查看运行状态

启动客户端:

[root@nbu ~]# zkCli.sh   //启动客户端

Zookeeper运行报错情况

1.zookeeper 集群在始终拒绝连接

​ 需要在hosts里面注释掉127.0.0.1这一行,两个地址映射不能指向自己,该指向集群中其它机器,端口绑定的地址不是127.0.0.1所以不能用这个地址。

2.zookeeper中无法找到zoo.cfg

在运行./zkServer.sh 时候 需要指定一下后面的config 配置的zoo.cfg路径

以/home/zookeeper目录为例

./bin/zkServer.sh --config /home/zookeeper/conf start

查看状态依旧

/bin/zkServer.sh --config /home/zookeeper/con status

3.broken.id配置myid配置

# 创建 ID 文件,并把 server.x 中的 x 数字写入文件中

eg:10.172.53.144

vi /tmp/zookeeper/myid

Kafka集群部署

  1. 解压安装包

[root@nbu software]$ tar -zxvf kafka_2.11-0.11.0.0.tgz -C /opt/module/

  1. 修改解压后的文件名称

[root@nbu module]$ mv kafka_2.11-0.11.0.0/ kafka

  1. 在/opt/module/kafka目录下创建logs文件夹

[root@nbu kafka]$ mkdir logs

  1. 修改配置文件

[root@nbu kafka]$ cd config/

[root@nbu config]$ vi server.properties

输入以下内容:

#broker的全局唯一编号,不能重复

broker.id=0

#删除topic功能使能

delete.topic.enable=true

#处理网络请求的线程数量

num.network.threads=3

#用来处理磁盘IO的现成数量

num.io.threads=8

#发送套接字的缓冲区大小

socket.send.buffer.bytes=102400

#接收套接字的缓冲区大小

socket.receive.buffer.bytes=102400

#请求套接字的缓冲区大小

socket.request.max.bytes=104857600

#kafka运行日志存放的路径	

log.dirs=/opt/module/kafka/logs

#topic在当前broker上的分区个数

num.partitions=1

#用来恢复和清理data下数据的线程数量

num.recovery.threads.per.data.dir=1

#segment文件保留的最长时间,超时将被删除

log.retention.hours=168

#配置连接Zookeeper集群地址

zookeeper.connect=kafka2.sd.cn:2181,kafka3.sd.cn:2181,kafka1.sd.cn:2181
  1. 配置环境变量

[root@nbu module]$ sudo vi /etc/profile

#KAFKA_HOME

export KAFKA_HOME=/opt/module/kafka

export PATH=PATH:KAFKA_HOME/bin

[root@nbu module]$ source /etc/profile

  1. 分发安装包

[root@nbu module]$ xsync kafka/

​ 注意:分发之后记得配置其他机器的环境变量

  1. 分别在kafka1.sd.cn和kafka2.sd.cn上修改配置文件/opt/module/kafka/config/server.properties中的broker.id=1、broker.id=2

    注:broker.id不得重复

  2. 启动集群

    依次在kafka1.sd.cn、kafka2.sd.cn、kafka3.sd.cn节点上启动kafka

  • [root@nbu kafka]$ bin/kafka-server-start.sh config/server.properties &
  1. 关闭集群
  • [root@nbu kafka]$ bin/kafka-server-stop.sh stop

kafka运行

运行

在目录/home/kafka下运行命令

  • ./bin/kafka-server-start.sh config/server.properties &
  • 其中容易出现报错,解决方法 在/tmp/kafka-logs/mate.propoties中 ,注释掉那条ID的语句
  • 其中 kafka服务关闭语句为kafka-server-stop.sh

创建topic

运行成功后进行topic的创建

  • 创建 ./bin/kafka-topics.sh --create --zookeeper kafka2.sd.cn:2181 --replication-factor 3 --partitions 1 --topic test-xu

    • 其中–replication-factor 指的是复制份数 一般不超过集群的个数
    • –partitions 1 指分区
    • –topic 命名
  • 删除topic

    • ./bin/kafka-topics.sh --delete --zookeeper kafka2.sd.cn:2181 --topic test
    • 需要 server.properties 中设置 delete.topic.enable=true 否则只是标记删除或者直接重启
  • 查看 创建的topic

    • ./bin/kafka-topics.sh --describe --zookeeper kafka2.sd.cn:2181 --topic test-xu
    • 创建topic之后 在/tmp/kafka-logs中 可以看到创建的topic名字
  • 列出当前kafka所有的topic

    • ./bin/kafka-topics.sh --zookeeper kafka2.sd.cn:2181 --list
  • 修改topic(分区数、特殊配置如compact属性、数据保留时间等)

    • bin/kafka-topics.sh --zookeeper nbu:2181 --alter --partitions 3 --config cleanup.policy=compact --topic test_topic
    • 修改topic(也可以用这种)
    • bin/kafka-configs.sh --alter --zookeeper nbu:2181 --entity-name test_topic --entity-type topics --add-config cleanup.policy=compact
    • bin/kafka-configs.sh --alter --zookeeper nbu:2181 --entity-name test_topic --entity-type topics --delete-config cleanup.policy
  • 删除topic

    • ./bin/kafka-topics.sh --delete --zookeeper kafka2.sd.cn:2181 --topic test21
  • 通过 shell 命令发送消息

    • ./bin/kafka-console-producer.sh --broker-list kafka2.sd.cn:9092 --topic test-xu
  • 通过 shell 消费消息
    • 低版本: ./bin/kafka-console-consumer.sh --zookeeper kafka2.sd.cn:2181 --from-beginning --topic test-xu
    • 最新: ./bin/kafka-console-consumer.sh --bootstrap-server kafka2.sd.cn:9092 --topic test-xu --from-beginning
      • 其中 --from-begining 表示 从生产者一开始发送数据开始接收

遇到的报错

  1. 找不到需要连接的host,需要在server.propreties中配置好 hostname ,注意需要写入
  2. /tmp/meta.properties 中将id引用掉

在这里插入图片描述
创建topic生产消息
在这里插入图片描述
消费消息
在这里插入图片描述

删除topic

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值