kafka命令

Kafka常用shell命令

萝らか妹 提交于 2019-12-05 15:42:48
2.2 KAFKA命令行操作 1)查看当前服务器中的所有topic [qingfeng@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181 --list 2)创建topic [qingfeng@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181 --create --replication-factor 3 --partitions 1 --topic first 选项说明: --topic 定义topic名 --replication-factor 定义副本数 --partitions 定义分区数 3)删除topic [qingfeng@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181 --delete --topic first 需要server.properties中设置delete.topic.enable=true否则只是标记删除。 4)生产消息 [qingfeng@hadoop102 kafka]$ bin/kafka-console-producer.sh \ --broker-list hadoop102:9092 --topic

Java实现Kafka的生产者和消费者例子

巧了我就是萌 提交于 2019-12-05 07:40:16
Kafka的结构与RabbitMQ类似,消息生产者向Kafka服务器发送消息,Kafka接收消息后,再投递给消费者。 生产者的消费会被发送到Topic中,Topic中保存着各类数据,每一条数据都使用键、值进行保存。 每一个Topic中都包含一个或多个物理分区(Partition),分区维护着消息的内容和索引,它们有可能被保存在不同服务器。 新建一个Maven项目,pom.xml 加入依赖: <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients</artifactId> <version>2.3.0</version> </dependency> 1、编写生产者 将消息投递到Kafka服务器的名称为“topic1”的Topic中 package com.example.kafkatest; import org.apache.kafka.clients.producer.KafkaProducer; import org.apache.kafka.clients.producer.ProducerRecord; import org.apache.kafka.common.serialization.StringSerializer; import java.util.Properties

kafka window安装与配置

十年热恋 提交于 2019-12-05 07:04:09
一、安装jdk1.8 (此处省略) 二、安装zookeeper 1. 下载安装包:http://zookeeper.apache.org/releases.html,解压到指定目录(如下) 2. 在系统变量中添加ZOOKEEPER_HOME = C:\Users\wcy\Downloads\Compressed\zookeeper-3.4.10 3. 编辑path系统变量,添加为路径%ZOOKEEPER_HOME%\bin; 4. 将conf下“zoo_sample.cfg”重命名为“zoo.cfg” 5. 在任意文本编辑器(如notepad)中打开zoo.cfg. 找到并编辑dataDir=C:/dataDir 6. 找到并编辑dataDir=C:/dataDir 7. 打开新的cmd,输入zkServer,运行Zookeeper。 8. 命令行提示如下:说明本地Zookeeper启动成功 三、安装kafka 1.下载 http://mirrors.shu.edu.cn/apache/kafka/1.0.0/kafka_2.11-1.0.0.tgz ,解压为kafka_2.11-1.0.0, 2.进入Kafka配置目录,C:\Users\wcy\Downloads\kafka_2.11-1.0.0\config ,编辑文件“server.properties” 添加自己的日记目录

Windows下Kafka 2.3.0的下载和安装

