kafka

  kafka是一个分布式流平台,kafka说到底其实就是一个数据缓存池的作用。在数据高峰的时候不至于数据处理堵塞,而是有所缓冲。

一、部署

  kafka是依赖zookeeper,所以先要部署zookeeper。

1.1 部署zk的单机模式

  老3样,设置环境变量

1、解压zookeeper
tar -zxvf zookeeper-3.4.5-cdh5.12.0.tar.gz -C ../app
2、配置环境变量
#zookeeper
export ZOOKEEPER_HOME=/home/hadoop/app/zookeeper/zookeeper
export PATH=$ZOOKEEPER_HOME/bin:$PATH
3、生效环境变量
source ~/.bash_profile

  而后是配置:

1、进入配置文件夹
cd $ZK_HOME/conf/
2、考一个配置文件
cp zoo_sample.cfg zoo.cfg
3、配置zoo.cfg文件
更改 dataDir=/home/hadoop/app/tmp/zookeeper

  配置zk程序的zoo.cfg文件

1、设置dataDir
dataDir=/home/hadoop/app/tmp/zookeeper
2、设置客户端端口
clientPort=2181
3、设置zk服务器节点
server.1=hadoop000:2888:3888
第一个端口号:服务器leader的服务端口
第二个端口号:服务器选举leader的服务端口
4、在刚才的这个dataDir的目录下
这个路径下创建一个文件叫做myid
然后 在文件中输入节点编号,如1
1.2配置kafka 单机模式

  kafka主要配置的是broker节点,先是老三样。

1、解压kafka
tar -zxvf kafka_2.11-0.10.2.2.tgz -C ../app
2、配置环境变量
#kafka
export KAFKA_HOME=/home/hadoop/app/kafka/kafka
export PATH=$KAFKA_HOME/bin:$PATH
3、生效环境变量
source ~/.bash_profile

  配置$KAFKA_HOME/config/server.properties

1、broker.id=0    //每个borker都必须设置的不一样
2、listeners=PLAINTEXT://:9092         //监听的地址
3、log.dirs=/home/hadoop/app/kafka/tmp/kafka-logs             //缓存所放的位置
4、zookeeper.connect=hadoop000:2181                     //zookeeper地址,以,分隔

二、卡夫卡常用命令

2.1 启动zk、kafka命令
zkServer.sh start
kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties
2.2 kafka创建Topic
bin/kafka-topics.sh --zookeeper hadoop000:2181 --create --topic mytopic --partitions 1  --replication-factor 1
2.3 kafka查看Topic
bin/kafka-topics.sh --zookeeper hadoop000:2181 --list
2.4 查看Topic的数据
bin/kafka-topics.sh --zookeeper hadoop000:2181 --describe --topic mytopic
2.5 增加Topic的数量
bin/kafka-topics.sh --zookeeper hadoop000:2181  --alter --topic mytopic --partitions 10
2.6 查看某个组的消费情况
bin/kafka-run-class.sh kafka.tools.ConsumerOffsetChecker --group mygroup
2.7 生产数据
bin/kafka-console-producer.sh --broker-list hadoop000:9092 --topic mytopic 
2.8 消费数据
bin/kafka-console-consumer.sh  --zookeeper hadoop000:2181  --topic mytopic --from-beginning
### Kafka入门教程及使用场景 #### 一、Kafka简介 Apache Kafka 是一种分布式流处理平台,能够实现高吞吐量的消息传递系统。它最初由 LinkedIn 开发并开源,现已成为 Apache 软件基金会的一部分[^1]。 #### 二、Kafka的安装与配置 以下是基于 Docker 的 Kafka 安装方法: ```yaml version: "1" services: kafka: image: 'bitnami/kafka:latest' hostname: kafka ports: - 9092:9092 - 9093:9093 volumes: - 'D:\Docker\Kafka\data:/bitnami/kafka' networks: - kafka_net environment: # KRaft settings - KAFKA_CFG_NODE_ID=0 - KAFKA_CFG_PROCESS_ROLES=controller,broker - KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=0@kafka:9093 # Listeners - KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093 - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://192.168.2.51:9092 - KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT - KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER - KAFKA_CFG_INTER_BROKER_LISTENER_NAME=PLAINTEXT networks: kafka_net: driver: bridge ``` 运行命令如下: ```bash docker-compose -f .\docker-compose.yml up -d ``` 上述 YAML 文件定义了一个简单的 Kafka 集群环境,并通过 `docker-compose` 启动服务[^1]。 #### 三、Kafka的基础概念 在 Kafka 中,消息被存储在主题(Topic)中,而每个 Topic 又分为若干分区(Partition)。每个分区有一个 Leader 和零个或多个 Follower。Leader 负责读写操作,Follower 则同步数据以提供冗余支持。当创建一个新的 Topic 时,Kafka 自动将 Partition 的 Leader 均匀分布到各个 Broker 上,从而提高系统的可靠性和性能[^2]。 #### 四、可视化管理工具 Offset Explorer 是一款常用的 Kafka 数据管理和监控工具,可以帮助开发者更直观地查看和分析 Kafka 主题中的偏移量和其他元数据信息[^1]。 #### 五、Kafka的主要使用场景 1. **日志收集**:Kafka 可用于集中式日志采集方案,实时捕获来自不同服务器的日志文件。 2. **消息队列**:作为传统 MQ 替代品,Kafka 提供高性能异步通信机制。 3. **活动跟踪**:记录用户的在线行为轨迹,便于后续数据分析挖掘价值。 4. **指标监测**:构建企业级运营状态仪表盘,展示关键业务指标变化趋势。 5. **ETL流程优化**:连接多种数据库之间复杂的数据转换过程,提升效率减少延迟。 #### 六、总结 通过对 Kafka 的基本原理理解及其实际应用场景探讨,可以更好地掌握如何利用这一强大技术解决现实世界中的挑战性问题。 问题
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值