kafka命令

kafka操作命令

亡梦爱人 提交于 2020-03-10 09:29:43
默认内网访问,要在外网访问的话,需要在修改config/server.properties中的配置 将listeners和advertised.listeners的值用主机名进行替换,在外用使用java进行生产者或消费者连接的时候,不填写具体的IP,填写安装kafka的主机名,然后,在hosts目录中,配置该主机名对应的真是IP地址即可; 以下命令都是摘抄与官网 http://kafka.apache.org/quickstart 先启动zookeeper,默认自带的 bin/zookeeper-server-start.sh config/zookeeper.properties 然后启动kafka服务 bin/kafka-server-start.sh config/server.properties 方法一: 在bin的上一级目录执行命令: bin/kafka-server-start.sh -daemon config/server.properties 加守护进程启动 方法二: 在bin的上一级目录执行命令: nohup bin/kafka-server-start.sh config/server.properties & 通过后台来启动 列举拥有哪些topics bin/kafka-topics.sh --list --bootstrap-server

【Kafka】(二十二)Kafka Exactly Once 语义与事务机制原理

你离开我真会死。 提交于 2020-03-08 20:18:37
写在前面的话 本文所有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 语义的支持就非常必要。 操作原子性 操作的原子性是指,多个操作要么全部成功要么全部失败,不存在部分成功部分失败的可能。 实现原子性操作的意义在于: 操作结果更可控,有助于提升数据一致性 便于故障恢复。因为操作是原子的

NSSM使用说明

混江龙づ霸主 提交于 2020-03-08 17:57:57
1、说明 NSSM是一个服务封装程序,它可以将普通exe程序封装成服务,使之像windows服务一样运行。同类型的工具还有微软自己的srvany,不过nssm更加简单易用,并且功能强大。它的特点如下: 支持普通exe程序(控制台程序或者带界面的Windows程序都可以) 安装简单,修改方便 可以重定向输出(并且支持Rotation) 可以自动守护封装了的服务,程序挂掉了后可以自动重启 可以自定义环境变量 这里面的每一个功能都非常实用,使用NSSM来封装服务可以大大简化我们的开发流程了。 开发的时候是一个普通程序,降低了开发难度,调试起来非常方便 安装简单,并且可以随时修改服务属性,更新也更加方便 可以利用控制台输出直接实现一个简单的日志系统 不用考虑再加一个服务实现服务守护功能 2、下载地址 https://nssm.cc/download https://nssm.cc/release/nssm-2.24.zip 3、使用说明 此处我们以将Kafka设置为Windows系统服务为例子进行展示,具体可参考我的文章 https://blog.csdn.net/qubernet/article/details/104718033 将Kafka设置为Windows系统服务 打开NSSM的win64的文件夹,如D:\Net_业务软件\Net_NSSM\nssm-2.24\win64

kafka的安装及集群的搭建

徘徊边缘 提交于 2020-03-08 04:49:10
关于kafka的介绍就暂时不写了,我们根据官网来看看如何安装及搭建kafka消息中间件,首先我们去官网把kafka的安装包下载下来,地址是 https://www.apache.org/dyn/closer.cgi?path=/kafka/2.4.0/kafka_2.12-2.4.0.tgz ,因为我们大多都是用的Windows,因此需要将下载下来的安装包上传到Linux环境上面,上传上去后,我们通过以下命令操作 # tar -xzf kafka_2.12-2.4.0.tgz # cd kafka_2.12-2.4.0 进入到kafka文件夹中后,可以看到有bin、libs、config等文件夹,在bin目录里可以看到下面的目录结构 可以看到有关于connect、kafka及zookeeper的配置信息,因此我们可以使用kafka提供的zookeeper来测试使用,如果在正式环境中我们还是需要自己去创建zookeeper集群的,这样才能保证可靠性,接下来我们就需要启动zookeeper了,因为kafka是依赖于zookeeper来做一些操作的,这个将会在后面文章中介绍到,这里就不在叙述,先启动zookeeper吧,如下 ./bin/zookeeper-server-start.sh config/zookeeper.properties 完成了zookeeper的启动

KafkaConsumer 长时间地在poll(long )方法中阻塞

大憨熊 提交于 2020-03-03 02:16:36
一,问题描述 搭建的用来测试的单节点Kafka集群(Zookeeper和Kafka Broker都在 同一台Ubuntu 上),在命令行下使用: ./bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 3 --topic topicForTest 创建了一个3个分区的Topic如下:(Topic名称为 topicForTest) 使用 Console producer/consumer都能够正常地向topicForTest发送和接收消息: bin/kafka-console-producer.sh --broker-list localhost:9092 --topic topicForTest bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topicForTest --from-beginning 但是在自己的windows 机器的开发环境下,使用kafka client JAVA API (0.10版本)中的KafkaConsumer 却无法接收消息,表现为:在poll()方法中阻塞了。 更具体一点地,是在:org.apache.kafka

Canal+Kafka实现MySql与Redis数据一致性

