暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Deploy Kafka for Centos 7

Linux技术宅 2023-10-12
105

点击上方蓝字:Linux技术宅,关注我!!!

Every Day

望洞庭

[作者] 刘禹锡 [朝代] 唐

湖光秋月两相和,潭面无风镜未磨。

遥望洞庭山水翠,白银盘里一青螺。

应用介绍

Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写,用于处理消费者在网站中的所有动作流数据。


Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据,这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。对于像Hadoop一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。


部署简述

本文是对Kafka应用的二进制安装方式进行操作,这里以版本2.6.0为例。

配置JDK

请参考如下链接,这里不再赘述。

配置Zookeeper

请参考如下链接,这里不再赘述。

下载地址

版本根据需求下载,顺便提一句国内源一般只保留同步最新的3个版本

官方源

https://kafka.apache.org/downloads

清华源

https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/

部署

  • 安装wget
    yum install -y wget
    • 进入目录
      cd usr/local/
      • 下载kafka_2.13-2.6.0.tgz

        wget https://archive.apache.org/dist/kafka/2.6.0/kafka_2.13-2.6.0.tgz
        • 解压、改名
          tar xzvf kafka_2.13-2.6.0.tgz
          mv kafka_2.13-2.6.0 kafka
          # 这里也可以使用软连接的方式
          ln -s kafka_2.13-2.6.0 kafk
          • 配置配置文件: 修改为zookeeper的IP地址
            vim config/server.properties


            #修改localhost为zookeeper服务器IP
            zookeeper.connect=localhost:2181


            #改为
            zookeeper.connect=172.16.14.20:218
            • 启动Kafka服务
              bin/kafka-server-start.sh -daemon config/server.properties
              • 配置

                # 需要的zookeeper地址配置为控制中心主机,创建名为data 的主题,一副本一分区
                kafka-topics.sh --create --zookeeper 172.16.14.20:2181 --topic data --replication-factor 1 --partitions 1


                #--topic后面的datatopic主题的名称
                #--zookeeper应该和server.properties文件中的zookeeper.connect一样
                #--replication-factor指定每个partition的副本个数,默认1个
                #--partitions指定topicpartition分区数量,如果不指定该数量,默认是server.properties文件中的num.partitions配置值
                • 查看配置列表

                  bin/kafka-topics.sh --list --zookeeper 172.16.14.20:2181
                  __consumer_offsets
                  data
                  • 编写系统服务kafka.service文件
                    • 注意:文件中提到的Environment参数需要填写JDK的绝对路径,如何查找在jdk文章中有相应说明。
                    vim usr/lib/systemd/system/kafka.service


                    # 添加内容
                    [Unit]
                    Description=kafka
                    After=network.target remote-fs.target nss-lookup.target


                    [Service]
                    Type=forking
                    Environment="PATH=/usr/bin:/usr/lib:/etc:/usr/share:/usr/lib/jvm/java-11-openjdk-11.0.12.0.7-0.el7_9.x86_64/bin"
                    ExecStart=/usr/local/kafka/bin/kafka-server-start.sh -daemon usr/local/kafka/config/server.properties
                    ExecReload=/bin/kill -s HUP $MAINPID
                    ExecStop=/usr/local/kafka/bin/kafka-server-stop.sh
                    #PrivateTmp=true


                    [Install]
                    WantedBy=multi-user.targe
                    • 重载系统服务
                      systemctl daemon-reload
                      • 设置开机启动
                        systemctl enable kafka
                        • 启动命令
                          # start|status|stop
                          systemctl start kafka

                          到这里Kafka服务的相关部署就完成了, 还可以检查相关端口是否启用,访问是否正常(如异常请确认防火墙及SELinux状态)等。

                          参考资料

                          https://www.cnblogs.com/huxi2b/p/5923252.html

                          https://blog.csdn.net/ljl890705/article/details/80543109




                          分享、在看与点赞

                          只要你点,我们就是胖友

                          ​​​​

                          文章转载自Linux技术宅,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                          评论