#kafaka单节点部署
PS:Kafka中单节点部署又分为两种,一种为单节点单Broker部署,一种为单节点多Broker部署。因为是单节点的Kafka,所以在安装ZK时也只需要单节点即可。
#部署单击Zookeeper
安装完Zookeeper后,输入命令启动后,jps中并没有查看到QuorumPeerMain进程,说明没有启动成功。
#安装kafka
1.解压可以忽略
1,进入下载路径下,比如我的就是进入Downloads下。
输入命令: cd Downloads
2,解压到当前文件夹
输入:tar zxvf 文件名.tgz -C ./ 比如我的是:tar zxvf simple-examples.tgz -C ./
3,解压到指定文件夹下
输入:tar zxvf 文件名.tgz -C /指定路径
比如我想解压到Home下:则变成tar zxvf simple-examples.tgz -C /Home
2. cd /usr/local/kafka_2.12-2.2.0/config
进入kafka的config目录下,有一个server.properties,添加如下配置
# broker的全局唯一编号,不能重复
broker.id=0
# 监听
listeners=PLAINTEXT://:9092
# 日志目录
log.dirs=/home/hadoop/kafka-logs
# 配置zookeeper的连接(如果不是本机,需要该为ip或主机名)
zookeeper.connect=localhost:2181
# 启动Zookeeper 启动Kafka
kafka-server-start.sh $KAFKA_HOME/config/server.properties
# 可以这么启动nohup ./kafka-server-start.sh /usr/local/kafka_2.12-2.2.0/config/server.properties &
[hadoop@Master ~]$ jps 看到如下信息
9173 Kafka
9462 Jps
8589 QuorumPeerMain
[hadoop@Master ~]$ jps -m
9472 Jps -m
9173 Kafka /opt/kafka/config/server.properties
8589 QuorumPeerMain /opt/zookeeper/bin/../conf/zoo.cfg
# 创建topic
cd /usr/local/kafka_2.12-2.2.0/bin
[root@localhost bin]# ./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
Created topic test.
You have new mail in /var/spool/mail/root
表示创建成功
# 参数说明:
–zookeeper:指定kafka连接zk的连接url,该值和server.properties文件中的配置项{zookeeper.connect}一样
–replication-factor:指定副本数量
–partitions:指定分区数量
–topic:主题名称
#查看所有的topic信息
[root@localhost bin]# ./kafka-topics.sh --list -zookeeper localhost:2181
test
[root@localhost bin]#
#启动生产者,启动后如图
[root@localhost bin]# ./kafka-console-producer.sh --broker-list localhost:9092 --topic test
>
#启动消费者
PS:kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning 这个命令是09以后的启动方法
PS:./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning 0.90版本之后启动消费者的方法
[root@localhost bin]# ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
#测试数据
1.在生产上实时输入
[root@localhost bin]# ./kafka-console-producer.sh --broker-list localhost:9092 --topic test
>hello world
>
2.消费者实时接收
[root@localhost bin]# ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
hello world
3.注意
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning 这么启动以前的消息也会被消费
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test 这么启动只会消费最新的消息
############################################# 到此Kafka 单节点单Broker 部署完毕 #####################################################################
############################################# Kafka 单节点多Broker部署及使用 #####################################################################
#配置kafka
拷贝server.properties三份
[hadoop@Master ~]$ cd /opt/kafka/config
[hadoop@Master config]$ cp server.properties server-1.properties
[hadoop@Master config]$ cp server.properties server-2.properties
[hadoop@Master config]$ cp server.properties server-3.properties
修改 server-1.properties文件
# broker的全局唯一编号,不能重复
broker.id=1
# 监听
listeners=PLAINTEXT://:9093
# 日志目录 log一定要修改 否则也会启动失败
log.dirs=/home/hadoop/kafka-logs-1
修改server-2.properties文件
# broker的全局唯一编号,不能重复
broker.id=2
# 监听
listeners=PLAINTEXT://:9094
# 日志目录
log.dirs=/home/hadoop/kafka-logs-2
修改server-3.properties文件
# broker的全局唯一编号,不能重复
broker.id=3
# 监听
listeners=PLAINTEXT://:9094
# 日志目录
log.dirs=/home/hadoop/kafka-logs-3
# 启动
1.启动zookeepre 。正常启动就行
2.kafka 需要这么启动
$ kafka-server-start.sh $KAFKA_HOME/config/server-1.properties
$ kafka-server-start.sh $KAFKA_HOME/config/server-2.properties
$ kafka-server-start.sh $KAFKA_HOME/config/server-3.properties
或者 nohup ./kafka-server-start.sh /usr/local/kafka_2.12-2.2.0/config/server-1.properties & 挨个启动
# 查看 jps 如图便是启动成功
[root@localhost local]# jps
6512 Jps
2707 QuorumPeerMain
5495 Kafka
5496 Kafka
5497 Kafka
# 创建topic(指定副本数量为3)
./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic my-replicated-topic Created topic my-replicated-topic
# 查看所有的topic信息
my-replicated-topic
test
# 查看topic 详细信息
[root@localhost bin]# ./kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topic
Topic:my-replicated-topic PartitionCount:1 ReplicationFactor:3 Configs:
Topic: my-replicated-topic Partition: 0 Leader: 5 Replicas: 5,6,7 Isr: 5,6,7
[root@localhost bin]#
# 启动生产者
./kafka-console-producer.sh --broker-list localhost:9095,localhost:9096,localhost:9097 --topic my-replicated-topic
[root@localhost bin]# ./kafka-console-producer.sh --broker-list localhost:9095,localhost:9096,localhost:9097 --topic my-replicated-topic
>
# 启动消费者
PS :kafka消费者时报Connection to node 2 could not be established. Broker may not be available.这个错误