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. ...
随机推荐
- Eclipse——关联源代码
Eclipse——关联源代码 摘要:本文主要说明了如何在Eclipse里关联源代码. 下载源码包 首先去想要关联的jar包的官网下载对应jar包的源代码,拿Tomcat的类库举例,先去官网下载源码包: ...
- 在kubernetes 集群内访问k8s API服务
所有的 kubernetes 集群中账户分为两类,Kubernetes 管理的 serviceaccount(服务账户) 和 useraccount(用户账户).基于角色的访问控制(“RBAC”)使用 ...
- SpringBoot FatJar启动原理
目录 SpringBoot FatJar启动原理 背景 储备知识 URLStreamHandler Archive 打包 SpringBoot启动 扩展 SpringBoot FatJar启动原理 背 ...
- 关于css布局的记录(一) --table和flex布局
1.table方式布局 效果图: 直接用table等标签布局,table布局自动垂直居中 亦可用 display:table == <table>.display:table-cell = ...
- HTTP 400 与 SpringMVC的 HttpPutFormContentFilter、FormContentFilter
前端发送了一个http PUT请求,如下, json_xml: {,},,}},,},,}},},}},,},{,}],,},,}},,,,},,}},},}},,},{,}],,},,}},,},{ ...
- java 基础排序(冒泡、插入、选择、快速)算法回顾
java 基础排序(冒泡.插入.选择.快速)算法回顾 冒泡排序 private static void bubbleSort(int[] array) { int temp; for (int i = ...
- 获取redis中所有的key,清空整个 Redis 服务器的数据
获取 redis 中所有的 key 可用使用 *. redis 127.0.0.1:6379> KEYS * Redis Flushall 命令用于清空整个 Redis 服务器的数据(删除所有数 ...
- MongoDB 中聚合统计计算--$SUM表达式
我们一般通过表达式$sum来计算总和.因为MongoDB的文档有数组字段,所以可以简单的将计算总和分成两种:1,统计符合条件的所有文档的某个字段的总和:2,统计每个文档的数组字段里面的各个数据值的和. ...
- [PHP] 编译安装swoole
不知道为啥,家里的网访问不了pecl.php.net,这也就没有办法直接使用pecl install swoole安装swoole,也可以直接进行编译安装 在git仓库下载源码 https://git ...
- 【转载】Vue.js 安装及其环境搭建
注:最近在学习Vue,以下是环境搭配方法: ****************************************************************************** ...