一、Kafka概述

1.Kafka是什么

在流式计算中,Kafka一般用来缓存数据,Storm通过消费Kafka的数据进行计算。

1)Apache Kafka是一个开源消息系统,由Scala写成。是由Apache软件基金会开发的一个开源消息系统项目。

2)Kafka最初是由LinkedIn公司开发,并于      2011年初开源。2012年10月从Apache Incubator毕业。该项目的目标是为处理实时数据提供一个统一、高通量、低等待的平台。

3)Kafka是一个分布式消息队列。Kafka对消息保存时根据Topic进行归类,发送消息者称为Producer,消息接受者称为Consumer,此外kafka集群有多个kafka实例组成,每个实例(server)成为broker。

4)无论是kafka集群,还是producer和consumer都依赖于zookeeper集群保存一些meta信息,来保证系统可用性。

2. 消息队列内部实现原理

(1)点对点模式(一对一,消费者主动拉取数据,消息收到后消息清除点对点模型通常是一个基于拉取或者轮询的消息传送模型,这种模型从队列中请求信息,而不是将消息推送到客户端。这个模型的特点是发送到队列的消息被一个且只有一个接收者接收处理,即使有多个消息监听者也是如此。

(2)发布/订阅模式(一对多,数据生产后,推送给所有订阅者)发布订阅模型则是一个基于推送的消息传送模型。发布订阅模型可以有多种不同的订阅者,临时订阅者只在主动监听主题时才接收消息,而持久订阅者则监听主题的所有消息,即使当前订阅者不可用,处于离线状态。

3. 为什么需要消息队列

1)解耦:

  允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。

2)冗余:

消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险。许多消息队列所采用的"插入-获取-删除"范式中,在把一个消息从队列中删除之前,需要你的处理系统明确的指出该消息已经被处理完毕,从而确保你的数据被安全的保存直到你使用完毕。

3)扩展性:

因为消息队列解耦了你的处理过程,所以增大消息入队和处理的频率是很容易的,只要另外增加处理过程即可。

4)灵活性 & 峰值处理能力:

在访问量剧增的情况下,应用仍然需要继续发挥作用,但是这样的突发流量并不常见。如果为以能处理这类峰值访问为标准来投入资源随时待命无疑是巨大的浪费。使用消息队列能够使关键组件顶住突发的访问压力,而不会因为突发的超负荷的请求而完全崩溃。

5)可恢复性:

系统的一部分组件失效时,不会影响到整个系统。消息队列降低了进程间的耦合度,所以即使一个处理消息的进程挂掉,加入队列中的消息仍然可以在系统恢复后被处理。

6)顺序保证:

在大多使用场景下,数据处理的顺序都很重要。大部分消息队列本来就是排序的,并且能保证数据会按照特定的顺序来处理。(Kafka保证一个Partition内的消息的有序性)

7)缓冲:

有助于控制和优化数据流经过系统的速度,解决生产消息和消费消息的处理速度不一致的情况。

8)异步通信:

很多时候,用户不想也不需要立即处理消息。消息队列提供了异步处理机制,允许用户把一个消息放入队列,但并不立即处理它。想向队列中放入多少消息就放多少,然后在需要的时候再去处理它们。

二、Kafka部署

1.成功安装部署zookeeper

2.解压

$ tar -zxf ~/softwares/installations/kafka_2.11-0.11.0.2.tgz -C ~/modules/

  

3. 修改配置文件

vim ~/modules/kafka_2.11-0.11.0.2/config/server.properties 修改以下内容broker.id=0delete.topic.enable=true
log.dirs=/home/admin/modules/kafka_2.11-0.11.0.2/kafka-logs
zookeeper.connect=linux01:2181,linux02:2181,linux03:2181zookeeper.connection.timeout.ms=60000

  

4.分发

$ scp -r kafka_2.11-0.11.0.2/ linux02:/home/admin/modules/
$ scp -r kafka_2.11-0.11.0.2/ linux03:/home/admin/modules/

  

5.修改另外两台机器的broker.id,3台机器的broker.id分别为0,1,2

6.启动kafka集群(3台机器分别执行,必须先把zookeeper启动起来!!)

$ bin/kafka-server-start.sh config/server.properties

  

kafka的broker进程,是一个前台占用进程。如果想后台运行,则在末尾加上"&"符号

$ bin/kafka-server-start.sh config/server.properties &

  

转载于:https://www.cnblogs.com/shifu204/p/9830324.html

