Kafka学习(一)
官网
kafka.apache.org
集群部署
消息中间键 --> 分布式流式平台 Kafka Streaming
Flume: 1个进程包含三个角色
source channle sink
Kakfa: 每个进程对应一个角色
producer broker consumer
Flume --> Kafka --> Spark Streaming/Fink (场景)
Kafka部署的进程叫 broker
使用方向:
1. 消息中间件
2. 流式计算
3. 存储 分布式 副本
Kafka® is used for building real-time data pipelines and streaming apps. It is horizontally scalable, fault-tolerant, wicked fast, and runs in production in thousands of companies.
版本选择:
0.10.0.1
1. CDH-5.12.0(实际使用) 本身学习(CDH-5.7.0) 集群用cdh版本
选择相近的chd版的kafka
2. Spark Streming官网
Kafka+Streaming spark-streaming-kafka-0-10
CDK: clouder distributed kakfa

base_version+cloudera_version+patch_level

http://archive.cloudera.com/kafka/parcels/2.2.0/KAFKA-2.2.0-1.2.2.0.p0.68-el7.parcel
CDH:(实际使用)
kafka_2.11-0.10.2-kafka-2.2.0.jar
kafka_2.11: scala版本 代码开发选择(2.11.8)
0.10.2: Apache kafka版本 小版本选择
2.2.0: CDK 版本
生产环境版本,实际开发版本,要对应,因为有些api不一样
KAFKA-2.2.0-1.2.2.0.p0.68-el7.parcel
KAFKA-2.2.0-1.2.2.0.p0.68-el7.parcel.sha1
Apache版本:(学习用)
CDH在部署过程中:
HDFS YARN ZK Hive HBase Spark(1.6.x)
额外单独部署,自定义parcel(包裹): kafka spark2
kafka 使用scala语言编写的
1. 主题: topic
生产业务:
oms订单系统: mysql-->flume-->kafka(omstopic)-->SparkStreaming
wms仓库系统: mysql-->flume-->kafka(wmstopic)-->SparkStreaming
mkdir omstopic文件夹 (不同业务系统的数据,放在不同文件夹)
mkdir wmstopic文件夹
alltopic文件夹(最好分开业务系统)
一般根据上游或下游业务系统来划分
kafka创建主题: 一般根据生产业务数据处理来划分 上游+数据处理来划分
最终落在磁盘上面就是创建文件夹(Linux文件夹)
2. 分区
omstopic 有3个分区 下标是
100条数据
40 p0 omstopic_0
20 p1 omstopic_1
40 p2 omstopic_2
3. 副本
omstopic_0 omstopic_0 omstopic_0
omstopic_1 omstopic_1 omstopic_1
omstopic_2 omstopic_2 omstopic_2
4. offset 从0开始 (这个文件在磁盘上的位置)
log文件 位置下标
mysql: (主键)
PK VALUE
1 aaa
2 bbb
3 ccc
4 ddd
5.全局有序有序?
60%的公司,都是log日志, 无序的状态
如果有序,处理方式和mysql处理方式一致
40%的公司,都是业务数据,mysql,有序数据.
淘宝购物车, insert(添加一双鞋) , update1(鞋子), update2(口红),update3,update4, delete
Kafka数据的文件是Linux磁盘文件 是有序状态,也就是分区内有序
追加模式,效率最高; 如何insert ,还要检索
重点:
1. 一个分区
2. SparkStreaming程序做排序 分组排序,然后保证全局有序, 代码多,性能差
3. producer api(key-value)
Kafka学习(一)的更多相关文章
- kafka学习笔记:知识点整理
一.为什么需要消息系统 1.解耦: 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束. 2.冗余: 消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险. ...
- Kafka学习-简介
Kafka是由LinkedIn开发的一个分布式的消息系统,使用Scala编写,它以可水平扩展和高吞吐率而被广泛使用.目前越来越多的开源分布式处理系统如Cloudera.Apache Storm.S ...
- Kafka学习-入门
在上一篇kafka简介的基础之上,本篇主要介绍如何快速的运行kafka. 在进行如下配置前,首先要启动Zookeeper. 配置单机kafka 1.进入kafka解压目录 2.启动kafka bin\ ...
- Kafka学习之路
一直在思考写一些什么东西作为2017年开篇博客.突然看到一篇<Kafka学习之路>的博文,觉得十分应景,于是决定搬来这“他山之石”.虽然对于Kafka博客我一向坚持原创,不过这篇来自Con ...
- kafka学习2:kafka集群安装与配置
在前一篇:kafka学习1:kafka安装 中,我们安装了单机版的Kafka,而在实际应用中,不可能是单机版的应用,必定是以集群的方式出现.本篇介绍Kafka集群的安装过程: 一.准备工作 1.开通Z ...
- [Big Data - Kafka] kafka学习笔记:知识点整理
一.为什么需要消息系统 1.解耦: 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束. 2.冗余: 消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险. ...
- kafka 学习资料
kafka 学习资料 kafka 学习资料 网址 kafka 中文教程 http://orchome.com/kafka/index
- 【译】Kafka学习之路
一直在思考写一些什么东西作为2017年开篇博客.突然看到一篇<Kafka学习之路>的博文,觉得十分应景,于是决定搬来这“他山之石”.虽然对于Kafka博客我一向坚持原创,不过这篇来自Con ...
- Kafka学习之(六)搭建kafka集群
想要搭建kafka集群,必须具备zookeeper集群,关于zookeeper集群的搭建,在Kafka学习之(五)搭建kafka集群之Zookeeper集群搭建博客有说明.需要具备两台以上装有zook ...
- Kafka学习总结
Kafka学习总结 参考资料: 1.http://kafka.apachecn.org/, kafka官方文档 2.https://www.cnblogs.com/likehua/p/3999538. ...
随机推荐
- Java多线程面试问答
今天,我们将讨论Java 多线程面试问答. 线程是Java面试问题中的热门话题之一.在这里,我从面试的角度列出了大多数重要的Java多线程面试问题,但是您应该对Java线程有足够的知识来处理后续问题. ...
- 使用 SQL 服务器时,"评估期已过期"错误消息
当打开sql server2008企业管理器的时候,出现报错“评估期已过.有关如何升级的测试版软件的信息.....” 修改注册表:HKEY_LOCAL_MACHINE/SOFTWARE/Microso ...
- 参加杭州 2019 AI Bootcamp有感与总结(1)
上周末参加了微软人工智能的活动,感慨多多. 感谢活动主讲和主办方. 通过参加活动,对微软认知服务和ML.NET的现状与发展有了更多的认识.文章不是活动内容的堆叠,总结少点,更多的大概是感慨. 微软认知 ...
- Mysql中处理JSON字段
处理json字段,可以用json_extract函数: select * from (select json_extract(ext_value,'$.high')+0 highx,batch_id ...
- 第二个视频作品《[SpringCloudAlibaba]微服务之注册中心nacos》上线了
1.场景描述 第二个视频作品出炉了,<[SpringCloudAlibaba]微服务之注册中心nacos>上线了,有需要的朋友可以直接点击链接观看.(如需购买,请通过本文链接购买) 2. ...
- Unity 依赖注入容器的AOP扩展
使用EntLib\PIAB Unity 实现动态代理 using System; using Unity; using Unity.Interception; using Unity.Intercep ...
- IPFS学习-内容标识符(CIDs)
内容标识符(CIDs) 内容标识符也称为CID,是用于指向IPFS中材料的标签. 它不会指示内容的存储位置,但会根据内容本身形成一种地址. CID简短,无论其基础内容的大小如何. CID基于内容的加密 ...
- Retrofit-草稿
1.GSONFormat 2.动态代理 https://www.cnblogs.com/maohuidong/p/7992894.html retrofit的核心就是动态代理
- Java开发中解决Js的跨域问题
主流方法有JSONP和CORS两种,这里记一下后者的方式,理论基础就是在请求的时候在http请求头中添加如下属性: //指定允许其他域名访问 Access-Control-Allow-Origin:h ...
- http请求报400错误的原因分析
在ajax请求后台数据时有时会报 HTTP 400 错误 - 请求无效 (Bad request);出现这个请求无效报错说明请求没有进入到后台服务里: 原因:1)前端提交数据的字段名称或者是字段类型 ...