zoukankan      html  css  js  c++  java
  • kafka分布式虚拟机群部署配置方法

    配置jdk8

    假设安装(解压)路径:jdk1.8.0

    修改/etc/profile,增加以下设置并保存

    Export JAVA_HOME=jdk1.8.0

    Export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

    Export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH

    命令行中执行source /etc/profile

    Zookeeper centos7 虚拟机群部署

    假设目录结构为

    /opt/zookeeper/ #zookeeper存放目录

    /opt/zkdata#快照日志的存储路径

    /opt/zklog#事物日志的存储路径

    1.1 在每台机器上修改配置文件

    1进入/opt/zookeeper/conf建立配置文件并修改

    cp zoo_sample.cfg zoo.cfg

    vim zoo.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:13888

    server.2=192.168.7.101:12888:13888

    server.3=192.168.7.107:12888:13888

    #server.1 这个1是服务器的标识也可以是其他的数字, 表示这个是第几号服务器,用来标识服务器,这个标识要写到快照目录下面myid文件里

    #192.168.7.107为集群里的IP地址,第一个端口是masterslave之间的通信端口,默认是2888,第二个端口是leader选举的端口,集群刚启动的时候选举或者leader挂掉之后进行新的选举的端口默认是3888

    2在每台机器创建myid文件

    #server1

    echo "1" > /opt/zookeeper/zkdata/myid

    #Echo “ ”中的整数要与zoo.cfg文件中server. 后面的数字相同

    3启动zookeeper

    /opt/zookeeper/bin/zkServer.sh start

    4查看服务状态

    /opt/zookeeper/bin/zkServer.sh status

    正常应显示如下信息:

    JMX enabled by default

    Using config: /opt/zookeeper/zookeeper-3.4.6/bin/../conf/zoo.cfg  #配置文件

    Mode: follower  #是否为领导

    1.2 Zookeeper常见启动错误排查

    排查方法:启动时打开日志./zkServer.sh start-foreground并观察

    常见原因及解决方法:

    1zookeeper配置错误

    检查各项配置即可,例如路径、端口号等

    2检查是否存在myid文件,内容是否正确

    3出现no route to host

    关闭防火墙即可:systemctl stop firewalld.service

    systemctl disable firewalld.service

    4bindException

    查看端口占用

    Lsof -i:12181#zoo.cfg中的clientPort

    若有其他程序占用则考虑终止该进程

    Kill -9 PID

    常用命令:

    Uname -a 查看位数

    Cat /etc/os-release 查看系统版本

    Kafka分布式部署

    下载kafka二进制包并解压,假设解压路径:kafka

    注意:zookeeper-serverkafka-server的启动需root用户权限

    1修改kafka配置

         vim kafka/config/server.properties

         修改内容如下:

    broker.id=1 # 每台服务器的broker.id都不能相同

    #hostname

    host.name=192.168.7.100

    #log.retention.hours=168 下面新增下面三项

    message.max.byte=5242880

    default.replication.factor=2

    replica.fetch.max.bytes=5242880

    #设置zookeeper的连接端口

    zookeeper.connect=192.168.7.100:12181,192.168.7.101:12181,192.168.7.107:12181

    2在每台机器上启动kafka

         Kafka/bin/kafka-server-start.sh kafka/config/server.properties

         利用Jps检查kafka服务是否启动

    3创建、发布、订阅消息

    a创建Topic

    kafka/bin/kafka-topics.sh --create --zookeeper  IP:12181 --replication-factor 2 --partitions 1 --topic testtopic

    b创建一个发布者

    kafka/bin/kafka-console-producer.sh  --broker-list  IP:9092  --topic testtopic

    c创建一个订阅者

    bin/kafka-console-consumer.sh  --bootstrap-server IP:9092  --from-beginning  --topic testtopic

    Centos 虚拟集群网络配置

    (1首先查看网卡设备是否为eth0,若不是转至步骤2,否则转至步骤4

    ifconfig -a

    (2修改网卡配置

    vim /etc/sysconfig/grub

    找到GRUB_CMDLINE_LINUX”,增加net.ifnames=0 biosdevname=0并保存

    3执行grub2-mkconfig -o /boot/grub2/grub.cfg

    4更改/etc/sysconfig/network-scripts/目录下的ifcfg-eno16777736ifcfg-eth0,并修改里面   

         内容。如下:

    1. DEVICE=eth0  
    2. BOOTPROTO=static
    3. IPADDR=192.168.17.100  
    4. NETMASK=255.255.255.0  
    5. HWADDR=00:0C:29:9C:48:B4 
    6. IPV6INIT=no 
    7. NM_CONTROLLED=yes  
    8. ONBOOT=yes 
    9. TYPE=Ethernet  
    10. UUID=35d96ab0-4a6a-4cca-b6c9-fbe24003a44d 
    11. DNS1=192.168.17.2  
    12. GATEWAY=192.168.17.2  

      其中地址在VM的“虚拟网络编辑器”中查看或修改,并设置虚拟机的网络设置,如下图

     

     

    (5)重启,ifconfig查看是否成功。

    6)在每台机器上完成以上步骤

    7)Ping 其他机器IP,若ping成功则集群网络配置成功

  • 相关阅读:
    AIZU 0005
    Android Studio 1.0 (稳定版) 完全攻略
    android studio中avd sdk路径
    vim强大探究之光标移动
    Android项目打第三方jar包
    Android导出jar包后的资源使用问题
    混淆Android JAR包的方法
    Layout_margn与padding的区别
    Android软件开发之盘点自定义View界面大合集(二)
    Android软件开发之盘点所有Dialog对话框大合集(一)
  • 原文地址:https://www.cnblogs.com/candl/p/7157917.html
Copyright © 2011-2022 走看看