kafka安装和简单测试

2023-11-04

Kafka的安装和简单实例测试_厦大数据库实验室博客

ps:上边文章的kafka版本有点老,是0.10.1.0版本的。

最新的kafka版本启动和创建topic等命令有所改变。

核心概念

下面介绍Kafka相关概念,以便运行下面实例的同时,更好地理解Kafka.
1. Broker
Kafka集群包含一个或多个服务器,这种服务器被称为broker
2. Topic
每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。(物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个broker上但用户只需指定消息的Topic即可生产或消费数据而不必关心数据存于何处)
3. Partition
Partition是物理上的概念,每个Topic包含一个或多个Partition.
4. Producer
负责发布消息到Kafka broker
5. Consumer
消息消费者,向Kafka broker读取消息的客户端。
6. Consumer Group
每个Consumer属于一个特定的Consumer Group(可为每个Consumer指定group name,若不指定group name则属于默认的group)

kafka2.0之后的版本部署手顺:

1.下载

https://kafka.apache.org/downloads

weget https://dlcdn.apache.org/kafka/3.2.0/kafka_2.12-3.2.0.tgz

2.启动zooker

cd /usr/local/kafka

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

命令执行后不会返回Shell命令输入状态,zookeeper就会按照默认的配置文件启动服务,

请千万不要关闭当前终端.

启动新的终端,输入下边的启动kafka命令

3.启动kafka

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

请千万不要关闭当前终端.

启动新的终端,输入下边的创建topic命令

4.创建一个topic

#创建topic
bin/kafka-topics.sh --create --topic dblab --bootstrap-server localhost:9092

#展示topic
bin/kafka-topics.sh --bootstrap-server localhost:2181 --list

可以再打开一个新的窗口,新建一个producer

5.开启一个producer

#启动producer
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic dblab

然后再次开启新的终端或者直接按CTRL+C退出。然后使用consumer来接收数据,输入如下命令:

6.开启一个consumer

#启动一个consumer
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic dblab

7.验证

在producer窗口中输入字符,然后在consumer中查看是否显示。

老版本0.10.1.0的kafka安装手顺如下:

Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群机来提供实时的消费。下面介绍有关Kafka的简单安装和使用,想全面了解Kafka,请访问Kafka的官方博客

安装

Kafka的使用依赖于zookeeper,安装Kafka前必须先安装zookeeper.

Mac OSX 系统安装Kafka

Mac 系统安装使用HomeBrew工具安装kafka.HomeBrew会自动把所依赖的工具和软件安装好。HomeBrew会把kafka和zookeeper安装在/usr/local/Cellar/ 目录下。
在终端中执行如下命令:

 
  1. brew install kafka

Shell 命令

执行完如上命令,系统自动安装好zookeeper和kafka.

Ubuntu 系统安装Kafka

访问Kafka官方下载页面,下载稳定版本0.10.1.0的kafka.此安装包内已经附带zookeeper,不需要额外安装zookeeper.按顺序执行如下步骤:

 
  1. cd ~/下载
  2. sudo tar -zxf kafka_2.11-0.10.1.0.tgz -C /usr/local
  3. cd /usr/local
  4. sudo mv kafka_2.11-0.10.1.0/ ./kafka
  5. sudo chown -R hadoop ./kafka

Shell 命令

核心概念

下面介绍Kafka相关概念,以便运行下面实例的同时,更好地理解Kafka.
1. Broker
Kafka集群包含一个或多个服务器,这种服务器被称为broker
2. Topic
每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。(物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个broker上但用户只需指定消息的Topic即可生产或消费数据而不必关心数据存于何处)
3. Partition
Partition是物理上的概念,每个Topic包含一个或多个Partition.
4. Producer
负责发布消息到Kafka broker
5. Consumer
消息消费者,向Kafka broker读取消息的客户端。
6. Consumer Group
每个Consumer属于一个特定的Consumer Group(可为每个Consumer指定group name,若不指定group name则属于默认的group)

测试简单实例

接下来在Ubuntu系统环境下测试简单的实例。Mac系统请自己按照安装的位置,切换到相应的指令。按顺序执行如下命令:

 
  1. # 进入kafka所在的目录
  2. cd /usr/local/kafka
  3. bin/zookeeper-server-start.sh config/zookeeper.properties

