zoukankan      html  css  js  c++  java
  • mac zookeeper&kafka 安装包搭建环境

    1、安装zookeeper

    因为zookeeper 与kafka 存在对应的版本,选择不当,将无法使用,所以两者都使用最新版本

    下载地址:https://zookeeper.apache.org/releases.html 

    目录

    下载并解压ZooKeeper软件压缩包后,可以看到zk包含以下的文件和目录:

    图1:ZooKeeper软件的文件和目录

      • bin目录
        zk的可执行脚本目录,包括zk服务进程,zk客户端,等脚本。其中,.sh是Linux环境下的脚本,.cmd是Windows环境下的脚本。
      • conf目录
        配置文件目录。zoo_sample.cfg为样例配置文件,需要修改为自己的名称,一般为zoo.cfg。log4j.properties为日志配置文件。
      • lib
        zk依赖的包。
      • contrib目录
        一些用于操作zk的工具包。
      • recipes目录
        zk某些用法的代码示例

    运行配置

    上面提到,conf目录下提供了配置的样例zoo_sample.cfg,要将zk运行起来,需要将其名称修改为zoo.cfg。
    打开zoo.cfg,可以看到默认的一些配置。

      • tickTime
        时长单位为毫秒,为zk使用的基本时间度量单位。例如,1 * tickTime是客户端与zk服务端的心跳时间,2 * tickTime是客户端会话的超时时间。
        tickTime的默认值为2000毫秒,更低的tickTime值可以更快地发现超时问题,但也会导致更高的网络流量(心跳消息)和更高的CPU使用率(会话的跟踪处理)。
      • clientPort
        zk服务进程监听的TCP端口,默认情况下,服务端会监听2181端口。
      • dataDir
        无默认配置,必须配置,用于配置存储快照文件的目录。如果没有配置dataLogDir,那么事务日志也会存储在此目录。

    配置环境变量 vim ~/.bash_profile 

    export ZK_HOME=/Users/yyj/big_data/zookeeper
    export KAFKA_HOME=/Users/yyj/big_data/kafka_2.12-2.5.0
    export PATH=$PATH:$ANDROID_HOME/platform-tools:${KAFKA_HOME}/bin:${ZK_HOME}/bin

    启动 进入bin目录,执行命令

    zkServer.sh start

    安装Kafka

    下载 http://kafka.apache.org/downloads

    解压

    tar -xzf kafka_2.12-2.5.0.tgz

    注意,kafka_2.12-2.5.0.tgz版本是已经编译好的版本,解压就能使用。

     配置server.properties

    默认配置 advertised.listeners=PLAINTEXT://:your.host.name:9092 修改为 advertised.listeners=PLAINTEXT://:ip:9092

    ip为服务器ip。

    hostname和端口是用来建议给生产者和消费者使用的,如果没有设置,将会使用listeners的配置,如果listeners也没有配置,将使用java.net.InetAddress.getCanonicalHostName()来获取这个hostname和port,对于ipv4,基本就是localhost了。

    "PLAINTEXT"表示协议,可选的值有PLAINTEXT和SSL,hostname可以指定IP地址,也可以用"0.0.0.0"表示对所有的网络接口有效,如果hostname为空表示只对默认的网络接口有效。也就是说如果你没有配置advertised.listeners,就使用listeners的配置通告给消息的生产者和消费者,这个过程是在生产者和消费者获取源数据(metadata)。

    配置环境变量

    export ZK_HOME=/Users/yyj/big_data/zookeeper
    export KAFKA_HOME=/Users/yyj/big_data/kafka_2.12-2.5.0
    export PATH=$PATH:$ANDROID_HOME/platform-tools:${KAFKA_HOME}/bin:${ZK_HOME}/bin

    启动Kafka

     启动ZooKeeper

    zkServer.sh start

    注意,需要先启动ZooKeeper再启动kafka,不然会报错。如下图:

    启动kafka

    kafka-server-start.sh /Users/yyj/big_data/kafka_2.12-2.5.0/config/server.properties

    启动Kafka Broker后,在ZooKeeper终端上键入命令 jps,效果如下:

    创建topic

    bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic demo

    其中demo为创建的topic名称。

    Linux安装Kafka

    如上图,创建了一个名为 demo 的主题,其中包含一个分区和一个副本因子。 创建成功之后会输出: Created topic "demo".

    Linux安装Kafka

    如上图,创建主题后,系统会在config / server.properties文件中的"/ tmp / kafka-logs /"中指定的创建主题的日志。

     查询topic列表

    bin/kafka-topics.sh --list --zookeeper localhost:2181

     查看topic信息

    bin/kafka-topics.sh --zookeeper localhost:2181 --describe --topic demo

     删除topic

    bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic demo
    

      

    启动生产者

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

      

    从上面的语法,生产者命令行客户端需要两个主要参数 -

    代理列表 - 我们要发送邮件的代理列表。 在这种情况下,我们只有一个代理。 Config / server.properties文件包含代理端口ID,因为我们知道我们的代理正在侦听端口9092,因此您可以直接指定它。主题名称:demo。

     启动消费者

    为了方便测试,另启一个sheel窗口 这样效果更明显。需要注意的是旧版本和新版本的命令是不一样的

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

      

    报错提示: zookeeper is not a recognized option

    发现在启动的时候说使用 --zookeeper是一个过时的方法,最新的版本中命令如下:

    bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic demo --from-beginning

    可以开启两个终端,一个发送消息,一个接受消息。效果如下:

    配置启动 关闭shell 脚本

    start_all.sh 

    #!/bin/bash
    
    # 启动zk
    zkServer.sh start
    
    # 启动kafka
    nohup kafka-server-start.sh /Users/yyj/big_data/kafka_2.12-2.5.0/config/server.properties >> /Users/yyj/big_data/kafka.log &

    stop_all.sh

    #!/bin/bash
    
    # 关闭kafka
    kafka-server-stop.sh /Users/yyj/big_data/kafka_2.12-2.5.0/config/server.properties
    
    # 关闭zk
    zkServer.sh stop

     

     

     

     

  • 相关阅读:
    java-线程
    List、Map、set的加载因子,默认初始容量和扩容增量
    Mybatis使用generator自动生成映射配置文件信息
    Fiddler手机https抓包
    通知消息与ON_NOTIFY
    ATL实现COM组件
    vs参数配置
    QToolBox
    CTreeCtrl控件
    SQL-INSERT INTO用法
  • 原文地址:https://www.cnblogs.com/BlueSkyyj/p/13064769.html
Copyright © 2011-2022 走看看