zoukankan      html  css  js  c++  java
  • 大数据学习之Kafka消息队列31

    一:Kafka概述

    离线部分:

    Hadoop->离线计算(hdfs / mapreduce) yarn

    zookeeper->分布式协调(动物管理员)

    hive->数据仓库(离线计算 / sql)easy coding

    flume->数据采集

    sqoop->数据迁移mysql->hdfs/hive hdfs/hive->mysql

    Azkaban->任务调度工具

    hbase->数据库(nosql)列式存储 读写速度

    实时:

    kafka

    storm

    官网:

    http://kafka.apache.org/

    ApacheKafka®是一个分布式流媒体平台

    流媒体平台有三个关键功能:

    发布和订阅记录流,类似于消息队列或企业消息传递系统。

    以容错的持久方式存储记录流。

    记录发生时处理流。

    Kafka通常用于两大类应用:

    构建可在系统或应用程序之间可靠获取数据的实时流数据管道

    构建转换或响应数据流的实时流应用程序

    二:kafka是什么?

    在流计算中kafka主要功能是用来缓存数据storm可以通过消费kafka中的数据进行流计算。

    是一套开源的消息系统,由scala写成。支持javaAPI的。

    kafka最初由LinkedIn公司开发,2011年开源。

    2012年从Apache毕业。

    是一个分布式消息队列,kafka读消息保存采用Topic进行归类。

    三:角色

    发送消息:Producer(生产者)

    接收消息:Consumer(消费者)

    为什么要用消息队列

    1)解耦

    为了避免出现问题

    2)拓展性

    可增加处理过程

    3)灵活

    面对访问量剧增,不会因为超负荷请求而完全瘫痪。

    4)可恢复

    一部分组件失效,不会影响整个系统。可以进行恢复。

    5)缓冲

    控制数据流经过系统的速度。

    6)顺序保证

    对消息进行有序处理。

    7)异步通信

    akka,消息队列提供了异步处理的机制。允许用户把消息放到队列 , 不立刻处理。

    介绍图:

    四:kafka架构设计

    kafka依赖zookeeper,用zk保存元数据信息。

    搭建kafka集群要先搭建zookeeper集群。

    zk在kafka中的作用?

    保存kafka集群节点状态信息和消费者当前消费信息。

    架构图:

    五:kafka集群安装部署

    1)官网下载安装包

    2)上传安装包

    3)解压安装包

    4)重命名

    5)修改配置文件    (config/server.properties)

    broker.id=0 #每台机器的id不同即可

    delete.topic.enable=true #是否允许删除主题

    log.dirs=/root/training/kafka/logs #运行日志保存位置(需提前在kafka目录下创建logs目录)

    zookeeper.connect=bigdata11:2181,bigdata12:2181,bigdata13:2181

    6)启动集群

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

    7)关闭

    bin/kafka-server-stop.sh

    六:Kafka命令行操作

    1)查看当前集群中已存在的主题topic

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

    2)创建topic

    bin/kafka-topics.sh --zookeeper bigdata11:2181 --create --replication-facto

    r 3 --partitions 1 --topic guanxuan

    --zookeeper 连接zk集群

    --create 创建

    --replication-factor 副本

    --partitions 分区

    --topic 主题名

    3)删除主题

    bin/kafka-topics.sh --zookeeper bigdata11:2181 --delete --topic morning

    4)发送消息

    生产者启动:

    bin/kafka-console-producer.sh --broker-list bigdata11:9092 --topic morning

    消费者启动:

    bin/kafka-console-consumer.sh --bootstrap-server bigdata11:9092 --topi

    c morning--from-beginning

    5)查看主题详细信息

    bin/kafka-topics.sh --zookeeper bigdata11:2181 --describe --topic morning

  • 相关阅读:
    从零开始webpack4.x(十)区分不同环境
    从零开始webpack4.x(九)watch、resolve、小插件、跨域问题、环境变量
    从零开始webpack4.x(八)配置source-map
    从零开始webpack4.x(七)图片处理及打包文件分类
    浏览器:输入url,到页面加载的过程
    从零开始webpack4.x(六)全局变量引入
    JS 闭包
    PHP 回调函数call_user_func和 call_user_func_array()的理解
    面试总结之谈谈你对面向对象的理解
    maven私有库配置
  • 原文地址:https://www.cnblogs.com/hidamowang/p/10971485.html
Copyright © 2011-2022 走看看