Shell 命令

命令执行后不会返回Shell命令输入状态,zookeeper就会按照默认的配置文件启动服务,请千万不要关闭当前终端.启动新的终端,输入如下命令:

 
  1. cd /usr/local/kafka
  2. bin/kafka-server-start.sh config/server.properties

Shell 命令

kafka服务端就启动了,请千万不要关闭当前终端。启动另外一个终端,输入如下命令:

 
  1. cd /usr/local/kafka
  2. bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic dblab

Shell 命令

topic是发布消息发布的category,以单节点的配置创建了一个叫dblab的topic.可以用list列出所有创建的topics,来查看刚才创建的主题是否存在。

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

Shell 命令

可以在结果中查看到dblab这个topic存在。接下来用producer生产点数据:

 
  1. bin/kafka-console-producer.sh --broker-list localhost:9092 --topic dblab

Shell 命令

并尝试输入如下信息:

hello hadoop
hello xmu
hadoop world

然后再次开启新的终端或者直接按CTRL+C退出。然后使用consumer来接收数据,输入如下命令:

 
  1. cd /usr/local/kafka
  2. bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic dblab --from-beginning

Shell 命令

便可以看到刚才产生的三条信息。说明kafka安装成功。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

kafka安装和简单测试 的相关文章

  • 将数据从 oracle 移动到 HDFS,处理并从 HDFS 移动到 Teradata

    我的要求是 将数据从 Oracle 移至 HDFS 处理HDFS上的数据 将处理后的数据移至 Teradata 还需要每 15 分钟执行一次整个处理 源数据量可能接近50GB 处理后的数据也可能相同 在网上搜索了很多之后 我发现 PRARO
  • 猪的组连接等效吗?

    试图在 Pig 上完成这个任务 寻找 MySQL 的 group concat 等效项 例如 在我的表中 我有以下内容 3fields userid clickcount pagenumber 155 2 12 155 3 133 155
  • hive - 在值范围之间将一行拆分为多行

    我在下面有一张表 想按从开始列到结束列的范围拆分行 即 id 和 value 应该对开始和结束之间的每个值重复 包括两者 id value start end 1 5 1 4 2 8 5 9 所需输出 id value current
  • 名称节点处于安全模式

    我提到了这些问题名称节点处于安全模式 无法离开 https stackoverflow com questions 15803266 name node is in safe mode not able to leave and SafeM
  • Hadoop NoSuchMethodError apache.commons.cli

    我在用着hadoop 2 7 2我用 IntelliJ 做了一个 MapReduce 工作 在我的工作中 我正在使用apache commons cli 1 3 1我把库放在罐子里 当我在 Hadoop 集群上使用 MapReduceJob
  • 使用字符串数组在 Hive 表上加载 CSV 文件

    我正在尝试将 CSV 文件插入 Hive 其中一个字段是 string 数组 这是 CSV 文件 48 Snacks that Power Up Weight Loss Aidan B Prince Health Fitness Trave
  • Sqoop 导出分区的 Hive 表

    我在尝试导出分区的 Hive 表时遇到了一些问题 这是否完全受支持 我尝试用谷歌搜索并找到一张 JIRA 票证 sqoop export connect jdbc mysql localhost testdb table sales exp
  • 运行 Sqoop 导入和导出时如何找到最佳映射器数量?

    我正在使用 Sqoop 版本 1 4 2 和 Oracle 数据库 运行 Sqoop 命令时 例如这样 sqoop import fs
  • 是否可以使用 Java 读写 Parquet,而不依赖 Hadoop 和 HDFS?

    我一直在寻找这个问题的解决方案 在我看来 如果不引入对 HDFS 和 Hadoop 的依赖 就无法在 Java 程序中嵌入读写 Parquet 格式 它是否正确 我想在 Hadoop 集群之外的客户端计算机上进行读写 我开始对 Apache
  • 当我将文件存储在 HDFS 中时,它们会被复制吗?

    我是 Hadoop 新手 当我使用以下方式存储 Excel 文件时hadoop fs putcommoad 它存储在HDFS中 复制因子为3 我的问题是 是否需要3份并分别存储到3个节点中 这是 HDFS 工作的漫画 https docs
  • 在蜂巢中出现错误

    当我连接到 ireport 时 如果说在 hive shell 中显示表 则会出现此错误 元数据错误 java lang RuntimeException 无法实例化 org apache hadoop hive metastore Hiv
  • 与文件名中的冒号“:”作斗争

    我有以下代码 用于加载大量 csv gz 并将它们转储到其他文件夹中 并将源文件名作为一列 object DailyMerger extends App def allFiles path File List File val parts
  • 为什么我们需要将外部表移动到托管 Hive 表?

    我是 Hadoop 新手 正在学习 Hive 在 Hadoop 权威指南第 3 版中 第 12 页 第428章 最后一段 我不明白下面关于 HIVE 中外部表的段落 一种常见的模式是使用外部表访问存储在 HDFS 中的初始数据集 由另一个进
  • 如何有效地将数据从 Kafka 移动到 Impala 表?

    以下是当前流程的步骤 Flafka http blog cloudera com blog 2014 11 flafka apache flume meets apache kafka for event processing 将日志写入
  • 以不同用户身份运行 MapReduce 作业

    我有一个与 Hadoop 交互的 Web 应用程序 Cloudera cdh3u6 特定的用户操作应在集群中启动新的 MapReduce 作业 该集群不是一个安全集群 但它使用简单的组身份验证 因此 如果我以自己的身份通过 ssh 连接到它
  • 错误 hive.HiveConfig:无法加载 org.apache.hadoop.hive.conf.HiveConf。确保 HIVE_CONF _DIR 设置正确

    我正在尝试将数据从 sqoop 导入到 hive MySQL use sample create table forhive id int auto increment firstname varchar 36 lastname varch
  • 更改spark_temporary目录路径

    是否可以更改 temporarySpark在写入之前保存临时文件的目录 特别是 由于我正在编写表的单个分区 因此我希望临时文件夹位于分区文件夹内 是否可以 由于其实现原因 无法使用默认的 FileOutputCommiter FileOut
  • Hive 聚集在多个列上

    据我所知 当配置单元表聚集在一列上时 它会执行该分桶列的哈希函数 然后将该行数据放入其中一个桶中 每个桶都有一个文件 即如果有 32 个桶 那么 hdfs 中就有 32 个文件 将 clustered by 放在多个列上意味着什么 例如 假
  • 伪模式下没有名称节点错误

    我是hadoop新手 正处于学习阶段 根据 Hadoop Definitve 指南 我已将 hadoop 设置为伪分布式模式 一切正常 昨天我什至能够执行第三章中的所有示例 今天 当我重新启动我的unix并尝试运行start dfs sh然
  • Hadoop 超立方体

    嘿 我正在启动一个基于 hadoop 的超立方体 具有灵活的维度数 有人知道这方面现有的方法吗 我刚刚发现PigOLAP草图 http wiki apache org pig PigOLAPSketch 但没有代码可以使用它 另一种方法是Z

