如何在linux上安装jdk kafka zookeeper
su
vim /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO="static"
IPADDR="192.168.1.22"
NETMASK="255.255.255.0"
GATEWAY="192.168.1.1"
ONBOOT="yes
关机
ping 同网段的其他虚拟机ip,代表已经配置Ok
使用xshell连接该虚拟机
接下来安装jdk
安装路径为:/usr/local
chmod 777 local
给local赋予文件传输权限
使用xftp传输jdk文件至linux虚拟机的usr/local下
解压jdk文件
tar vxzf jdk-8u161-linux-x64.tar.gz
rm jdk-8u161-linux-x64.tar.gz
安装JDK(安装包安装方法.rpm)
rpm -ivh jdk1.8.0_161.rpm
查看本地是否安装过jdk
rpm -qa | grep jdk
卸载指定版本的jdk
rpm -e 'java-1.7.0-openjdk-1.7.0.221-2.6.18.1.el7.x86_64'
以下代码是卸载本地jdk命令
rpm -e 'rpm -qa | grep jdk'
编辑文件 vi /etc/profile
最后插入
export JAVA_HOME=/usr/java/jdk1.8.0_161/
export PATH=$PATH:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin
:wq退出
source /etc/profile

若出现错误
export PATH=/bin:/usr/bin:$PATH
关闭防火墙
查看防火墙状态 firewall -cmd --state 关闭防火墙 systemctl stop firewalld.service 开启防火墙 systemctl start firewalld.service 禁止开机启动启动防火墙 systemctl disable firewalld.service
查看iptables的状态
chkconfig --list
chkconfig --list | grep iptables
安装zookeeper
安装目录是/usr/local
tar vxzf zookeeper-3.4.14.tar.gz
rm zookeeper-3.4.14.tar.gz
进入配置文件目录
cd conf/
拷贝模板配置文件
cp zoo_sample.cfg zoo.cfg
修改配置文件
vim zoo.cfg
将数据文件和日志文件放在该目录下
dataDir=/usr/local/zookeeper-3.4.14/zkdata
返回上一层目录
cd ..
创建刚才修改的目录文件
mkdir zkdat
配置zookeeper的环境变量
vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_161/ export ZOOKEEPER_HOME=/usr/local/zookeeper-3.4.14 export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$ZOOKEEPER_HOME/bin
:wq
source /etc/profile

vi /etc/hosts
下面添加集群的ip地址
192.168.1.7
192.168.1.11
192.168.1.20
:wq
后台运行zk服务
zkServer.sh start-foreground
查看zk状态
zkServer.sh status

--------------------------------------------------------------------------------------
安装kafka
将文件传输到linux下usr/local
解压kafka
tar vxzf kafka_2.11-2.2.0
进入
cd kafka_2.11-2.2.0/config/
编辑
vi server.properties
配置kafka的环境变量
vi /etc/profile
最后添加
export KAFKA_HOME=/usr/local/kafka_2.11-2.2.0
export PATH=$PATH:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$KAFKA_HOME/bin
source /etc/profile
以后台的方式启动kafka
kafka-server-start.sh -daemon config/server.properties
关闭服务
kafka-server-stop.sh
查看帮助
kafka-topics.sh --help
启动
kafka-server-start.sh -daemon server.properties
创建主题 主题名topic01 分区数3 副本因子1
kafka-topics.sh --bootstrap-server 192.168.1.22:9092 --create --topic topic01 --partitions 3 --replication-factor 1
创建消费者 消费topic01 属于grou
kafka-console-consumer.sh --bootstrap-server 192.168.1.22:9092 --topic topic01 --group group1
另起一个服务
穿件生产者 生产主题topic01
kafka-console-producer.sh --broker-list 192.168.1.22:9092 --topic topic01
两个相同的组订阅了同一个topic
因此是负载均衡效果
------------------------------------------------------------------------
集群配置
启动kafka之前要先启动zookeeper
zkServer.sh start


修改/etc/hosts文件配置
192.168.1.7
192.168.1.11
192.168.1.20
修改每个kafka的config配置
/usr/local/kafka_2.11-2.2.0/config
broker.id=1 (每个都不同)
listeners=PLAINTEXT://192.168.1.7:9092(ip地址每个都不同,端口相同注意和下方的zookeeper端口不一样)
log.dirs=/usr/local/kafka-logs
zookeeper.connect=192.168.1.7:2181,192.168.1.11:2181,192.168.1.20:2181
将安装好的kafka发送到其他虚拟机 scp -r ./kafka_2.11-2.2.0/ 192.168.1.11:/usr/local/
scp -r /etc/profile 192.168.1.11:/etc/
启动server
kafka-server-start.sh -daemon ../config/server.properties
创建topic
注意这里是连接zookeeper 设置topic
kafka-topics.sh --zookeeper 192.168.1.7:2181,192,168.1.11:2181,192.168.1.20:2181 --create --topic waqw --partitions 2 --replication-factor 2

查看创建tipic列表
kafka-topics.sh --zookeeper 192.168.1.7:2181 --list

查看topic的详细信息
kafka-topics.sh --zookeeper 192.168.1.7:2181 --describe --topic waqw
在另一台虚拟机上创建生产者
kafka-console-producer.sh --broker-list 192.168.1.11:9092 --topic waqw
在另一台虚拟机上创建消费者
kafka-console-consumer.sh --bootstrap-server 192.168.1.7:9092,192.168.1.20:9092 --topic waqw --group msb
在开启一个窗口创建消费者
kafka-console-consumer.sh --bootstrap-server 192.168.1.7:9092,192.168.1.20:9092 --topic waqw --group msb
他们两个消费者在同一个组里,因此,在生产者发送两条数据,这边消费者各收到一条数据,负载均衡
若不在同一个组,那么那个组都能收到每一条record
若consumer大于partitions 那么那个parttion不会收到消息
查看消费者组的列表
kafka-consumer-groups.sh --bootstrap-server 192.168.1.7:9092 --list

查看主题详细信息
kafka-topics.sh --zookeeper 192.168.1.7:2181 --describe --topic waqw
查看组里的信息
kafka-consumer-groups.sh --bootstrap-server 192.168.1.7:9092 --describe --group msb