[亡魂溺海] 提交于 2020-03-02 14:26:40
  在生产环境中,经常会遇到MySql与Redis数据不一致的问题。那么如何能够保证MySql与Redis数据一致性的问题呢?话不多说,咱们直接上解决方案。   如果对Canal还不太了解的可以先去看一下官方文档: https://github.com/alibaba/canal   首先,咱们得先开启MySql的允许基于BinLog文件主从复制。因为Canal的核心原理也是相当于把自己当成MySql的一个从节点,然后去订阅主节点的BinLog日志。    开启BinLog文件配置   1. 配置 MySQL 的 my.ini/my.cnf 开启 允许基于 binlog 文件主从同步 log-bin=mysql-bin #添加这一行就ok binlog-format=ROW #选择row模式 server_id=1 #配置mysql replaction需要定义,不能和canal的slaveId重复   配置 该文件后,重启 mysql 服务器即可   show variables like 'log_bin';//查询MySql是否开启了log_bin. 没有开启 log_bin 的值是 OFF, 开启之后是 ON   2. 添加cannl 的账号 或者直接使用自己的 root 账号。添加完后 一定要检查 mysql user 权限为 y(SELECT* from `user`

kafka的安装与调试

一个人想着一个人 提交于 2020-03-01 19:42:04
消费者-生产者模式搭建 首先,下载zookeeper与kafka Zookeeper下载地址: https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.14/(本人推荐下载3.4.14 版本,stable版本下的解压时会出现重复而造成覆盖,丢失文件) Kafka下载地址: http://kafka.apachecn.org/downloads.html 版本选择2.11-0.10.2.1 接下来解压缩 配置zookeeper 1.首先进入conf目录下,复制zoo_simple.cfg到当前目录下,并重命名为zoo 使用文本编辑工具编辑zoo,将文件下的dataDir(存储数据库快照的目录,更新事务默认储存文件)目录修改为如下。 2.为zookeeper配置环境变量 右键我的电脑=>属性=>高级系统设置=>环境变量 在系统变量下,新建,命名为ZOOKEEPER_HOME, 添加path,双击path,点击新建,添加zookeeper的bin目录。 启动zookeeper的服务 进入zookeeper的bin目录,按住shift,点击右键,选择:在此处打开power shell窗口 等会输入:zkserver 得到如下: 有这个就说明启动成功了(binding to port 0.0.0.0/0.0.0

kafka消费者报错:Consider using the new consumer by passing [bootstrap-server] instead of [zookeeper].

前提是你 提交于 2020-03-01 19:31:52
一、问题描述 环境:kafka_2.11-0.10.2.1 Kafka开启生产者和消费者,当生产者发出消息的时候,消费者报错,而之前采用kafka_2.10-0.8.2.1运行该消费者的时候有没有问题: root@hadoop kafka_2.11-0.10.2.1]# bin/kafka-console-consumer.sh --topic dayu --zookeeper hadoop:2181/kafka10_01 Using the ConsoleConsumer with old consumer is deprecated and will be removed in a future major release. Consider using the new consumer by passing [bootstrap-server] instead of [zookeeper]. [2020-03-01 16:55:19,994] WARN [ConsumerFetcherThread-console-consumer-11986_hadoop-1583052858368-33af0818-0-2], Error in fetch kafka.consumer.ConsumerFetcherThread$FetchRequest@66bc1f66 (kafka

kafka linux下安装及学习

这一生的挚爱 提交于 2020-02-29 17:42:13
错误一 Java HotSpot ( TM ) 64 - Bit Server VM warning : INFO : os : : commit_memory ( 0x00000000e0000000 , 536870912 , 0 ) failed ; error = 'Cannot allocate memory' ( errno = 12 ) 主要是kafka的kafka-server-start.sh文件配置有问题.也可以说跟安装kafka的服务器有关系。简单点说,就是你的服务器配置有点低。 然后进入kafka_2.12-0.11.0.0的bin目录,找到kafka-server-start.sh文件,vi kafka-server-start.sh 找到这一行export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G" 改为 export KAFKA_HEAP_OPTS="-Xmx256M -Xms128M" Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000e0000000, 536870912, 0) failed; error='Cannot allocate memory' (errno=12) kafka 启动命令 首先启动zookeeper

大数据学习day34---spark14------1 redis的事务(pipeline)测试 ,2. 利用redis的pipeline实现数据统计的exactlyonce ,3 SparkStreaming中数据写入Hbase实现ExactlyOnce

☆樱花仙子☆ 提交于 2020-02-29 17:28:40
1 redis的事务(pipeline)测试   Redis本身对数据进行操作,单条命令是原子性的,但事务不保证原子性,且没有回滚。事务中任何命令执行失败,其余的命令仍会被执行,将Redis的多个操作放到一起执行,要成功多成功,如果失败了,可以把整个操作放弃,可以实现类似事物的功能。redis事务包含三个阶段:开始事务,命令入队,执行事务。redis的分片副本集集群不支持pipeline,redis只支持单机版的事务(pipeline),Redis的主从复制也支持pipeline(目前一些公司就是这样干的)。若是想用集群,可以使用MongoDB, MongoDB集群支持事物,是一个NoSQL文档数据库,支持存储海量数据、安全、可扩容。 RedisPipelineTest package com._51doit.spark14 import com._51doit.utils.JedisConnectionPool import redis.clients.jedis.{Jedis, Pipeline} object RedisPipeLineTest { def main(args: Array[String]): Unit = { val jedis: Jedis = JedisConnectionPool.getConnection jedis.select(1) //