• linux搭建kafka环境

    2018-05-21 15:08:26
    1、下载kafkahttps://www.apache.org/dyn/closer.cgi?path=/kafka/1.1.0/kafka_2.11-1.1.0.tgz2、上传至linux下并解压3、启动服务3.1、启动zookeeper(启动zk有两种方式,第一种是使用kafka自己带的一个zk。...
    1、下载kafka
    https://www.apache.org/dyn/closer.cgi?path=/kafka/1.1.0/kafka_2.11-1.1.0.tgz
    2、上传至linux下并解压
    3、启动服务
    3.1、启动zookeeper
    (启动zk有两种方式,第一种是使用kafka自己带的一个zk。)
    bin/zookeeper-server-start.sh config/zookeeper.properties &
    另一种是使用其它的zookeeper,可以位于本机也可以位于其它地址。这种情况需要修改config下面的sercer.properties里面的zookeeper地址 。例如zookeeper.connect=192.168.52.128:2181
    3.2启动kafka
    bin/kafka-server-start.sh config/server.properties
    4、创建topic
    bin/kafka-topics.sh --create --zookeeper 192.168.52.128:2181(localhost:2181) --replication-factor 1 --partitions 1 --topic test
    创建一个名为test的topic,只有一个副本,一个分区。

    通过list命令查看刚刚创建的topic
    bin/kafka-topics.sh -list -zookeeper 192.168.52.128:2181(localhost:2181)
    5、启动producer并发送消息启动producer
    bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
    启动之后就可以发送消息了,例如:
    6、启动customer
    bin/kafka-console-consumer.sh --zookeeper 192.168.52.128:2181(localhost:2181) --topic test --from-beginning
    启动consumer之后就可以在console中看到producer发送的消息了,例如:


    展开全文
  • Kafka Linux环境搭建

    2019-04-29 10:35:30
    Kafka Linux环境搭建 一: 安装JDK1.8 二: 安装Zookeeper 三: 安装Kafka 四: 先启动Zookeeper再启动Kafka 五: 创建主题,生产者,消费者 一: 安装JDK1.8 1:下载jdk压缩包,使用xftp工具放到Linux中,然后解压 在Linux中...

    Kafka Linux环境搭建

    一: 安装JDK1.8
    二: 安装Zookeeper
    三: 安装Kafka
    四: 先启动Zookeeper再启动Kafka
    五: 创建主题,生产者,消费者

    一: 安装JDK1.8
    1:下载jdk压缩包,使用xftp工具放到Linux中,然后解压
    在这里插入图片描述
    在Linux中进入目录,解压jdk包
    cd /usr/local/jdk8
    tar -zxvf jdk-8u144-Linux-i586.tar.gz cd
    在这里插入图片描述
    解压完:
    在这里插入图片描述
    cd jdk1.8.0_144,pwd得到路径: /usr/local/jdk8/jdk1.8.0_144
    在这里插入图片描述
    配置环境变量:
    vi /etc/profile
    在这里插入图片描述
    在最后位置加上:
    export JAVA_HOME=/usr/local/jdk8/jdk1.8.0_144
    export PATH=PATH:PATH:JAVA_HOME/bin
    在这里插入图片描述
    输入java -version检验时候安装ok:
    报错:
    -bash: /usr/local/jdk8/jdk1.8.0_144/bin/java: /lib/ld-Linux.so.2: bad ELF interpreter: 没有那个文件或目录
    在这里插入图片描述
    换成jdk-8u144-Linux-x64.tar.gz就行了,原因是安装包和Linux版本不匹配
    在这里插入图片描述
    重新解压安装,配置保持不变,输入java -version,如下,安装jdk成功:
    在这里插入图片描述

    二:安装Zookeeper
    把zookeeper安装包放到/usr/local/zookeeper目录,解压
    在这里插入图片描述
    tar -zxvf zookeeper-3.4.11.tar.gz
    在这里插入图片描述
    Ls:
    在这里插入图片描述
    查看zookeeper的配置文件cd /usr/local/zookeeper/zookeeper-3.4.11/conf/
    在这里插入图片描述
    打开配置文件: vi zoo_sample.cfg ,端口为2181
    在这里插入图片描述

    三:安装Kafka
    把Kafka安装包放到/usr/local/zookeeper目录,解压
    在这里插入图片描述
    Ls:
    在这里插入图片描述
    修改server.properties配置文件的内容,主要更改参数为:
    cd /usr/local/kafka/kafka_2.12-1.1.0/config/server.properties
    vi server.properties
    在这里插入图片描述
    服务器唯一标识符:broker.id=0
    在这里插入图片描述

    放开# listeners=PLAINTEXT://:9092
    在这里插入图片描述
    Zookeeper端口为2181
    在这里插入图片描述
    Esc :wq保存退出
    启动zookeeper: ./zkServer.sh start
    报错:
    Caused by: java.lang.IllegalArgumentException: /usr/local/zookeeper/zookeeper-3.4.11/bin/…/conf/zoo.cfg file is missing
    在这里插入图片描述
    因为默认加载 conf中的zoo.cfg文件,所以要把 zoo_sample.cfg 拷贝一份命名为zoo.cfg
    在这里插入图片描述
    在这里插入图片描述

    启动zookeeper
    在这里插入图片描述
    查看状态:netstat -anop | grep 2181, 启动成功:
    在这里插入图片描述
    启动kafka:
    报错,写法不对:
    在这里插入图片描述
    正确:
    先进入目录: cd /usr/local/kafka/kafka_2.12-1.1.0
    在这里插入图片描述
    在这里插入图片描述
    再启动:
    bin/kafka-server-start.sh config/server.properties &
    在这里插入图片描述

    完成
    在这里插入图片描述

    在xshell软件复制一个窗口:
    在这里插入图片描述
    进入目录:cd /usr/local/kafka/kafka_2.12-1.1.0
    在这里插入图片描述
    创建一个主题:
    bin/kafka-topics.sh --list --zookeeper localhost:2181 test
    查看创建的主题:
    bin/kafka-cons
    在这里插入图片描述

    生产者:
    bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
    在这里插入图片描述
    在xshell软件复制一个窗口:
    在这里插入图片描述
    进入目录:
    cd /usr/local/kafka/kafka_2.12-1.1.0
    在这里插入图片描述
    bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
    消费者:
    在这里插入图片描述

    展开全文
  •  Kafka集群是把状态保存在Zookeeper中的,首先要搭建Zookeeper集群。由于我们之前的分布式系统中已经安装zookeeper服务,这里不进行zookeeper安装教程以及应用教程图解。需要注意的是:Zookeeper集群的工作是超过...

    准备工作

      Kafka集群是把状态保存在Zookeeper中的,首先要搭建Zookeeper集群。由于我们之前的分布式系统中已经安装zookeeper服务,这里不进行zookeeper安装教程以及应用教程图解。需要注意的是:Zookeeper集群的工作是超过半数才能对外提供服务,3台中超过两台超过半数,允许1台挂掉 ,是否可以用偶数,其实没必要。如果有四台那么挂掉一台还剩下三台服务器,如果在挂掉一个就不行了,这里记住是超过半数。

    集群搭建

    软件环境

    • linux一台或多台,大于等于2
    • 已经搭建好的zookeeper集群
    • kafka_2.10-0.10.1.0或以上稳定版本

    创建目录并下载安装

    1.创建目录

    cd /usr/fuyou/ #进入服务器目录

    mkdir kafka #创建项目目录

    cd kafka #进入kafka目录

    mkdir kafkalogs #创建kafka消息目录,主要存放kafka消息

    2.下载软件

    wget  http://apache.opencas.org/kafka/0.9.0.1/kafka_2.10-0.10.1.0.tgz

    3.解压软件

    tar -zxvf kafka_2.10-0.10.1.0.tgz

    修改配置文件

    1.进入config目录

    cd /usr/fuyou/kafka/kafka_2.11-0.9.0.1/config/

    2.主要修改server.properties配置文件

    #########################参数解释##############################

    broker.id=0  #当前机器在集群中的唯一标识,和zookeepermyid性质一样

    port=9092 #当前kafka对外提供服务的端口默认是9092

    host.name=192.168.7.100 #这个参数默认是关闭的,在0.8.1有个bugDNS解析问题,失败率的问题。

    num.network.threads=3 #这个是borker进行网络处理的线程数

    num.io.threads=8 #这个是borker进行I/O处理的线程数

    log.dirs=/opt/kafka/kafkalogs/ #消息存放的目录,这个目录可以配置为逗号分割的表达式,上面的num.io.threads要大于这个目录的个数这个目录,如果配置多个目录,新创建的topic他把消息持久化的地方是,当前以逗号分割的目录中,那个分区数最少就放那一个

    socket.send.buffer.bytes=102400 #发送缓冲区buffer大小,数据不是一下子就发送的,先回存储到缓冲区了到达一定的大小后在发送,能提高性能

    socket.receive.buffer.bytes=102400 #kafka接收缓冲区大小,当数据到达一定大小后在序列化到磁盘

    socket.request.max.bytes=104857600 #这个参数是向kafka请求消息或者向kafka发送消息的请请求的最大数,这个值不能超过java的堆栈大小

    num.partitions=1 #默认的分区数,一个topic默认1个分区数

    log.retention.hours=168 #默认消息的最大持久化时间,168小时,7

    message.max.byte=5242880  #消息保存的最大值5M

    default.replication.factor=2  #kafka保存消息的副本数,如果一个副本失效了,另一个还可以继续提供服务

    replica.fetch.max.bytes=5242880  #取消息的最大直接数

    log.segment.bytes=1073741824 #这个参数是:因为kafka的消息是以追加的形式落地到文件,当超过这个值的时候,kafka会新起一个文件

    log.retention.check.interval.ms=300000 #每隔300000毫秒去检查上面配置的log失效时间(log.retention.hours=168 ),到目录查看是否有过期的消息如果有,删除

    log.cleaner.enable=false #是否启用log压缩,一般不用启用,启用的话可以提高性能

    zookeeper.connect=192.168.7.100:12181,192.168.7.101:12181,192.168.7.107:1218 #设置zookeeper的连接端口

    #########################参数解释##############################

     

    #########################参数修改############################## 

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

    host.name=192.168.7.100 #hostname

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

    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

    #########################参数修改##############################

    启动kafka

    启动kafka之前要启动对应的zk集群

    1.启动服务

    #从后台启动Kafka集群(3台都需要启动)

    cd /usr/fuyou/kafka/kafka_2.11-0.9.0.1/bin 

    #进入到kafkabin目录 

    ./kafka-server-start.sh -daemon ../config/server.properties

    2.检查kafka是否启动

    #执行命令jps

    20348 Jps

    4233 QuorumPeerMain

    18991 Kafka

    3.创建topic来验证是否创建成功

    #创建Topic

    ./kafka-topics.sh --create --zookeeper 192.168.7.100:2181 --replication-factor 2 --partitions 1 --topic shuaige

    --replication-factor 2   #复制两份

    --partitions 1 #创建1个分区

    --topic #主题为shuaige

    (以下部分我们在代码部分实现功能)

    '''在一台服务器上创建一个发布者'''#创建一个broker,发布者

    ./kafka-console-producer.sh --broker-list 192.168.7.100:19092 --topic shuaige

    '''在一台服务器上创建一个订阅者'''

    ./kafka-console-consumer.sh --zookeeper localhost:12181 --topic shuaige --from-beginning

    4.查看其他命令

    4.1 查看topic

    ./kafka-topics.sh --list --zookeeper localhost:12181

    #就会显示我们创建的所有topic

    4.2 查看topic状态

    ./kafka-topics.sh --describe --zookeeper localhost:12181 --topic shuaige

    #下面是显示信息

         Topic: ssports    PartitionCount:1    ReplicationFactor:2    Configs:

         Topic: shuaige    Partition: 0    Leader: 1    Replicas: 0,1    Isr: 1

    #分区为为1  复制因子为2   他的  shuaige的分区为0

    #Replicas: 0,1   复制的为0,1

    日志说明

      kafka的日志是保存在/usr/fuyou/kafka/kafka_2.10-0.10.1.0/logs目录下的

         server.log #kafka的运行日志

         state-change.log  #kafka他是用zookeeper来保存状态,所以他可能会进行切换,切换的日志就保存在这里

         controller.log #kafka选择一个节点作为“controller”,当发现有节点down掉的时候它负责在游泳分区的所有节点中选择新的leader,这使得Kafka可以批量的高效的管理所有分区节点的主从关系。如果controller down掉了,活着的节点中的一个会备切换为新的controller.

    Kafka删除相关

    kafka 0.8.2.1开始可以直接删除topic

    步骤如下:
    1.kafka配置文件中添加删除参数
    delete.topic.enable=true

    2.利用命令删除需要删除的topic
    ./kafka-topics.sh --delete --zookeeper localhost:2181 --topic mytest

    展开全文
  • Linux搭建Kafka集群

    2018-11-30 16:48:14
    Linux搭建Kafka集群 1 说明 1.1 编写目的 本文编写旨在介绍Kafka的集群架构配置,了解Kafka的基本使用。 1.2 适用范围 本文适用于对高效率消息中间件及对大数据处理比较有兴趣的童鞋。本文仅介绍了Kafka的基本知识、...

    Linux搭建Kafka集群

    1 说明

    1.1 编写目的

    本文编写旨在介绍Kafka的集群架构配置,了解Kafka的基本使用。

    1.2 适用范围

    本文适用于对高效率消息中间件及对大数据处理比较有兴趣的童鞋。本文仅介绍了Kafka的基本知识、集群架构,以及Kafka的基本使用。

    2 Kafka简介

    2.1 什么是kafka

    Apache Kafka是分布式发布-订阅消息系统。它最初由LinkedIn公司开发,之后成为Apache项目的一部分。Kafka使用Scala编写,是一种快速、可扩展的、设计内在就是分布式的,分区的和可复制的提交日志服务。目前越来越多的开源分布式处理系统如Cloudera、Apache Storm、Spark都支持与Kafka集成。据了解,Kafka每秒可以生产约25万消息(50 MB),每秒处理55万消息(110 MB)。
    其主要设计目标为:
    1、以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间复杂度的访问性能。
    2、高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒100K条以上消息的传输。
    3、支持Kafka Server间的消息分区,及分布式消费,同时保证每个Partition内的消息顺序传输。
    4、同时支持离线数据处理和实时数据处理。
    5、 Scale out:支持在线水平扩展。

    2.2 Kafka基本概念

    1、Producer:消息生产者,就是向kafka broker发消息的客户端。
    2、Consumer:消息消费者,向kafka broker取消息的客户端。
    3、Topic:特定类型的消息流,可以理解为一个队列。
    4、Consumer Group (CG):这是kafka用来实现一个topic消息的广播(发给所有的consumer)和单播(发给任意一个consumer)的手段。一个topic可以有多个CG。topic的消息会复制(不是真的复制,是概念上的)到所有的CG,但每个CG只会把消息发给该CG中的一个consumer。如果需要实现广播,只要每个consumer有一个独立的CG就可以了。要实现单播只要所有的consumer在同一个CG。用CG还可以将consumer进行自由的分组而不需要多次发送消息到不同的topic。
    5、Broker:已发布的消息保存在一组服务器中,称之为Kafka集群。一台kafka服务器就是一个broker。一个集群由多个broker组成。一个broker可以容纳多个topic。
    6、Partition:为了实现扩展性,一个非常大的topic可以分布到多个broker(即服务器)上,一个topic可以分为多个partition,每个partition是一个有序的队列。partition中的每条消息都会被分配一个有序的id(offset)。kafka只保证按一个partition中的顺序将消息发给consumer,不保证一个topic的整体(多个partition间)的顺序。
    7、Offset:kafka的存储文件都是按照offset.kafka来命名,用offset做名字的好处是方便查找。例如你想找位于2049的位置,只要找到2048.kafka的文件即可。当然the first offset就是00000000000.kafka。

    2.3 Kafka架构

    2.3.1 集群示意

    kafka集群示意图
    Kafka集群的业务处理示意如上图所示。生产者发布消息到集群中,消费者订阅某topic,创建消息流。生产者发布到该话题的消息被均衡地分发到这些流中。

    2.3.2 整体架构

    kafka整体架构图
    Kafka的整体架构如上图所示,展示了生产者、消费者、Topic、Partition之间的关系和数据传递。因为Kafka内在就是分布式的,一个Kafka集群通常包括多个代理。为了均衡负载,将话题分成多个分区,每个代理存储一或多个分区。多个生产者和消费者能够同时生产和获取消息。

    3 配置准备

    3.1 服务器准备

    一般情况下,Kafka集群至少需要3台机器。本文档就以3台机器作为安装环境进行配置,操作系统以Centos 7为例。
    各个节点及描述如下表所示:

    机器名 IP
    node1 192.168.204.127
    node2 192.168.204.128
    node3 192.168.204.129

    如以下步骤使用机器名替代ip需要在/etc/hosts文件中配置例如192.168.204.127 node1信息 ,直接使用ip则不需要配置

    3.2 环境准备

    由于Kafka需要通过Zookeeper进行分布式系统的协调和促进,通过Zookeeper协调Broker、生产者和消费者。所以安装前需在每台机器上安装好Zookeeper(虽然Kafka自带有Zookeeper,但一般使用外置安装),具体安装步骤见https://blog.csdn.net/zhangkai19910815/article/details/84230349

    3.3 软件准备

    Kafka属于Apache的一个子项目,需到其官网上进行下载,下载方式为:
    wget https://www.apache.org/dyn/closer.cgi?path=/kafka/1.1.1/kafka_2.12-1.1.1.tgz
    (具体版本以官网为准)

    4 Kafka安装

    如无特别说明,以下操作均需要在每台服务器上完成。

    4.1 Kafka安装

    1、进入某一目录(本文以/home/tmp/为例),执行如下命令完成kafka的下载:
    wget https://www.apache.org/dyn/closer.cgi?path=/kafka/1.1.1/ kafka_2.12-1.1.1.tgz
    2、执行命令解压压缩包至软件安装常用目录(本人常用目录为/usr/local/apps,个人按情况而定)
    [root@node1 tmp]# tar zxvf kafka_2.12-1.1.1.tgz -C /usr/local/apps
    3、为了方便操作,进入 /usr/local/apps 并修改安装目录名:
    [root@ node1 tmp]# cd /usr/local/apps
    [root@ node1 apps]# mv kafka_2.12-1.1.1 kafka
    4、配置环境变量

    vi /etc/profile
    添加系统变量并修改PATH:

    export KAFKA_HOME=/usr/local/apps/kafka
    export PATH=.:${JAVA_HOME}/bin:${ZK_HOME}/bin:${STORM_HOME}/bin:$PATH:${KAFKA_HOME}/bin
    

    4.2 Kafka配置

    安装完成后需对Kafka进行配置,配置主要体现在config目录下的server.properties
    [root@ node1 config]# cd /user/local/apps/kafka/config/
    [root@ node1 config]# vi server.properties
    将配置信息按如下内容进行基础性的修改:
    1、 修改broker.id,确保每台机器的broker.id不一致,本文3台服务器的broker.id分别设置为1、2、3;
    2、 port默认为9092,可以根据需要进行修改,一般情况下保持3台服务器一致;
    3、 修改host.name为本机真实IP;
    4、 num.partitions默认为1,可根据集群要求进行修改,本文修改为4;
    5、 修改zookeeper.connect,其值为所有服务器上zookeeper的IP端口串,如下所示:
    zookeeper.connect=192.168.204.127:2181,192.168.204.128:2181,192.168.204.129:2181
    6、 log.dirs=/usr/local/apps/kafka/kafka-logs 配置kafka日志目录

    4.3 启动与停止

    4.3.1 启动

    Kafka的启动顺序为启动Zookeeper—>启动Kafka。
    1、 启动Zookeeper
    在Zookeeper的安装目录下执行启动命令:
    [root@node1 bin]#./zkServer.sh start
    Zookeeper相关配置可见
    https://blog.csdn.net/zhangkai19910815/article/details/84230349
    2、 启动Kafka
    执行如下命令,进行Kafka启动:
    [root@ node1 bin]#./kafka-server-start.sh …/config/server.properties &

    4.3.2 停止

    Kafka的停止与启动顺序刚好相反:停止Kafka—>停止Zookeeper
    1、停止Kafka
    执行如下命令,进行Kafka停止:
    [root@ node1 bin]#./kafka-server-stop.sh
    第一次启动Kafka建议进入Kafka安装目录执行
    bin/kafka-server-start.sh config/server.properties命令,方便查看详情启动日志
    2、停止Zookeeper
    在Zookeeper的安装目录下执行启动命令:
    [root@ node1 bin]#./zkServer.sh stop
    如果仅仅是停止Kafka而不是停止整个集群环境,可以不用停止Zookeeper。

    5 Kafka常用命令

    5.1 创建topic

    在安装目录下执行以下命令进行topic的创建:

    创建一个1个分区,3个副本,topic名为test01。
    ./kafka-topics.sh --create --zookeeper 192.168.204.127:2181 --replication-factor 3 --partitions 1 --topic test01

    5.2 查看topic

    在安装目录下执行以下命令,可查看kafka的topic情况:
    [root@ node1 bin]# ./kafka-topics.sh --describe --zookeeper 192.168.204.127:2181

    5.3 创建发送者

    在安装目录下执行以下命令,可创建kafka生产者进行消息发布:
    [root@node1 bin]#./kafka-console-producer.sh --broker-list 192.168.204.127:9092 --topic test01
    Test msg1
    Test msg2

    5.4 创建消费者

    结合5.3创建消费者使用,在一台机器的安装目录下执行以下命令,可创建kafka消费者进行消息读取:
    [root@ node1 bin]#./kafka-console-consumer.sh --zookeeper 192.168.204.128:2181 --topic test01 --from-beginning
    Test msg1
    Test msg2

    展开全文
  • Kafka集群环境搭建本文只讲述Kafka集群环境的搭建步骤,后续会对kafka的其他相关知识进行整理.1、准备工作Linux服务器3台(本文将在一台linux服务器上建立三个文件夹来模拟三台linux服务器,搭建伪集群)JDK1.8...

    Kafka集群环境搭建

    本文只讲述Kafka集群环境的搭建步骤,后续会对kafka的其他相关知识进行整理.

    1、准备工作

    Linux服务器3台(本文将在一台linux服务器上建立三个文件夹来模拟三台linux服务器,搭建伪集群)
    JDK1.8http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
    Zookeeperhttp://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.10/
    Kafkahttps://www.apache.org/dyn/closer.cgi?path=/kafka/1.0.0/kafka_2.11-1.0.0.tgz

     


        

     

    2、开始搭建

    安装JDK(网上有很多详细安装步骤,本文不在赘述).

    配置&安装Zookeeper

    #我的目录统一放在/opt下面
    #首先创建Zookeeper项目目录
    mkdir zookeeper 
    
    #再进入新建好的zookeeper目录下创建模拟的三个服务器的项目目录(server1,server2,server3)
    mkdir server1
    mkdir server2
    mkdir server3
    
    #将下载好的zookeeper-3.4.10.tar.gz解压到三个server中.
    tar -zxvf zookeeper-3.4.10.tar.gz
    
    #在server1,server2,server3中分别创建下面两个文件夹
    mkdir data  #存放快照日志
    mkdir datalog #存放事物日志

     修改配置文件

    进入到解压后的zookeeper-3.4.10的conf目录.

    #进入conf目录
    /opt/zookeeper/server1/zookeeper-3.4.10/conf
    /opt/zookeeper/server2/zookeeper-3.4.10/conf
    /opt/zookeeper/server2/zookeeper-3.4.10/conf

    conf目录中的zoo_sample.cfg  这个文件是官方给我们的zookeeper的样板文件,我们复制一份命名为zoo.cfg保存在和样板文件同目录下(server1,server2,server3操作步骤一样),zoo.cfg是官方指定的文件命名规则。

    修改/opt/zookeeper/server1/zookeeper-3.4.10/conf/zoo.cfg文件如下:(代码中红色字体是需要我们更改的内容.)

    tickTime=2000
    initLimit=10
    syncLimit=5
    dataDir=/opt/zookeeper/server1/data
    dataLogDir=/opt/zookeeper/server1/datalog
    clientPort=2181
    server.1=127.0.0.1:2888:3888
    server.2=127.0.0.1:2889:3889
    server.3=127.0.0.1:2890:3890

    server2,server3中的/zookeeper-3.4.10/conf/zoo.cfg文件和server1中的更改内容大致相同,需要注意的是dataDir,dataLogDir属性的值要改为server2,server3相应的data和datalog目录clientPort=2181端口号要在server2和server3中分别改为 clientPort=2182 clientPort=2183

    配置文件解释:

    #tickTime:
    这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。
    #initLimit:
    这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过 5个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 5*2000=10 秒
    #syncLimit:
    这个配置项标识 Leader 与Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是5*2000=10秒
    #dataDir:
    快照日志的存储路径
    #dataLogDir:
    事物日志的存储路径,如果不配置这个那么事物日志会默认存储到dataDir制定的目录,这样会严重影响zk的性能,当zk吞吐量较大的时候,产生的事物日志、快照日志太多
    #clientPort:
    这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。修改他的端口改大点

    创建myid文件:

    #在server中的data文件夹下创建myid文件
    
    #server1
    /opt/zookeeper/server1/data/myid
    文件中内容为 1
    
    #server2
    /opt/zookeeper/server2/data/myid
    文件中内容为 2
    
    #server3
    /opt/zookeeper/server3/data/myid
    文件中内容为 3

    启动服务并查看

    1,启动服务

    #进入到Zookeeper的bin目录下
    #server1
    cd /opt/zookeeper/server1/zookeeper-3.4.10/bin
    
    #启动服务
    ./zkServer.sh start
    
    #server2
    cd /opt/zookeeper/server2/zookeeper-3.4.10/bin
    
    #启动服务
    ./zkServer.sh start
    
    #server3
    cd /opt/zookeeper/server3/zookeeper-3.4.10/bin
    
    #启动服务
    ./zkServer.sh start
    
    #启动成功后的信息(server1为例):
    ZooKeeper JMX enabled by default
    Using config: /opt/zookeeper/server1/zookeeper-3.4.10/bin/../conf/zoo.cfg
    Starting zookeeper ... STARTED

    2,检查服务状态

    #检查服务器状态
    ./zkServer.sh status
     
    #下面的状态为启动成功。
    ZooKeeper JMX enabled by default
    Using config: /home/user/zookeeper/server3/zookeeper3.4.10/bin/../conf/zoo.cfg
    Mode: follower      
    #Mode有两种类型:leader和follower,leader代表领导(主节点),follower代表下属(备节点)
    #zk集群一般只有一个leader,多个follower,主一般是相应客户端的读写请求,而从主同步数据,当主挂掉之后就会从follower里投票选举一个leader出来。

     至此,zookeeper集群就成功搭建完成了,接下来我们开始搭建kafka。

    配置&安装Kafka

    #创建目录
    cd /opt/
    mkdir kafka #创建项目目录
    cd kafka
    
    mkdir kafkalogs #创建kafka消息目录,主要存放kafka消息-对应server1服务器
    
    mkdir kafkalogs1 #创建kafka消息目录,主要存放kafka消息-对应server2服务器
    mkdir kafkalogs2 #创建kafka消息目录,主要存放kafka消息-对应server3服务器
    
    #解压kafka_2.11-1.0.0.tgz到kafka目录下
    
    tar -zxvf kafka_2.11-1.0.0.tgz
    #如果是三台真实的linux服务器,只需要将kafka_2.11-1.0.0.tgz解压到三台服务器的/opt/kafka目录下,再新建kafkalogs即可。

    修改kafka配置文件

    #进入到config目录
    cd /opt/kafka/kafka_2.11-1.0.0/config/

    我们可以看到目录下有zookeeper的一些文件,这是kafka内置的zookeeper集群,我们可以使用它来直接启动,但建议使用独立的zookeeper集群。

    -rw-r--r--. 1 root root  906 Oct 27 08:56 connect-console-sink.properties
    -rw-r--r--. 1 root root  909 Oct 27 08:56 connect-console-source.properties
    -rw-r--r--. 1 root root 5807 Oct 27 08:56 connect-distributed.properties
    -rw-r--r--. 1 root root  883 Oct 27 08:56 connect-file-sink.properties
    -rw-r--r--. 1 root root  881 Oct 27 08:56 connect-file-source.properties
    -rw-r--r--. 1 root root 1111 Oct 27 08:56 connect-log4j.properties
    -rw-r--r--. 1 root root 2730 Oct 27 08:56 connect-standalone.properties
    -rw-r--r--. 1 root root 1221 Oct 27 08:56 consumer.properties
    -rw-r--r--. 1 root root 4727 Oct 27 08:56 log4j.properties
    -rw-r--r--. 1 root root 1919 Oct 27 08:56 producer.properties
    -rw-r--r--. 1 root root  173 Jan  7 05:54 server-1.properties
    -rw-r--r--. 1 root root  173 Jan  7 05:56 server-2.properties
    -rw-r--r--. 1 root root  172 Jan  7 05:55 server.properties
    -rw-r--r--. 1 root root 1032 Oct 27 08:56 tools-log4j.properties
    -rw-r--r--. 1 root root 1023 Oct 27 08:56 zookeeper.properties

    我们主要修改 server.properties 这个文件即可. 用以下代码覆盖server.properties里的内容进行保存.(这些是主要参数,以后需要自定义其他参数再做调整)

    broker.id=0
    listeners=PLAINTEXT://127.0.0.1:9092
    port=9092
    host.name=127.0.0.1
    log.dirs=/opt/kafka/kafkalogs
    zookeeper.connect=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183

    因为我是在一台服务器搭建,可以将server.properties复制两份,分别命名为server1.properties,server2.properties,来模拟三台服务器。如果是在三台不同服务器,则不需要复制多份,只需要在三台服务器分别对server.properties进行配置即可.

    #在config目录下复制两份server.properties,并命名 server-1.propertis, server-2.propertis
    
    cp server.properties server-1.propertis
    
    cp server.properties server-2.propertis

    修改server1.properties如下:

    broker.id=1
    listeners=PLAINTEXT://127.0.0.1:9093
    port=9093
    host.name=127.0.0.1
    log.dirs=/opt/kafka/kafkalogs1
    zookeeper.connect=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183

    修改server2.properties如下:

    broker.id=2
    listeners=PLAINTEXT://127.0.0.1:9094
    port=9094
    host.name=127.0.0.1
    log.dirs=/opt/kafka/kafkalogs2
    zookeeper.connect=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183

    启动Kafka集群并测试

    1、启动服务

    #从后台启动Kafka集群(3台都需要启动)
    
    #进入到kafka的根目录 
    cd /opt/kafka/kafka_2.11-1.0.0
    
    #模拟启动三个配置文件,代表三台服务器.
    ./bin/kafka-server-start.sh -daemon config/server.properties
    ./bin/kafka-server-start.sh -daemon config/server1.properties
    ./bin/kafka-server-start.sh -daemon config/server2.properties
    
    # 启动命令中的 -daemon 表示以守护进程的方式启动.

     2、测试kafka

    创建主题:

    #创建一个test主题,分区数为3,备份数为3
    #在kafka根目录执行下面命令
    bin/kafka-topics.sh --create --zookeeper 127.0.0.1:2181 --replication-factor 3 --partitions 3 --topic test

    启动生产者:

    #kafka根目录执行,启动一个生产者
    bin/kafka-console-producer.sh --broker-list 127.0.0.1:9092 --topic test

    不要关闭生产者窗口,再打开一个新窗口,进入到kafka根目录,启动消费者:

    #启动消费者命令
    bin/kafka-console-consumer.sh --zookeeper 127.0.0.1:2181 --topic test --from-beginning

    在生产者发送一条消息,查看消费者是否有接收成功。接收成功后kafka集成环境搭建完成。

    展开全文
  • LinuxKafka环境的搭建

    2018-11-19 16:00:07
    本文对Kafka做个简单介绍(详细的介绍在后续文章中体现),着重介绍下LinuxKafka环境的搭建(单机),后续会补充集群环境下的配置。  Kafka简介  Apache Kafka是分布式发布-订阅消息系统。Kafka是一种快速、可...
  • linux搭建kafka

    2019-05-08 22:02:41
    下载kafka wget http://mirrors.cnnic.cn/apache/kafka/0.10.0.1/kafka_2.10-0.10.0.1.tgz 解压 tar -zxvf kafka_2.10-0.10.0.1.tgz 解压后其实就可以了 感谢并借鉴简书博客:https://...
  • linux搭建kafka集群

    2020-04-20 13:04:39
    linux搭建kafka集群 1、准备: 1)、kafka压缩包 2)、3台centOS7 系统的虚机或者服务器 3)、zookeeper搭建完成 4)、java环境 5)、将压缩包上传至服务器上并解压文件 2、配置kafka配置文件 进入解压...
  • zookeeper安装部署 前提:必须安装java环境,最好1.8版本的jdk,配好环境变量 准备环境 三台Linux服务器:172.52.0.162,172.52.0.163,172.52.0.164 ... 先把安装包拷入Linux系统中,目录为 /work/packag...
  • Linux搭建kafka集群1 准备3台机器1.1host配置2 zookeeper配置3 安装kafka3.1 设置环境变量3.2 修改改$KAFKA_HOME/config 目录下的server.properties文件3.4 启动zookeeper和kafka 1 准备3台机器 hostname ...
  • Linuxkafka集群搭建

    2019-02-19 15:02:30
    主机IP地址 zookeeper kafka 10.19.85.149 myid=1 broker.id=1 10.19.15.103 myid=2 broker.id=2 10.19.189.221 myid=3 broker.id=3 配置文件: # cat zoo.cfg tickTime=2000 initLimit=10 sy...
  • 记录一下Linux搭建单机kafka过程 第一步:Zookeeper集群搭建 1.下载Zookeeper cd /opt/zookeeper/ wgethttps://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz 2.解压软件 tar...
  • 我这里用的是kafka自带的zookeeper,没有单独搞。 配置过程比较简单,下载kafka压缩包,解压,我是建立了一个kafka文件夹。 解压后的目录: 接下来直接去配置环境变量: 现在我找到了另一种配置环境变量的...
  • linux搭建kafka集群

    2018-01-04 15:49:27
    1.先下载zookerper,kafka 包 tar -zxvf 解压 到 /opt/kafka 和 /opt/kafka/zookeeper目录下sudo vim /etc/profile 在末尾附加:export PATH=/opt/kafka/zookeeper/bin:$PATH最后 source /etc/profile2.需先搭建...
  • Kafka简介 Kafka优点 安装教程 1关闭SELINUX 2配置防火墙 3安装JDK 4下载安装Kafka 5配置Kafka 6Zookeeper配置 7脚本编写 8配置脚本开机自行启动 9启动kafka 10创建topic 前言...
  • 一、ES与kafka环境搭建 1、使用Docker搭建Elasticsearch Docker安装ES 2、使用Docker搭建Kafka,因为这里是演示,所以Kafka没有搭建集群。 Docker安装kafka 二、在项目中集成 maven依赖: <dependencies> <...
  • Linux搭建Kafka服务

    2020-06-08 19:03:37
    系统环境:Linux CentOS 7.6 1、安装JDK 1.8 yum -y install java-1.8.0* java -version 命令查看JDK版本,如图安装成功: 2、安装zookeeper服务 #创建安装目录 mkdir -p /opt/zookeeper #移动到目录 ...
  • elk + kafka 简单搭建日志分析系统 文介绍使用ELK(elasticsearch、logstash、kibana) + kafka搭建一个日志系统。 想象一下淘宝,它可以对不同的用户实现推荐不同的产品,它主要是通过分析我们使用淘宝产生的...
  • 1.下载kafka软件包:这里使用2.10版本的kafka 2. 解压缩kafka软件包:这里将软件包放在 softpackage0324文件下  cd softpackage0324 tar -zxvf kafka_2.10-0.8.2.1.tgz 3.进入 kafka_2.10-0.8.2.1 ...
  • linux服务器上搭建Kafka

    2019-01-12 20:39:17
    kafka是分布式流处理平台,也称为:分布式提交日志,最主要的作用是实现分布式持久化保存数据的目的。侧重点在于数据的存储和读取,针对实时性比较高的流式数据处理场景。MQTT borker的侧重点在于客户端和服务器的...
1 2 3 4 5 ... 20
收藏数 9,270
精华内容 3,708
热门标签