一、Kafka的下载与解压

  http://kafka.apache.org/downloads.html下载kafka_2.11-1.1.1.tgz.gz并解压到/home/jun下

[jun@master ~]$ cd kafka_2.-1.1./
[jun@master kafka_2.-1.1.]$ ls -l
total
drwxr-xr-x. jun jun Jul : bin
drwxr-xr-x. jun jun Jul : config
drwxr-xr-x. jun jun Jul : libs
-rw-r--r--. jun jun Jul : LICENSE
-rw-r--r--. jun jun Jul : NOTICE
drwxr-xr-x. jun jun Jul : site-docs

  二、配置Kafka集群

  1.在Master节点上的配置

  配置server.properties

[jun@master kafka_2.-1.1.]$ gedit /home/jun/kafka_2.-1.1./config/server.properties 

  (1)在Server Basics部分增加下面的配置:将master作为broker,其id采用了默认的0

############################# Server Basics #############################

# The id of the broker. This must be set to a unique integer for each broker.
broker.id=
host.name=master
listeners=PLAINTEXT://master:9092

  (2)在Zookeeper部分增加下面的配置,Zookeeper作为协调器,它连接的节点包括了集群的所有计算机。

############################# Zookeeper #############################

# Zookeeper connection string (see zookeeper docs for details).
# This is a comma separated host:port pairs, each corresponding to a zk
# server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002".
# You can also append an optional chroot string to the urls to specify the
# root directory for all kafka znodes.
zookeeper.connect=master:,slave0:,slave1: # Timeout in ms for connecting to zookeeper
zookeeper.connection.timeout.ms=

  将Kafka文件复制Slave节点

[jun@master kafka_2.-1.1.]$ scp -r /home/jun/kafka_2.-1.1./   slave0:~/
[jun@master kafka_2.-1.1.]$ scp -r /home/jun/kafka_2.-1.1./ slave1:~/

  2.在Slave节点上的配置

  同理,将slave0的broker.id设置为1,host.name=slave0,listeners=PLAINTEXT://slave0:9092;将slave1的broker.id设置为2,host.name=slave1,listeners=PLAINTEXT://slave1:9092即可。

  三、Kafka的应用

  1.启动Kafka自带的Zookeeper服务

  首先查看当前系统进程列表

[jun@master ~]$ jps
Jps [jun@slave0 ~]$ jps
Jps [jun@slave1 ~]$ jps
Jps

  启动Kafka自带的Zookeeper服务

[jun@master kafka_2.-1.1.]$ bin/zookeeper-server-start.sh config/zookeeper.properties
[jun@slave0 kafka_2.11-1.1.1]$ bin/zookeeper-server-start.sh config/zookeeper.properties
[jun@slave1 kafka_2.11-1.1.1]$ bin/zookeeper-server-start.sh config/zookeeper.properties

  另开一个终端,查看此时的系统进程,此时QuorumPeerMain就是Zookeeper服务器进程

[jun@master kafka_2.-1.1.]$ jps
Jps
QuorumPeerMain [jun@slave0 kafka_2.-1.1.]$ jps
Jps
QuorumPeerMain [jun@slave1 kafka_2.-1.1.]$ jps
QuorumPeerMain
Jps

  2.启动Kafka服务

[jun@master kafka_2.-1.1.]$ bin/kafka-server-start.sh config/server.properties
[jun@slave0 kafka_2.-1.1.]$ bin/kafka-server-start.sh config/server.properties
[jun@slave1 kafka_2.-1.1.]$ bin/kafka-server-start.sh config/server.properties

  另开一个终端,查看此时的系统进程,此时的Kafka就是Kafka的服务器进程

[jun@master kafka_2.-1.1.]$ jps
Jps
Kafka
QuorumPeerMain [jun@slave0 kafka_2.-1.1.]$ jps
Kafka
QuorumPeerMain
Jps [jun@slave1 kafka_2.-1.1.]$ jps
QuorumPeerMain
Kafka
Jps

  3.创建主题

·  主题(Topic)是消息中间件的基本概念,相当于文件系统的目录,其实就是用于保存消息内容的计算实体,通过主题名加以标识,就如同目录通过目录名标识一样。

  (1)在master节点上创建一个名称为“test”的主题

[jun@master kafka_2.-1.1.]$ bin/kafka-topics.sh --create -zookeeper master: --replication-factor  --partitions  --topic test
Created topic "test".

  (2)查看已经创建的消息主题,同样,在其他Slave结点上执行该命令也可以查看到创建的主题

[jun@master kafka_2.-1.1.]$ bin/kafka-topics.sh --list --zookeeper master:
test

  4.发送消息

  消息中间件是一个用于接收消息并转发消息的服务,为了检验Kafka是否能够正常工作,需要创建一个消息生产者(producer)、利用它产生消息

[jun@master kafka_2.-1.1.]$ bin/kafka-console-producer.sh --broker-list master: --topic test
>say hi
[-- ::,] WARN [Producer clientId=console-producer] Error while fetching metadata with correlation id : {myfinaltest=LEADER_NOT_AVAILABLE} (org.apache.kafka.clients.NetworkClient)
>hi
>you
>cnm
>

  5.接收消息

  在一个新终端上执行如下的命令,可以看到接收到了producer发送的消息

[jun@slave0 kafka_2.-1.1.]$ bin/kafka-console-consumer.sh --bootstrap-server slave0: --topic test--from-beginning
say hi
hi
you
cnm [jun@slave1 kafka_2.-1.1.]$ bin/kafka-console-consumer.sh --bootstrap-server slave0: --topic test--from-beginning
say hi
hi
you
cnm

