IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> mac 安装及操作kafka -> 正文阅读

[大数据]mac 安装及操作kafka

首先对kafka的科普,这里不会讲了,不过这有一篇文章,我感觉用来入门还是挺好。

深入浅出理解基于 Kafka 和 ZooKeeper 的分布式消息队列icon-default.png?t=M1L8https://gitbook.cn/books/5ae1e77197c22f130e67ec4e/index.html???????

操作系统:macOS12

mac M1系统,已经不支持用brew直接安装使用kafka了,所以需要到官网下载安装包。

当然,首先需要在电脑上配置好java环境,这个就不在这说了

在终端输入 java -version 显示类似如下信息,说明就配置好java环境了

openjdk version "1.8.0_322"
OpenJDK Runtime Environment (Zulu 8.60.0.21-CA-macos-aarch64) (build 1.8.0_322-b06)
OpenJDK 64-Bit Server VM (Zulu 8.60.0.21-CA-macos-aarch64) (build 25.322-b06, mixed mode)

其实完全按照kafka官网给的指导就能顺利操作成功

1. 先下载下来安装包,按照官网建议,选择第一行的链接。

然后解压,进入到安装包内,目录如下:

?

?2. 开启kafka环境:

? ? ? ? 在此文件夹中打开终端,先开启的是zookeeper服务:

bin/zookeeper-server-start.sh config/zookeeper.properties

? ? ? ? 然后再打开一个终端,这次开启的是kafka服务:

bin/kafka-server-start.sh config/server.properties

如果两条命令都没有报错,那么就可以认定kafka的运行环境启动成功了

3. 安装python运行kafka的标准库

? 官网上给的这一步,是基于命令行操作的kafka,在这我们要做的是利用python操作kafka。

? 所以,接下来要先安装kafka的python包,如下:

pip install kafka-python

? 这里需要说的是,我还没有找到可以像brew启动服务一样启动kafka服务,所以暂定以第2步这种比较麻烦的方式开启服务。当然如果读者有更好的,欢迎留言告诉我。

4. 一个kafka-python的demo

# kafka_demo.py

from kafka import KafkaProducer, KafkaConsumer
from kafka.errors import KafkaError
import json

def producer_demo():
    # 假设生产的消息是json格式
    producer = KafkaProducer(  # 实例化一个生产者
        bootstrap_servers=['localhost:9092'], 
        key_serializer=lambda k: json.dumps(k).encode(),
        value_serializer=lambda v: json.dumps(v).encode())
    # 发送消息
    for i in range(5):
        future = producer.send(
            'kafka_demo',
            key='count_num',  # 同一个key值,会被送至同一个分区
            value=str(i))
        print(f"send {i}")
        try:
            future.get(timeout=10) # 监控是否发送成功           
        except KafkaError as e:  # 发送失败抛出KafkaError
            print(e)
            
def consumer_demo():
    consumer = KafkaConsumer(  # 实例化一个消费者
        'kafka_demo', 
        bootstrap_servers=':9092',
        group_id='test'
    )
    for message in consumer:
        print("receive, key: {}, value: {}".format(
            json.loads(message.key.decode()),
            json.loads(message.value.decode())
            )
        )
        

相信大家在其他地方已经学习了kafka的生产-消费模式,这里就不多说了。

代码中的两个方法要分开执行,可以进入python交互模式导入kafka_demo,然后依次执行两个方法。

待续.....

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-02-26 11:37:32  更:2022-02-26 11:37:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 11:57:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码