centos安装kafka
1.下载
下载地址:http://kafka.apache.org/downloads
2.安装
解压到想要的目录,我放在了/usr/local下
cd /usr/local
tar -zxf kafka_2.11-0.11.0.1.tgz
kafka_2.11路径重命名
mv kafka_2.11 kafka
3.配置单节点
3.1 配置单节点zookeeper
我们使用kafka自带的zookeeper
cd /usr/local/kafka #进入kafka主目录 mkdir -p zk/data #创建zookeeper数据存放目录 mkdir -p zk/logs #创建zookeeperl存放日志目录 cd config #进入配置文件所在目录 mv zookeeper.properties zookeeper.properties.bak #备份配置文件 # 创建新的zookeeper配置文件,这里面的路径需要进行一些修改 cat > zookeeper.properties << EOF tickTime=2000 dataDir=/usr/local/kafka/zk/data dataLogDir=/usr/local/kafka/zk/logs clientPort=2181 EOF
到具体情况时注意修昨dataDir和dataLogDir为自己的相应目录
3.2 配置单结点kafka
cd /usr/local/kafka #进入kafka主目录 mkdir logs #创建logs目录用于存放日志 cd config #进入配置文件所在目录 mv server.properties server.properties.bak #备份配置文件 cat > server.properties << EOF broker.id=1 listeners=PLAINTEXT://0.0.0.0:9092 num.network.threads=3 num.io.threads=8 socket.send.buffer.bytes=102400 socket.receive.buffer.bytes=102400 socket.request.max.bytes=104857600 log.dirs=/usr/local/kafka/logs num.partitions=1 num.recovery.threads.per.data.dir=1 offsets.topic.replication.factor=1 transaction.state.log.replication.factor=1 transaction.state.log.min.isr=1 log.retention.hours=168 log.segment.bytes=1073741824 log.retention.check.interval.ms=300000 zookeeper.connect=127.0.0.1:2181 zookeeper.connection.timeout.ms=6000 group.initial.rebalance.delay.ms=0 EOF
上边配置的server.properties的内容基本都是原server.properties的默认配置,到自己安装时主要修改:
broker.id--broker的id;修改为任意自己想要的数值(和zookeeper中的id类似的)
listeners--监听址址;修改为kafka要监听的地址
log.dirs--日志文件存放目录;修改为自己要存放日志的目录
zookeeper.connect--zookeeper监听地址;修改为自己的zookeeper的监听地址,如果是集群所有地址全写上用逗号(半角)隔开即可
4.启动和停止
启动前要配置JAVA_HOME,不然无法启动(和tomcat一样虽然输出started了但并有有启,可查看kafkaServer.out)
启动:
./zookeeper-server-start.sh -daemon ../config/zookeeper.properties #启动zookeeper ./kafka-server-start.sh -daemon ../config/server.properties #启动kafka
停止:
./zookeeper-server-stop.sh #停止zookeeper ./kafka-server-stop.sh #停止kafka,centos7上可能关不了用kill -9直接杀掉
查看是否有zookeeper和kafka进程:
jps
集群等配置,参考
4.端口说明
2181:Zookeeper默认的客户端连接端口是2181
9092:Kafka broker的监听端口,客户端将通过这个端口连接到Kafka
5.特别说明
假设kafka服务器是公网服务器,ip为106.75.119.54,域名是www.abc.com
然后你的项目在自己电脑跑的,你的电脑ip假设是192.168.1.10(也用不到)
项目的配置文件其中一个参数 bootstrap-servers: www.abc.com:9092 或者写成 bootstrap-servers: 106.75.119.54:9092
项目代码在调用kafka对象时会通过bootstrap-servers请求kafka服务器
kafka服务器会找advertised.listeners(server.properties文件内)参数,并返回advertised.listeners参数的值,如果advertised.listeners参数没写,会返回kafka服务器的hostname
项目后续会用advertised.listeners的值访问kafka服务器,如果advertised.listeners的值是一个hostname,那么就会造成如下报错
java.net.UnknownHostException: 不知道这样的主机。 (iZ2zeedq00kd0aywiokytlZ)
这就需要自己电脑的hosts文件,给hostname解析一下ip,如果不想配置hosts文件,那么就配置kafka的advertised.listeners参数,如下
advertised.listeners=PLAINTEXT://www.abc.com:9092
// 或者
advertised.listeners=PLAINTEXT://106.75.119.54:9092
6.批处理启动
7.开机自启动
8.配置密码登录
9.集群配置