大数据(11) - kafka的安装与使用相关推荐

  1. 大数据系列之:安装pulsar详细步骤

    大数据系列之:安装pulsar详细步骤 一.Pulsar版本和jdk对应关系 二.安装JDK 三.设置和激活jdk环境变量 四.下载和解压Pulsar 五.查看Pulsar目录 六.启动Pulsar ...

  2. 时空大数据实践之GeoWave安装部署实践

    2019独角兽企业重金招聘Python工程师标准>>> 时空大数据实践之GeoWave安装部署实践 GeoWave是由国家地理空间情报局(NGA)与RadiantBlue和Booz ...

  3. 云计算大数据之 Kafka集群搭建

    云计算大数据之 Kafka集群搭建 版权声明: 本文为博主学习整理原创文章,如有不正之处请多多指教. 未经博主允许不得转载.https://blog.csdn.net/qq_42595261/arti ...

  4. kafka分区与分组原理_大数据技术-Kafka入门

    在大数据学习当中,主要的学习重点就是大数据技术框架,针对于大数据处理的不同环节,需要不同的技术框架来解决问题.以Kafka来说,主要就是针对于实时消息处理,在大数据平台当中的应用也很广泛.大数据学习一 ...

  5. 大数据技术之 HBase安装配置

    大数据技术之 HBase安装 1.hbase依赖于hadoop以及zookeeper,所以 1.1 首先myhadoop.sh start 1.2 然后zk.sh start 接下来安装hbase 1 ...

  6. Hadoop大数据生态组件环境安装

    首先安装Centos系统修改网络配置: 我的三台机器: master 192.168.179.10 slave1 192.168.179.11 slava2 192.168.179.12 各组件端口号 ...

  7. 大数据搜索引擎之ElasticSearch安装篇(资源)

    2019独角兽企业重金招聘Python工程师标准>>> 实验平台:操作系统:CentOS 7 软件链接(官网):https://www.elastic.co/products Ela ...

  8. 大数据神器Kafka入门

    Kafka安装依赖jdk,运行依赖zookeeper MAC下Kafka安装和启动:https://www.jianshu.com/p/dd2578d47ff6 kafka主要用于大数据量,一般在公司 ...

  9. 大数据(9) - Flume的安装与使用

    Flume简介 --(实时抽取数据的工具) 1) Flume提供一个分布式的,可靠的,对大数据量的日志进行高效收集.聚集.移动的服务,Flume只能在Unix环境下运行. 2) Flume基于流式架构 ...

最新文章

  1. 手写 Spring 事务、IOC、DI 和 MVC
  2. 【Linux 内核】Linux 内核源码目录说明 ② ( drivers 目录 | fs 目录 | include 目录 | init 目录 | ipc 目录 | kernel 目录 )
  3. 一些常规形几何形状的绘制和效果填充(一)
  4. C++实现深度优先搜索DFS(附完整源码)
  5. (八)深入浅出TCPIP之TCP长连接与短连接详解
  6. mysql5.7.11 linux_CentOS 7 中以命令行方式安装 MySQL 5.7.11 for Linux Generic 二进制版本教程详解...
  7. WIN32 串口发送数据
  8. repo一个新工程使用步骤
  9. linux模拟器如何使用教程,Linux下实现思科实验-模拟器使用[图文]
  10. LoadRunner教程(16)-LoadRunner SLA分析
  11. 15个常用excel函数公式_(干货)EXCEL常用函数公式大全及举例
  12. 程序员实用小工具(一)
  13. HR问:“对我们公司你有什么问题要问的吗”,怎样回答才算完美!
  14. Please refer to dump files (if any exist) [date].dump, [date]-jvmRun[N].dump and [date].dumpstream.
  15. 10年时间,打工妹把一个团队从“一盘散沙”到精英战队,成功实现空手“造”大房···
  16. Unity线性空间UI制作方面总结
  17. 4.1图像分割之区域生长法
  18. linux安装系统d,matebookD安装linux系统总结
  19. 支持向量机专题——线性可分支持向量机
  20. 如何在 Windows 右键菜单中新建自己想要的文件格式

热门文章

  1. 深入Java -JVM 垃圾回收
  2. MySQL- 用Navicat通过隧道连接到远程数据库
  3. viewport,html,body在pc和移动的差异
  4. Method Tracking
  5. OpenDNS,独特的免费DNS
  6. servlce与filter的url-pattern介绍
  7. Python + OpenCV 太好玩了,可惜你可能还不会
  8. 域服务器可以修改ip,Windows Server 2016 域控制器修改IP
  9. Redis操作ZSet类型
  10. MySQL高级in和not in