标签:can div ada 存储 运行 最新版本 har shel ace
1、安装zookeeper
因为zookeeper 与kafka 存在对应的版本,选择不当,将无法使用,所以两者都使用最新版本
下载地址:https://zookeeper.apache.org/releases.html
下载并解压ZooKeeper软件压缩包后,可以看到zk包含以下的文件和目录:
图1:ZooKeeper软件的文件和目录
上面提到,conf目录下提供了配置的样例zoo_sample.cfg,要将zk运行起来,需要将其名称修改为zoo.cfg。
打开zoo.cfg,可以看到默认的一些配置。
配置环境变量 vim ~/.bash_profile
export ZK_HOME=/Users/yyj/big_data/zookeeper export KAFKA_HOME=/Users/yyj/big_data/kafka_2.12-2.5.0 export PATH=$PATH:$ANDROID_HOME/platform-tools:${KAFKA_HOME}/bin:${ZK_HOME}/bin
启动 进入bin目录,执行命令
zkServer.sh start
下载 http://kafka.apache.org/downloads
解压
tar -xzf kafka_2.12-2.5.0.tgz
注意,kafka_2.12-2.5.0.tgz版本是已经编译好的版本,解压就能使用。
配置server.properties
默认配置 advertised.listeners=PLAINTEXT://:your.host.name:9092
修改为 advertised.listeners=PLAINTEXT://:ip:9092
ip为服务器ip。
hostname和端口是用来建议给生产者和消费者使用的,如果没有设置,将会使用listeners的配置,如果listeners也没有配置,将使用java.net.InetAddress.getCanonicalHostName()来获取这个hostname和port,对于ipv4,基本就是localhost了。
"PLAINTEXT"表示协议,可选的值有PLAINTEXT和SSL,hostname可以指定IP地址,也可以用"0.0.0.0"表示对所有的网络接口有效,如果hostname为空表示只对默认的网络接口有效。也就是说如果你没有配置advertised.listeners,就使用listeners的配置通告给消息的生产者和消费者,这个过程是在生产者和消费者获取源数据(metadata)。
配置环境变量
export ZK_HOME=/Users/yyj/big_data/zookeeper export KAFKA_HOME=/Users/yyj/big_data/kafka_2.12-2.5.0 export PATH=$PATH:$ANDROID_HOME/platform-tools:${KAFKA_HOME}/bin:${ZK_HOME}/bin
启动ZooKeeper
zkServer.sh start
注意,需要先启动ZooKeeper再启动kafka,不然会报错。如下图:
启动kafka
kafka-server-start.sh /Users/yyj/big_data/kafka_2.12-2.5.0/config/server.properties
启动Kafka Broker后,在ZooKeeper终端上键入命令 jps,效果如下:
创建topic
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic demo
其中demo为创建的topic名称。
如上图,创建了一个名为 demo 的主题,其中包含一个分区和一个副本因子。 创建成功之后会输出: Created topic "demo".
如上图,创建主题后,系统会在config / server.properties文件中的"/ tmp / kafka-logs /"中指定的创建主题的日志。
查询topic列表
bin/kafka-topics.sh --list --zookeeper localhost:2181
查看topic信息
bin/kafka-topics.sh --zookeeper localhost:2181 --describe --topic demo
删除topic
bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic demo
启动生产者
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic demo
从上面的语法,生产者命令行客户端需要两个主要参数 -
代理列表 - 我们要发送邮件的代理列表。 在这种情况下,我们只有一个代理。 Config / server.properties文件包含代理端口ID,因为我们知道我们的代理正在侦听端口9092,因此您可以直接指定它。主题名称:demo。
启动消费者
为了方便测试,另启一个sheel窗口 这样效果更明显。需要注意的是旧版本和新版本的命令是不一样的
bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic demo --from-beginning
报错提示: zookeeper is not a recognized option
发现在启动的时候说使用 --zookeeper是一个过时的方法,最新的版本中命令如下:
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic demo --from-beginning
可以开启两个终端,一个发送消息,一个接受消息。效果如下:
配置启动 关闭shell 脚本
start_all.sh
#!/bin/bash
# 启动zk
zkServer.sh start
# 启动kafka
nohup kafka-server-start.sh /Users/yyj/big_data/kafka_2.12-2.5.0/config/server.properties >> /Users/yyj/big_data/kafka.log &
stop_all.sh
#!/bin/bash # 关闭kafka kafka-server-stop.sh /Users/yyj/big_data/kafka_2.12-2.5.0/config/server.properties # 关闭zk zkServer.sh stop
标签:can div ada 存储 运行 最新版本 har shel ace
原文地址:https://www.cnblogs.com/BlueSkyyj/p/13064769.html