1配置jdk8假设安装(解压)路径:jdk1.8.0修改/etc/profile,增加以下设置并保存ExportJAVA_HOME=jdk1.8.0ExportPATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATHExportCLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH命令行中执行source/etc/profile2Zookeepercentos7虚拟机群部署假设目录结构为/opt/zookeeper/#zookeeper存放目录/opt/zkdata#快照日志的存储路径/opt/zklog#事物日志的存储路径2.1在每台机器上修改配置文件(1)进入/opt/zookeeper/conf,建立配置文件并修改。cpzoo_sample.cfgzoo.cfgvimzoo.cfg修改内容如下:tickTime=2000#这个时间是作为Zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个tickTime时间就会发送一个心跳。initLimit=10#这个配置项是用来配置Zookeeper接受客户端(这里所说的客户端不是用户连接Zookeeper服务器的客户端,而是Zookeeper服务器集群中连接到Leader的Follower服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过5个心跳的时间(也就是tickTime)长度后Zookeeper服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是5*2000=10秒syncLimit=5#这个配置项标识Leader与Follower之间发送消息,请求和应答时间长度,最长不能超过多少个tickTime的时间长度,总的时间长度就是5*2000=10秒dataDir=/opt/zkdata#快照日志的存储路径dataLogDir=/opt/zklog#事物日志的存储路径,如果不配置这个那么事物日志会默认存储到dataDir制定的目录,这样会严重影响zk的性能,当zk吞吐量较大的时候,产生的事物日志、快照日志太多clientPort=12181#这个端口就是客户端连接Zookeeper服务器的端口,Zookeeper会监听这个端口,接受客户端的访问请求。修改他的端口改大点server.1=192.168.7.100:12888:13888server.2=192.168.7.101:12888:13888server.3=192.168.7.107:12888:13888#server.1这个1是服务器的标识也可以是其他的数字,表示这个是第几号服务器,用来标识服务器,这个标识要写到快照目录下面myid文件里#192.168.7.107为集群里的IP地址,第一个端口是master和slave之间的通信端口,默认是2888,第二个端口是leader选举的端口,集群刚启动的时候选举或者leader挂掉之后进行新的选举的端口默认是3888(2)在每台机器创建myid文件#server1echo1/opt/zookeeper/zkdata/myid#Echo“”中的整数要与zoo.cfg文件中server.后面的数字相同(3)启动zookeeper/opt/zookeeper/bin/zkServer.shstart(4)查看服务状态/opt/zookeeper/bin/zkServer.shstatus正常应显示如下信息:JMXenabledbydefaultUsingconfig:/opt/zookeeper/zookeeper-3.4.6/bin/../conf/zoo.cfg#配置文件Mode:follower#是否为领导2.2Zookeeper常见启动错误排查排查方法:启动时打开日志./zkServer.shstart-foreground并观察常见原因及解决方法:(1)zookeeper配置错误检查各项配置即可,例如路径、端口号等(2)检查是否存在myid文件,内容是否正确(3)出现“noroutetohost”关闭防火墙即可:systemctlstopfirewalld.servicesystemctldisablefirewalld.service(4)”bindException”查看端口占用Lsof-i:12181#zoo.cfg中的clientPort若有其他程序占用则考虑终止该进程Kill-9PID常用命令:Uname-a查看位数Cat/etc/os-release查看系统版本3Kafka分布式部署下载kafka二进制包并解压,假设解压路径:kafka注意:zookeeper-server与kafka-server的启动需root用户权限(1)修改kafka配置vimkafka/config/server.properties修改内容如下:broker.id=1#每台服务器的broker.id都不能相同#hostnamehost.name=192.168.7.100#在log.retention.hours=168下面新增下面三项message.max.byte=5242880default.replication.factor=2replica.fetch.max.bytes=5242880#设置zookeeper的连接端口zookeeper.connect=192.168.7.100:12181,192.168.7.101:12181,192.168.7.107:12181(2)在每台机器上启动kafkaKafka/bin/kafka-server-start.shkafka/config/server.properties利用Jps检查kafka服务是否启动(3)创建、发布、订阅消息a)创建Topickafka/bin/kafka-topics.sh--create--zookeeperIP:12181--replication-factor2--partitions1--topictesttopicb)创建一个发布者kafka/bin/kafka-console-producer.sh--broker-listIP:9092--topictesttopicc)创建一个订阅者bin/kafka-console-consumer.sh--bootstrap-serverIP:9092--from-beginning--topictesttopic4Centos虚拟集群网络配置(1)首先查看网卡设备是否为eth0,若不是转至步骤2,否则转至步骤4ifconfig-a(2)修改网卡配置vim/etc/sysconfig/grub找到“GRUB_CMDLINE_LINUX”,增加net.ifnames=0biosdevname=0并保存(3)执行grub2-mkconfig-o/boot/grub2/grub.cfg(4)更改/etc/sysconfig/network-scripts/目录下的ifcfg-eno16777736为ifcfg-eth0,并修改里面内容。如下:1.DEVICE=eth02.BOOTPROTO=static3.IPADDR=192.168.17.1004.NETMASK=255.255.255.05.HWADDR=00:0C:29:9C:48:B46.IPV6INIT=no7.NM_CONTROLLED=yes8.ONBOOT=yes9.TYPE=Ethernet10.UUID=35d96ab0-4a6a-4cca-b6c9-fbe24003a44d11.DNS1=192.168.17.212.GATEWAY=192.168.17.2其中地址在VM的“虚拟网络编辑器”中查看或修改,并设置虚拟机的网络设置,如下图(5)重启,ifconfig查看是否成功。(6)在每台机器上完成以上步骤(7)Ping其他机器IP,若ping成功则集群网络配置成功