久未见 提交于 2019-12-05 06:49:15
Kafka是由Apache软件基金会开发的一个开源流处理平台,是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。 特性: (1)通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能。 (2)高吞吐量:即使是非常普通的硬件Kafka也可以支持每秒数百万的消息。 (3)支持通过Kafka服务器和消费机集群来分区消息。 (4)支持Hadoop并行数据加载。 相关术语: (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

【中间件】Kafka 学习 01

妖精的绣舞 提交于 2019-12-05 06:46:01
KafKa 博客教程-1 博客教程-2 kafka简介 kafka起源 Kafka是由LinkedIn开发并开源的分布式消息系统,2012年捐赠给Apache基金会,采用Scala语言,运行在JVM中,最新版本2.0.1 下载地址 kafka设计目标 Kafka是一种分布式的,基于发布/订阅的消息系统 设计目标: 以时间复杂度O(1)的方式提供消息持久化能力,对TB级别的数据也能保证常数时间复杂度的访问性能; 高吞吐率。在低配机器上也能保证每秒10万条以上消息的传输; 支持kafka server间的消息分区,分布式消费,同时保证每个Partition内消息的顺序传输; 支持离线数据和实时数据处理 scale out,支持在线水平扩展,无需停机即可扩展机器 使用消息系统的好处 解耦,冗余,扩展性,灵活性&峰值处理能力,可恢复性,顺序保证,缓冲,异步通信 对比常用消息中间件 ActiveMQ RabbitMQ Kafka produce容错,是否丢失数据 有ack模型,也有事务模型,保证至少不会丢失数据。ack模型可能会有重复消息,事务模型保证完全一致 批量形式下可能会丢失数据;非批量形式下:1.使用同步模式可能会有重复数据,2.使用异步模式可能会丢失数据 consumer容错,是否丢失数据 有ack模型,数据不会丢失,但可能会有重复数据 批量形式下可能会丢数据。非批量形式下

高精尖面试题(二)

♀尐吖头ヾ 提交于 2019-12-05 06:17:43
sql的一些问题:group by 时候前面字段比较多? kafka是怎么工作的? zookeeper有了解吗? zookeeper是一个分布式服务框架,主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、 集群管理 、分布式应用配置项的管理等。有较好的容错机制,我们在实现Hadoop集群高可用,HBase集群元数据管理方面都用到了zookeeper。 Zookeeper的角色一般包含leader, Follower. 我们开发环境中的zookeeper节点是3台,一个是leader,剩下的是follower。(可能面试官会问zookeeper选举机制,回答不知道就行了,说清楚的话比较复杂) 平时开发用什么工具? IDEA(Java开发工具),Xshell(连接服务器,注意是服务器,不是虚拟机),Git(版本控制工具,说会的话,一些命令要知道,另外,私服是收费的) linux netcat是怎么玩的? Netcat是一款非常出名的网络工具,简称“NC”,有渗透测试中的“瑞士军刀”之称。它可以用作端口监听、端口扫描、远程文件传输、还可以实现远程shell等功能。简单用过一些,比如nc -lk 9999之类的。 你们搭建kafka是怎么测试连接的? kafka的acks机制?怎么保证kafka最大吞吐量?

kafka第三篇--安装使用

时光毁灭记忆、已成空白 提交于 2019-12-05 04:03:56
说明:直接下载二进制包可省略安装过程,省略很多麻烦。 1单机 安装 安装过程,参考官网: > tar xzf kafka-<VERSION>.tgz > cd kafka-<VERSION> > ./sbt update > ./sbt package > ./sbt assembly-package-dependency 出现问题 1 在安装 0.8 版本时,出现如下问题 ead "main" java.lang.NoClassDefFoundError: org/apache/zookeeper/server/quorum/QuorumPeerMain Caused by: java.lang.ClassNotFoundException: org.apache.zookeeper.server.quorum.QuorumPeerMain at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass

kafka启动过程中的一个小问题

假如想象 提交于 2019-12-05 03:22:34
最近项目要用到kafka,按照网上的示例操作一遍,发现第一步就会报错,折腾了半天才发现问题的原因。这里记录一遍以避免同样的问题。 第一步下载了kafka的tar源码包,然后要启动zookeeper,执行如下命令: bin/zookeeper-server-start.sh -daemon config/zookeeper.properties 此时就会有如下的错误出现: 错误: 找不到或无法加载主类 config.zookeeper.properties 在第一步就出现了问题,想哭。 检查了一遍发现java我也已经安装了,配置也ok啊,而且网上的示例也没有其它的前提条件啊,所以就只能google了。 在google里面折腾了一遍,在stackoverflow上找到了原因,竟然是因为我下载的是源码,并非二进制包。 我滴个娘亲啊…… 来源: CSDN 作者: NoneSec 链接: https://blog.csdn.net/liuxingen/article/details/53053545

Kafka设计解析(八)- Kafka事务机制与Exactly Once语义实现原理

 ̄綄美尐妖づ 提交于 2019-12-05 02:14:05
写在前面的话 本文所有Kafka原理性的描述除特殊说明外均基于Kafka 1.0.0版本。 为什么要提供事务机制 Kafka事务机制的实现主要是为了支持 Exactly Once 即正好一次语义 操作的原子性 有状态操作的可恢复性 Exactly Once 《 Kafka背景及架构介绍 》一文中有说明Kafka在0.11.0.0之前的版本中只支持 At Least Once 和 At Most Once 语义,尚不支持 Exactly Once 语义。 但是在很多要求严格的场景下,如使用Kafka处理交易数据, Exactly Once 语义是必须的。我们可以通过让下游系统具有幂等性来配合Kafka的 At Least Once 语义来间接实现 Exactly Once 。但是: 该方案要求下游系统支持幂等操作,限制了Kafka的适用场景 实现门槛相对较高,需要用户对Kafka的工作机制非常了解 对于Kafka Stream而言,Kafka本身即是自己的下游系统,但Kafka在0.11.0.0版本之前不具有幂等发送能力 因此,Kafka本身对 Exactly Once 语义的支持就非常必要。 操作原子性 操作的原子性是指,多个操作要么全部成功要么全部失败,不存在部分成功部分失败的可能。 实现原子性操作的意义在于: 操作结果更可控,有助于提升数据一致性 便于故障恢复。因为操作是原子的

Kafka设计解析(二):Kafka High Availability (上)

余生颓废 提交于 2019-12-05 02:11:18
Kafka在0.8以前的版本中,并不提供High Availablity机制,一旦一个或多个Broker宕机,则宕机期间其上所有Partition都无法继续提供服务。若该Broker永远不能再恢复,亦或磁盘故障,则其上数据将丢失。而Kafka的设计目标之一即是提供数据持久化,同时对于分布式系统来说,尤其当集群规模上升到一定程度后,一台或者多台机器宕机的可能性大大提高,对Failover要求非常高。因此,Kafka从0.8开始提供High Availability机制。本文从Data Replication和Leader Election两方面介绍了Kafka的HA机制。 Kafka为何需要High Available 为何需要Replication 在Kafka在0.8以前的版本中,是没有Replication的,一旦某一个Broker宕机,则其上所有的Partition数据都不可被消费,这与Kafka数据持久性及Delivery Guarantee的设计目标相悖。同时Producer都不能再将数据存于这些Partition中。 如果Producer使用同步模式则Producer会在尝试重新发送 message.send.max.retries (默认值为3)次后抛出Exception,用户可以选择停止发送后续数据也可选择继续选择发送。而前者会造成数据的阻塞