zookeeper
下载并解压
wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
tar -zxvf ./zookeeper-3.4.14.tar.gz
修改配置文件
cd ./zookeeper-3.4.14/conf/
cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
#下面这几个是默认就有的,我用的是默认的,我没有配置额外的东西,你们可以根据实际情况配置像保存路径啊什么的
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/tmp/zookeeper
clientPort=2181
配置环境变量
vim /etc/profile
#zk
export ZK_HOME=/usr/local/bigdata/zookeeper-3.4.14
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$SCALA_HOME/bin:$SPARK_HOME/bin:$ZK_HOME/bin:$KAFKA_HOME/bin
source /etc/profile
启动zk
zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/bigdata/zookeeper-3.4.14/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
查看状态
zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/bigdata/zookeeper-3.4.14/bin/../conf/zoo.cfg
Mode: standalone
kafka
解压
tar -zxvf kafka_2.11-0.11.0.2.tgz
修改配置
- 下面的配置我用主机名(我事先配置好ip映射),发现命令行生产者消费者正常,但是java api生产者消费者连不上,必须用ip才行,目前没有查询到原因
cd ./kafka_2.11-0.11.0.2/config/
vi server.properties
listeners=PLAINTEXT://192.168.199.100:9092
advertised.listeners=PLAINTEXT://192.168.199.100:9092
zookeeper.connect=192.168.199.100:2181
host.name=192.168.199.100
打开下面这个注释,要不然你kafka删除只是标记删除
修改我们这个broker保存的分区数,kafka单机版只能让这个单机多放一些分区了
其他的默认的就可以
配置环境变量
```bash
vim /etc/profile
#kafka
export KAFKA_HOME=/usr/local/bigdata/kafka_2.11-0.11.0.2
PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$SCALA_HOME/bin:$SPARK_HOME/bin:$ZK_HOME/bin:$KAFKA_HOME/bin
source /etc/profile
启动kafka
kafka-server-start.sh /usr/local/bigdata/kafka_2.11-0.11.0.2/config/server.properties &
会出现一堆日志,太多了,就不截图了
新建启动脚本
发现这个命令太麻烦了
cd /usr/local/bigdata/kafka_2.11-0.11.0.2/bin
vi start-kafka-server.sh
#!/bin/sh
/usr/local/bigdata/kafka_2.11-0.11.0.2/bin/kafka-server-start.sh /usr/local/bigdata/kafka_2.11-0.11.0.2/config/server.properties &
vi stop-kafka-server.sh
#!/bin/sh
/usr/local/bigdata/kafka_2.11-0.11.0.2/bin/kafka-server-stop.sh /usr/local/bigdata/kafka_2.11-0.11.0.2/config/server.properties &
chmod 777 start-kafka-server.sh
chmod 777 stop-kafka-server.sh
创建一个topic
kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
Created topic "test".
发送接收消息
用命令起一个消费者监听消息
kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
起一个生产者发送消息
kafka-console-producer.sh --broker-list localhost:9092 --topic test
输入helloowrd
可以看到消费者接收到了
java api连不上
vi server.properties
看一下这4个配置,只能用ip,用主机名不行
listeners=PLAINTEXT://192.168.199.100:9092
advertised.listeners=PLAINTEXT://192.168.199.100:9092
zookeeper.connect=192.168.199.100:2181
host.name=192.168.199.100
然后我就解决了,还没解决可能是防火墙和端口
防火墙(root)
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
systemctl status firewalld.service #查看firewall的状态
打开相关端口(root)
firewall-cmd --zone=public --add-port=2181/tcp --permanent
firewall-cmd --zone=public --add-port=9092/tcp --permanent