zoukankan      html  css  js  c++  java
  • kafka_2.10-0.10.0.0集群安装

     

    kafka_2.10-0.10.0.0集群安装

    IP

    HOST

    192.168.132.94

    BDTEST05

    192.168.132.95

    BDTEST06

    192.168.132.96

    BDTEST07

    1.          配置java环境

    非常简单就不介绍了

    2.          安装zookeeper集群

    kafka自带有zookeeper服务,但是建议大家最好单独建立一个zookeeper集群,可以和其他应用共享,也便于管理

    安装介绍见“zookeeper-3.4.6集群部署”文档

    3.          准备安装介质

    将下载好的介质kafka_2.10-0.10.0.0.tgz(此处下载的是已编译的)传到服务上并解压

    [hduser@BDTEST05 app]$ tar -zxvf kafka_2.10-0.10.0.0.tgz

     

    4.          更改kafka配置文件

    [hduser@BDTEST05 app]$ vi /app/kafka_2.10-0.10.0.0/config/server.properties

    kafka_2.10-0.10.0.0版本的这个配置文件和以前版本有些差别

    需要配置的属性有:

    broker.id=1

    host.name=BDTEST05

    listeners=PLAINTEXT://BDTEST05:9092

    advertised.listeners=PLAINTEXT://BDTEST05:9092

    log.dirs=/app/kafka_2.10-0.10.0.0/logs

    num.partitions=4

    zookeeper.connect=BDTEST05:2181,BDTEST06:2181,BDTEST07:2181

    broker.id(标示当前server在集群中的id,有的说从0开始,有的说从1开始),数字且唯一

    log.dirs(log的存储目录,要对应的去建立这个目录)等,其他的一些配置可以看相应的注释:

    其他配置暂时采取默认

    zookeeper.connect(连接的zookeeper集群)

     

    5.          拷贝kafka到另外两台机器

    [hduser@BDTEST05 app]$ scp -r /app/kafka_2.10-0.10.0.0/ hduser@BDTEST06://app/

    [hduser@BDTEST05 app]$ scp -r /app/kafka_2.10-0.10.0.0/ hduser@BDTEST07://app/

    对应更改配置文件/app/kafka_2.10-0.10.0.0/config/server.properties中的

     

    6.          启动kafka服务

    注意:先启动zookeeper集群,再启动kakfa集群

    查看zookeeper服务是否启动(这里查看一台的就可以了)

    [hduser@BDTEST05 app]$ clush -g zookeeper /app/zookeeper-3.4.6/bin/zkServer.sh status

    在每台机器上启动kafka服务

    [hduser@BDTEST05 app]$ nohup /app/kafka_2.10-0.10.0.0/bin/kafka-server-start.sh /app/kafka_2.10-0.10.0.0/config/server.properties &

    &表示后台运行,否则一旦终端关闭服务立刻停止 配合nohup使用,这样不会看到如下图日志

     

    7.          简单测试kafka

    (1)任意一台机器上面(此测试在BDTEST05上),测试:在kafka中创建名为“cmy_nbd_topic1”的topic,该topic切分为4份,每一份备份数为3

    [hduser@BDTEST05 bin]$ ./kafka-topics.sh --create --zookeeper BDTEST05:2181 --replication-factor 3 --partitions 4 --topic  cmy_nbd_topic1

    (2)列出所有topic :

    [hduser@BDTEST05 bin]$ ./kafka-topics.sh --list --zookeeper BDTEST05:2181,BDTEST06:2181,BDTEST07:2181

      

    一个完整测试

    (1)单机连通性测试:

     (a)运行producer:

    ./kafka-console-producer.sh --broker-list localhost:9092 --topic test 

     (b)运行consumer:          

    ./kafka-console-consumer.sh  --zookeeper localhost:2181 --topic test --from-beginning

    在producer端输入字符串并回车,查看consumer端是否显示。 

    (2) 分布式连通性测试

    Zookeeper Server, Kafka Server, Producer都放在服务器BDTEST05上

    Consumer放在服务器BDTEST06上

    修改Kafka Server的配置文件,将这行修改成这样:

    advertised.listeners=PLAINTEXT://BDTEST05:9092

    (a)运行BDTEST05上面的producer:   

    [hduser@BDTEST05 bin]$ ./kafka-console-producer.sh --broker-list  BDTEST05:9092 --topic test 

    (b)运行BDTEST06上面的consumer:  

    [hduser@BDTEST06 bin]$ ./kafka-console-consumer.sh --zookeeper BDTEST06:2181 --topic test --from-beginning 

    在producer端输入字符串并回车,查看consumer端是否显示。

     

    8.          关闭kafka服务

    /app/kafka_2.10-0.10.0.0/bin/kafka-server-stop.sh

    9.          设置集群启动、关闭脚本

    之前安装zookeeper时已经配置clush工具,添加了zookeeper组

     

    (1)创建关闭kafka服务器组脚本

    [hduser@BDTEST05 service]$ vi stopKafka.sh

     

    (2)创建启动kafka服务器组脚本

    执行脚本

    [hduser@BDTEST05 service]$ sh stopKafka.sh

    [hduser@BDTEST05 service]$ sh startKafka.sh

    问题

    使用/app/kafka_2.10-0.10.0.0/bin/kafka-server-stop.sh停止服务停不掉,查看该停止脚本内容如下,使用jps 或者 ps -ef | grep kafka确实能够查到PID

    但是脚本中ps ax | grep -i 'kafka.Kafka'就是查不到PID,这其中使用正则 如果单独使用ps ax | grep -i 'kafka'或者ps ax | grep -i '.Kafka'都能够查到

     

    PIDS=$(ps ax | grep -i 'kafka.Kafka' | grep java | grep -v grep | awk '{print $1}')

    if [ -z "$PIDS" ]; then

      echo "No kafka server to stop"

      exit 1

    else

      kill -s TERM $PIDS

    fi

    解决办法:更改脚本

  • 相关阅读:
    java Activiti 工作流引擎 SSM 框架模块设计方案
    自定义表单 Flowable 工作流 Springboot vue.js 前后分离 跨域 有代码生成器
    数据库设计的十个最佳实践
    activiti 汉化 stencilset.json 文件内容
    JAVA oa 办公系统模块 设计方案
    java 考试系统 在线学习 视频直播 人脸识别 springboot框架 前后分离 PC和手机端
    集成 nacos注册中心配置使用
    “感恩节 ”怼记
    仓颉编程语言的一点期望
    关于System.out.println()与System.out.print("\n")的区别
  • 原文地址:https://www.cnblogs.com/OS-BigData/p/8526537.html
Copyright © 2011-2022 走看看