如何在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

 

 


 

 

 

posted @ 2022-03-24 20:55  花心大萝卜li  阅读(103)  评论(0)    收藏  举报