Kafka集群的安装和部署的更多相关文章

  1. 一脸懵逼学习KafKa集群的安装搭建--(一种高吞吐量的分布式发布订阅消息系统)

    kafka的前言知识: :Kafka是什么? 在流式计算中,Kafka一般用来缓存数据,Storm通过消费Kafka的数据进行计算.kafka是一个生产-消费模型. Producer:生产者,只负责数 ...

  2. kafka集群监控之kafka-manager部署(kafka-manager的进程为:ProdServerStart)

    kafka集群监控之kafka-manager部署(ProdServerStart) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 雅虎官网GitHub项目:https://git ...

  3. 即将上线的Kafka 集群(用CM部署的)无法使用“--bootstrap-server”进行消费,怎么破?

    即将上线的Kafka 集群(用CM部署的)无法使用“--bootstrap-server”进行消费,怎么破? 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   一.报错:org.a ...

  4. kafka集群管理工具kafka-manager部署安装

    一.kafka-manager 简介 为了简化开发者和服务工程师维护Kafka集群的工作,yahoo构建了一个叫做Kafka管理器的基于Web工具,叫做 Kafka Manager.这个管理工具可以很 ...

  5. zookeeper+kafka集群的安装部署

    准备工作 上传 zookeeper-3.4.6.tar.gz.scala-2.11.4.tgz.kafka_2.9.2-0.8.1.1.tgz.slf4j-1.7.6.zip 至/usr/local目 ...

  6. Kafka集群的安装和使用

    Kafka是一种高吞吐量的分布式发布订阅的消息队列系统,原本开发自LinkedIn,用作LinkedIn的活动流(ActivityStream)和运营数据处理管道(Pipeline)的基础.现在它已被 ...

  7. Kafka集群模式安装(二)

    我们来安装Kafka的集群模式,三台机器: 192.168.131.128 192.168.131.130 192.168.131.131 Kafka集群需要依赖zookeeper,所以需要先安装好z ...

  8. zookeeper+kafka集群的安装

    时效性要求很高的数据,库存,采取的是数据库+缓存双写的技术方案,也解决了双写的一致性的问题 缓存数据生产服务,监听一个消息队列,然后数据源服务(商品信息管理服务)发生了数据变更之后,就将数据变更的消息 ...

  9. Ubuntu 18 Kubernetes集群的安装和部署 以及Helm的安装

    首先说一下我的环境, 我是在windows 10 上面建了一个ubuntu18的虚拟机,同时由于某些原因 不受网络限制, 所以安装比较顺利. Install 1.安装并启用 Docker  sudo ...

随机推荐

  1. Spring 梳理-使用<context:property-placeholder>标签导入多个properties文件

    使用<context:property-placeholder>标签导入多个properties文件 2017年12月20日 10:10:36 sf_climber 阅读数:5830更多 ...

  2. 一台机器上搭建多个redis实例的配置文件修改部分

    1.单个redis服务搭建请参考:redis服务搭建 2.一台Redis服务器,分成多个节点,每个节点分配一个端口(6380,6381…),默认端口是6379. 每个节点对应一个Redis配置文件,如 ...

  3. WebGL简易教程(六):第一个三维示例(使用模型视图投影变换)

    目录 1. 概述 2. 示例:绘制多个三角形 2.1. Triangle_MVPMatrix.html 2.2. Triangle_MVPMatrix.js 2.2.1. 数据加入Z值 2.2.2. ...

  4. HTML5 原生拖放

    前言: HTML5提供专门的拖拽与拖放的API,可以方便的指定某个元素可拖动,可以创建自定义的可拖动元素和放置目标 相关知识点: 1.拖放事件 拖放元素时,将依次触发下列事件 dragstart  按 ...

  5. [UWP] 自定义一个ItemsPanel

    在做游民星空的搜索页面的时候,需要展示搜索热点词,返回的是一个string数组的形式,然后以一种错落的方式显示,每一个Item的大小都和热点词长度一致,然后一行放不下之后就换行,描述的不太直观,直接看 ...

  6. 死磕 java线程系列之自己动手写一个线程池(续)

    (手机横屏看源码更方便) 问题 (1)自己动手写的线程池如何支持带返回值的任务呢? (2)如果任务执行的过程中抛出异常了该怎么处理呢? 简介 上一章我们自己动手写了一个线程池,但是它是不支持带返回值的 ...

  7. KafkaStream低级别API

    开发者可以通过Processor接口来实现自己的自定义处理逻辑.接口提供了Process和Punctuate方法. 其中:Process方法用于处理接受到的消息 Punctuate方法指定时间间隔周期 ...

  8. 02-22 决策树C4.5算法

    目录 决策树C4.5算法 一.决策树C4.5算法学习目标 二.决策树C4.5算法详解 2.1 连续特征值离散化 2.2 信息增益比 2.3 剪枝 2.4 特征值加权 三.决策树C4.5算法流程 3.1 ...

  9. python编程基础之四

    注释: 单行注释 #    例: # age = 10 多行注释  三引号“”“  ”“”,‘‘‘ ’’’ 例:“““  age = 10   ””” 只要注释较难的代码, 注释比例大概占总数的30% ...

  10. css中em单位详解,说明

    em详解      em可以理解成“倍”. em会以父级元素中所设置的字体像素值为基准值进行成倍放大: 字体大小=(父级元素中的字体像素 * em的值) 例: 网页部分代码如下: 1.我现在没有在父级 ...