随机推荐

  • 手把手教你如何在Linux上彻底删除mysql

    1 先查看mysql安装情况 rpm qa grep i mysql 进入到你装mysql文件目录里面 cd usr local mysql 2 删除上图所有信息 rpm ev mysql community libs 5 7 32 1 e
  • postgre写sql时使用别的方法代替IN子句以提高查询效率

    两种方法 自测都好使 60s的执行时间缩短到了2s左右 我遇到的问题大概是这样 比如说我写了个sql select from student where name in lilei hanmeimei 这就是在student表查名字是lil
  • 一文看尽深度学习中的15种损失函数

    点击上方 计算机视觉工坊 选择 星标 干货第一时间送达 作者丨CVHub 来源丨CVHub 编辑丨极市平台 导读 本文详细介绍了深度学习中的各种损失函数的优点和局限性 在机器学习中 损失函数是代价函数的一部分 而代价函数则是目标函数的一种类
  • 常用断言方法

    1 断言是否相等 assertEqual a b msg 测试失败时打印的信息 断言a和b是否相等 相等则测试用例通过 assertNotEqual a b msg 测试失败时打印的信息 断言a和b是否相等 不相等则测试用例通过 2 断言是
  • 运行vue项目时报错defineConfig is not a function

    我遇到的这个问题的场景是这样的 我拉了一个比较早的项目是两年前的 那时候用的vue版本比较的 然后我直接在这个项目中配置代理 添加vue config js文件如下 然后运行vue项目就报错 个人感觉应该是vue cli service版本
  • MySQL:JDBC

    什么是JDBC JDBC Java DataBase Connectivity 称为 Java数据库连接 它是一种用于数据库访问的应用程序 API 由一组用Java语言编写的类和接口组成 有了JDBC就可以 用统一的语法对多种关系数据库进行
  • Tomcat7源码环境搭建

    一 下载Tomcat7源码 从官网上下载Tomcat源码 http mirror bit edu cn apache tomcat tomcat 7 v7 0 70 src apache tomcat 7 0 70 src zip 下载之后
  • vscode配置java环境,纯手把手教,有手就行

    vscode配置java环境 1 下载JDK Java Development Kit java开发工具 进入官网下载https www oracle com java technologies downloads 配置环境变量 检查电脑是
  • 08_Pandas提取含有指定字符串的行(完全匹配,部分匹配)

    08 Pandas提取含有指定字符串的行 完全匹配 部分匹配 以下内容 如何使用pandas提取含有指定字符串的行的方法进行解释说明 行的提取 选择 方法 完全匹配 部分匹配 str contains 包含一个特定的字符串 参数na 缺少值
  • 单片机——串口初探及串口+中断

    简介 设备间接线通信的一种方式 数据一位一位地顺序传送 双向通信 全双工 全双工 A向B发消息时 B也可以向A发消息 半双工 A向B发消息时 B不可以向A发消息 只有当A发完时 B才可以向A发消息 传送速度较慢 常用串口的电器标准协议 RS
  • CMMI资质查询

    http www cmmirz com https sas cmmiinstitute com pars pars aspx
  • C#学习之System.Collections.Generic 与 System.Collections 记录

    1 了解C 集合 System Collections 命名空间 System Collections 命名空间包含接口和类 这些接口和类定义各种对象 如列表 队列 位数组 哈希表和字典 的集合 类 类 说明 ArrayList 使用大小可
  • 自动按参数首字母排序参数

    public static string FormatBizQueryParaMap Dictionary
  • 关于Spring和SpringBoot中动态代理jdk以及Cglib 的区别和实现

    springboot2 x默认使用的代理是cglib代理 因为项目优化 打算写个日志的切面类 于是起了个springboot 工程 在这里面测试 结果在springboot 里面测试正常 能正确打印日志 但是把代码复制到实际项目中 在进入切
  • C++私有成员变量被对象直接访问

    C 访问控制 关键字private 它描述了对类成员的访问控制 使用类的对象方法可以直接访问私有成员函数和变量 类的对象即实例只能通过公共成员函数来访问私有变量和私有成员函数 因此公有成员函数成为对象的私有变量访问的桥梁 在c 中 在类的成
  • javaScript基础面试题 ---宏任务微任务

    宏任务微任务 一 为什么JS是单线程语言 二 JS是单线程 怎样执行异步代码 1 JS是单线程语言 2 JS代码执行流程 同步执行完 再进行事件循环 微任务 宏任务 3 清空所有的微任务 再执行宏任务 4 微任务 Promise then
  • 安装MinGW-w64

    1 下载mingw工具 Windows系统下安装配置 MinGW w64 开发环境 https blog csdn net u010429831 article details 106766165 MinGW w64 下载链接 https
  • 常见的Java报错和原因

    一 常见的java异常分类 Throwable类有两个直接子类 1 Exception 出现的问题是可以被捕获的 2 Error 系统错误 通常由JVM处理 二 被捕获的异常分类 1 Check异常 派生自Exception的异常类 必须被
  • C语言的指针

    C语言的指针 一 指针的优先级 括号 的优先级最高 其次是数组 然后是剩余的 最后是类型 指针p与优先级高的先结合 对于比较复杂的指针 结合后就视为一个整体temp 然后再与剩下的结合进行分析 int p p是一个普通的int型变量 p先与
  • kafka安装和简单测试

    Kafka的安装和简单实例测试 厦大数据库实验室博客 ps 上边文章的kafka版本有点老 是0 10 1 0版本的 最新的kafka版本启动和创建topic等命令有所改变 核心概念 下面介绍Kafka相关概念 以便运行下面实例的同时 更好