文章目录
- 1. jdk 环境安装配置
- 配置环境变量
- 2. ZooKeeper的安装
- 3. kafka安装与配置
- 4. kafka消息生产与消费测试
- 创建主题
- 生产者
- 消费者
- 附: jps 用法
- 参数说明
1. jdk 环境安装配置
官网下载JDK
https://www.oracle.com/technetwork/java/javase/downloads/jdk12-downloads-5295953.html
将jdk 拷贝至 /opt/java 目录下
解压: tar -xvf jdk-12.0.1_linux-x64_bin.tar.gz
配置环境变量
vi /etc/profile.d/java.sh (vi 没有java.sh文件会自动创建)
输入如下内容:
JAVA_HOME=/usr/java/jdk1.7.0_79
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH
保存并退出,然后需要分配一下权限,让各个用户都可执行:
chmod 755 /etc/profile.d/java.sh
4、 2、 1 分别对应 读、 写、 执行
ok 重启试一下 java -version
2. ZooKeeper的安装
ZooKeeper官网:http://zookeeper.apache.org/
新建目录 /opt/java/zookeeper
上传 zookeeper-3.4.14.tar.gz 文件到zookeeper目录下
解压 tar -xvf zookeeper-3.4.14.tar.gz 到当前文件
修改Zookeeper的配置文件,首先进入安装路径conf目录,并将zoo_sample.cfg文件修改为 zoo.cfg,并对核心参数进行配置。
mv zoo_sample.cfg zoo.cfg
内容:
# The number of milliseconds of each tick
# zk服务器的心跳时间
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
# 投票选举新Leader的初始化时间
initLimit=10
syncLimit=5
# 数据目录
dataDir=temp/zookeeper/data
# 日志目录
dataLogDir=temp/zookeeper/log
# Zookeeper对外服务端口,保持默认
clientPort=2181
启动zookeeper
bin/zkServer.sh start
停止:
sh zkServer.sh stop
3. kafka安装与配置
官网下载:http://kafka.apache.org/downloads
上传 到 /opt/kafka/ 目录下
解压 tar -xvf kafka_2.12-2.2.1.tgz
server.properties配置中需要关注以下几个参数:
- broker.id=0 表示broker的编号,如果集群中有多个broker,则每个broker的编号需要设置 的不同
- listeners=PLAINTEXT://:9092 brokder对外提供的服务入口地址 log.dirs=/tmp/kafka/log 设置存放消息日志文件的地址
- zookeeper.connect=localhost:2181 Kafka所需Zookeeper集群地址,本示例中Zookeeper和 Kafka都安装本机
启动命令:
bin/kafka-server-start.sh config/server.properties
启动成功之后重新打开一个终端,验证启动进程
[root@localhost fbd]# jps -l
10501 kafka.Kafka
9880 org.apache.zookeeper.server.quorum.QuorumPeerMain
11165 jdk.jcmd/sun.tools.jps.Jps
[root@localhost fbd]#
4. kafka消息生产与消费测试
创建主题
新打开一个终端窗口, 并创建一个主题 topicone
进入kafka程序目录 cd /opt/kafka/kafka_2.12-2.2.1/ 执行如下命令创建主题
bin/kafka-topics.sh --zookeeper localhost:2181 --create --topic topicone --partitions 2 --replicationfactor 1
–zookeeper:指定了Kafka所连接的Zookeeper服务地址
–topic:指定了所要创建主题的名称
–partitions:指定了分区个数
–replication-factor:指定了副本因子
–create:创建主题的动作指令
- 展示所有主题: bin/kafka-topics.sh --zookeeper localhost:2181 --list
[root@localhost kafka_2.12-2.2.1]# bin/kafka-topics.sh --zookeeper localhost:2181 --list
topicone
- 查看主题详情
[root@localhost kafka_2.12-2.2.1]# bin/kafka-topics.sh --zookeeper localhost:2181 --describe --topic topicone
Topic:topicone PartitionCount:2 ReplicationFactor:1 Configs:
Topic: topicone Partition: 0 Leader: 0 Replicas: 0 Isr: 0
Topic: topicone Partition: 1 Leader: 0 Replicas: 0 Isr: 0
[root@localhost kafka_2.12-2.2.1]#
生产者
[fbd@localhost ~]$ cd /opt/kafka/
[fbd@localhost kafka]$ cd kafka_2.12-2.2.1/
[fbd@localhost kafka_2.12-2.2.1]$ bin/kafka-console-producer.sh --broker-list localhost:9092 --topic topicone
>hello,kafka!
>the first
>we did it
>
–broker-list 指定了连接的Kafka集群的地址
–topic 指定了发送消息时的主题
消费者
[root@localhost kafka_2.12-2.2.1]# bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topicone
hello,kafka!
the first
we did it
–bootstrap-server 指定了连接Kafka集群的地址
–topic 指定了消费端订阅的主题
可以看到已经收到了生产者发送的消息.
附: jps 用法
jps 命令类似与 linux 的 ps 命令,但是它只列出系统中所有的 Java 应用程序。 通过 jps 命令可以方便地查看 Java 进程的启动类、传入参数和 Java 虚拟机参数等信息。
如果在 linux 中想查看 java 的进程,一般我们都需要 ps -ef | grep java 来获取进程 ID。
如果只想获取 Java 程序的进程,可以直接使用 jps 命令来直接查看。参数说明
-q: 只输出进程 ID
-m:输出传入 main 方法的参数
-l: 输出完全的包名,应用主类名,jar的完全路径名
-v: 输出jvm参数
-V:输出通过flag文件传递到JVM中的参数