zoukankan      html  css  js  c++  java
  • kafka介绍二 快速开始

      Kafka控制脚本在Unix和Windows平台有所不同,在Windows平台,请使用 binwindows 而不是bin/

      下面是在windows下操作

      1、下载:https://archive.apache.org/dist/kafka/1.0.0/kafka_2.11-1.0.0.tgz

        解压

        

      2、启动服务器

        下载ZooKeeper:https://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.5.8/

        

        下载解压到D:zookeeper,

        配置环境变量
        在系统环境变量中添加:ZOOKEEPER_HOME=D:zookeeperapache-zookeeper-3.5.8apache-zookeeper-3.5.8-bin
        在系统变量中的path变量,增加%ZOOKEEPER_HOME%in

        修改配置文件

        进入目录D:zookeeperapache-zookeeper-3.6.2conf,将"zoo_sample.cfg"重命名为"zoo.cfg";打开zoo.cfg,找到并编辑:
        dataDir=/tmp/zookeeper 改为 dataDir=D:\zookeeper\data  (路径仅为示例,具体可根据需要配置)
        其他配置暂时按照默认。

        打开cmd然后执行 zkserver

        

        现在启动Kafka服务器:

        kafka-server-start.bat config/server.properties

        报错:

        

         改成全路径:kafka-server-start.bat D:/kafka/kafka_2.11-1.0.0/config/server.properties或者 kafka-server-start.bat ../../config/server.properties

       3、创建一个 topic

        创建一个名为“test”的topic,它有一个分区和一个副本:

       kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

       

        运行list(列表)命令来查看这个topic:kafka-topics.bat --list --zookeeper localhost:2181

        

       4、发送一些信息

        Kafka自带一个命令行客户端,它从文件或标准输入中获取输入,并将其作为message(消息)发送到Kafka集群。默认情况下,每行将作为单独的message发送。

        运行 producer,然后在控制台输入一些消息以发送到服务器。

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

        输入:This is a message

           This is another message

         

      5、启动启动一个 consumer

        Kafka 还有一个命令行consumer(消费者),将消息转储到标准输出。

        kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test --from-beginning

        得到:

        This is a message

        This is another message

        

        如果将上述命令在不同的终端中运行,那么现在就可以将消息输入到生产者终端中,并将它们在消费终端中显示出来。

        所有的命令行工具都有其他选项;运行不带任何参数的命令将显示更加详细的使用信息。

      6、设置多代理集群

        对 Kafka来说,单个代理只是一个大小为一的集群,除了启动更多的代理实例外,没有什么变化。 为了深入了解它,把集群扩展到三个节点(仍然在本地机器上)。

        首先,为每个代理创建一个配置文件 :

        copy server.properties server-1.properties

        copy server.properties server-2.properties

         

        现在编辑这些新文件并设置如下属性:

        

    config/server-1.properties:
        broker.id=1
        listeners=PLAINTEXT://:9093
        log.dir=/tmp/kafka-logs-1
     
    config/server-2.properties:
        broker.id=2
        listeners=PLAINTEXT://:9094
        log.dir=/tmp/kafka-logs-2

        broker.id属性是集群中每个节点的名称,这一名称是唯一且永久的。我们必须重写端口和日志目录,因为我们在同一台机器上运行这些,

        不希望所有的代理尝试在同一个端口注册,或者覆盖彼此的数据

        已经建立Zookeeper和一个单节点了,现在我们只需要启动两个新的节点

         kafka-server-start.bat D:/kafka/kafka_2.11-1.0.0/config/server-1.properties

         kafka-server-start.bat D:/kafka/kafka_2.11-1.0.0/config/server-2.properties

        现在创建一个副本为3的新topic:

        kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic my-replicated-topic

        

        现在我们有一个集群,但是我们怎么才能知道那些代理在做什么呢?运行"describe topics"命令来查看:

        kafka-topics.bat --describe --zookeeper localhost:2181 --topic my-replicated-topic

        

        以下是对输出信息的解释。第一行给出了所有分区的摘要,下面的每行都给出了一个分区的信息。因为我们只有一个分区,所以只有一行。

        1、“leader”是负责给定分区所有读写操作的节点。每个节点都是随机选择的部分分区的领导者。
        2、“replicas”是复制分区日志的节点列表,不管这些节点是leader还是仅仅活着。
        3、“isr”是一组“同步”replicas,是replicas列表的子集,它活着并被指到leader。
        注意,在示例中,节点1是该主题中唯一分区的领导者。

        可以在已创建的原始主题上运行相同的命令来查看它的位置:kafka-topics.bat --describe --zookeeper localhost:2181 --topic test

        

        原来的主题没有副本且在服务器0上。我们创建集群时,这是唯一的服务器。

        发表一些信息给我们的新topic:kafka-console-producer.bat --broker-list localhost:9092 --topic my-replicated-topic

        

         现在我们来消费这些消息:

        kafka-console-consumer.bat --bootstrap-server localhost:9092 --from-beginning --topic my-replicated-topic

        

      7、使用Kafka Connect来导入/导出数据

        使用Kafka Connect来导入/导出数据

        从控制台读出数据并将其写回是十分方便操作的,但你可能需要使用其他来源的数据或将数据从Kafka导出到其他系统。针对这些系统, 可以使用

        Kafka Connect来导入或导出数据,而不是写自定义的集成代码。

        Kafka Connect是Kafka的一个工具,它可以将数据导入和导出到Kafka。它是一种可扩展工具,通过运行connectors(连接器), 使用自定义逻辑来实现与外部系统的交互。

         在本文中,我们将看到如何使用简单的connectors来运行Kafka Connect,这些connectors 将文件中的数据导入到Kafka topic中,并从中导出数据到一个文件。

        我们将创建一些种子数据来进行测试:

        在d盘生成一个test.txt文件,输入文本 :foo

         echo foo> d: est.txt 

         echo bar>> d: est.txt

        

        

        接下来,我们将启动两个standalone(独立)运行的连接器,这意味着它们各自运行在一个单独的本地专用 进程上。 我们提供三个配置文件。

        首先是Kafka Connect的配置文件,包含常用的配置,如Kafka brokers连接方式和数据的序列化格式。 其余的配置文件均指定一个要创建的连接器。

        这些文件包括连接器的唯一名称,类的实例,以及其他连接器所需的配置。

        connect-standalone.bat ../../config/connect-standalone.properties ../../config/connect-file-source.properties ../../config/connect-file-sink.properties

  • 相关阅读:
    项目开发管理SDEM
    google安装文件 和 缓存位置:
    数据库 查询超时 运行超时 问题
    将Access、Excel数据导出到MSSQL/使用 OpenRowSet 和 OpenDataSource 访问 Excel 97-2007
    Mybatis日志(七)
    Mybatis拦截器(六)
    Mybatis动态SQL(五)
    Mybatis的XML映射文件(四)
    Mybatis全局配置文件详解(三)
    Mybatis环境搭建(二)
  • 原文地址:https://www.cnblogs.com/shaosks/p/14154517.html
Copyright © 2011-2022 走看看