2022年4月10日

|NO.Z.00066|——————————|BigDataEnd|——————————————————————————————————————

摘要: NO: Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of 阅读全文

posted @ 2022-04-10 15:02 yanqi_vip 阅读(16) 评论(0) 推荐(0)

|NO.Z.00064|——————————|BigDataEnd|——|Hadoop&PB级数仓.V06|——|PB数仓.v06|调度系统Airflow|入门案例HelloWorld|

摘要: 一、Airflow核心概念 ### Airflow核心概念 ~~~ DAGs:有向无环图(Directed Acyclic Graph),将所有需要运行的tasks按照依赖关系组织起来, ~~~ 描述的是所有tasks执行的顺序; ### Operators:Airflow内置了很多operator 阅读全文

posted @ 2022-04-10 15:01 yanqi_vip 阅读(65) 评论(0) 推荐(0)

|NO.Z.00065|——————————|BigDataEnd|——|Hadoop&PB级数仓.V07|——|PB数仓.v07|调度系统Airflow|核心交易|调度任务集成|

摘要: 一、核心交易调度脚本的角度顺序 ### 核心交易分析 ~~~ depends_on_past ,设置为True时,上一次调度成功了,才可以触发。 # 加载ODS数据(DataX迁移数据) /data/yanqidw/script/trade/ods_load_trade.sh # 加载DIM层数据 阅读全文

posted @ 2022-04-10 15:01 yanqi_vip 阅读(23) 评论(0) 推荐(0)

|NO.Z.00062|——————————|^^ 配置 ^^|——|Hadoop&PB级数仓.V04|——|PB数仓.v04|调度系统Airflow|禁用默认|DAG任务|

摘要: 一、Airflow.UI界面概述 ### Airflow.UI界面概述 ~~~ Trigger Dag:人为执行触发 ~~~ Tree View:当dag执行的时候,可以点入,查看每个task的执行状态(基于树状视图)。 ~~~ 状态:success、running、failed、skipped、r 阅读全文

posted @ 2022-04-10 15:00 yanqi_vip 阅读(74) 评论(0) 推荐(0)

|NO.Z.00063|——————————|BigDataEnd|——|Hadoop&PB级数仓.V05|——|PB数仓.v05|调度系统Airflow|crontab|简介案例|

摘要: 一、crontab ### Crontab简介 ~~~ Linux 系统则是由 cron (crond) 这个系统服务来控制的。 ~~~ Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的。 ~~~ Linux 系统也提供了Linux用户控制计划任务的命令:crontab 阅读全文

posted @ 2022-04-10 15:00 yanqi_vip 阅读(55) 评论(0) 推荐(0)

|NO.Z.00060|——————————|^^ 部署 ^^|——|Hadoop&PB级数仓.V02|——|PB数仓.v02|调度系统Airflow|安装部署|

摘要: 一、Airflow安装部署 ### 安装依赖 ~~~ CentOS 7.X ~~~ Python 3.5或以上版本(推荐) ~~~ MySQL 5.7.x ~~~ Apache-Airflow 1.10.11 ~~~ 虚拟机可上网,需在线安装包 ### 后面要安装的三个软件Airflow、Atlas 阅读全文

posted @ 2022-04-10 14:59 yanqi_vip 阅读(71) 评论(0) 推荐(0)

|NO.Z.00061|——————————|^^ 配置 ^^|——|Hadoop&PB级数仓.V03|——|PB数仓.v03|调度系统Airflow|修改默认时区|

摘要: 一、修改时区 ### 修改时区 ~~~ Airflow默认使用UTC时间,在中国时区需要用+8小时。 ~~~ 将UTC修改为中国时区,需要修改Airflow源码。 ### 在修改 $AIRFLOW_HOME/airflow.cfg 文件 (env) [root@hadoop02 ~]# vim /o 阅读全文

posted @ 2022-04-10 14:59 yanqi_vip 阅读(107) 评论(0) 推荐(0)

|NO.Z.00059|——————————|BigDataEnd|——|Hadoop&PB级数仓.V01|——|PB数仓.v01|调度系统Airflow|简介|

摘要: 一、任务调度系统Airflow ### Airflow简介 ~~~ Airflow 是 Airbnb 开源的一个用 Python 编写的调度工具。 ~~~ 于 2014 年启动,2015年春季开源,2016 年加入 Apache 软件基金会的孵化计划。 ~~~ Airflow将一个工作流制定为一组任 阅读全文

posted @ 2022-04-10 14:58 yanqi_vip 阅读(47) 评论(0) 推荐(0)

|NO.Z.00057|——————————|BigDataEnd|——|Hadoop&PB级数仓.V15|——|PB数仓.v15|核心交易分析|脚本执行顺序|

摘要: 一、数据导出 ### 数据导出 ~~~ ads.ads_trade_order_analysis 分区表,使用DataX导出到MySQL 二、小结 ### 脚本调用次序: ~~~ # 加载ODS数据(含DataX迁移数据) sh /data/yanqidw/script/trade/ods_load 阅读全文

posted @ 2022-04-10 14:57 yanqi_vip 阅读(37) 评论(0) 推荐(0)

|NO.Z.00058|——————————|BigDataEnd|——————————————————————————————————————

摘要: NO: Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of 阅读全文

posted @ 2022-04-10 14:57 yanqi_vip 阅读(11) 评论(0) 推荐(0)

|NO.Z.00056|——————————|^^ 实验 ^^|——|Hadoop&PB级数仓.V14|——|PB数仓.v14|核心交易分析|ADS层建表|加载数据|

摘要: 一、ADS层开发 ### 需求:计算当天 ~~~ 全国所有订单信息 ~~~ 全国、一级商品分类订单信息 ~~~ 全国、二级商品分类订单信息 ~~~ 大区所有订单信息 ~~~ 大区、一级商品分类订单信息 ~~~ 大区、二级商品分类订单信息 ~~~ 城市所有订单信息 ~~~ 城市、一级商品分类订单信息 阅读全文

posted @ 2022-04-10 14:56 yanqi_vip 阅读(43) 评论(0) 推荐(0)

|NO.Z.00055|——————————|^^ 实验 ^^|——|Hadoop&PB级数仓.V13|——|PB数仓.v13|核心交易分析|DWS层建表|加载数据|

摘要: 一、DWS层建表及数据加载说明 ### DIM、DWD => 数据仓库分层、数据仓库理论 ~~~ # 需求:计算当天 ~~~ 全国所有订单信息 ~~~ 全国、一级商品分类订单信息 ~~~ 全国、二级商品分类订单信息 ~~~ 大区所有订单信息 ~~~ 大区、一级商品分类订单信息 ~~~ 大区、二级商品 阅读全文

posted @ 2022-04-10 14:55 yanqi_vip 阅读(32) 评论(0) 推荐(0)

|NO.Z.00053|——————————|^^ 实验 ^^|——|Hadoop&PB级数仓.V11|——PB数仓.v11|核心交易分析|DIM层建表|加载数据|

摘要: 一、DIM层建表加载数据:DIM层建表加载数据概述 ### 首先要确定哪些是事实表、哪些是维表。绿色的是事实表,灰色的维表 ~~~ 用什么方式处理维表,每日快照、拉链表? ~~~ 小表使用每日快照:产品分类表、商家店铺表、商家地域组织表、支付方式表 ~~~ 大表使用拉链表:产品信息表 二、DIM层建 阅读全文

posted @ 2022-04-10 14:54 yanqi_vip 阅读(66) 评论(0) 推荐(0)

|NO.Z.00054|——————————|^^ 实验 ^^|——|Hadoop&PB级数仓.V12|——|PB数仓.v12|核心交易分析|DWD层建表|加载数据|

摘要: 一、DWD层建表加载数据说明 ### 要处理的表有两张:订单表、订单产品表。其中: ~~~ 订单表是周期性事实表;为保留订单状态,可以使用拉链表进行处理; ~~~ 订单产品表普通的事实表,用常规的方法进行处理; ~~~ 如果有数据清洗、数据转换的业务需求,ODS => DWD ~~~ 如果没有数据清 阅读全文

posted @ 2022-04-10 14:54 yanqi_vip 阅读(62) 评论(0) 推荐(0)

|NO.Z.00052|——————————|^^ 案例 ^^|——|Hadoop&PB级数仓.V10|——|PB数仓.v10|周期性事实表|实现小结|

摘要: 一、周期性事实表:有如下订单表,6月20号有3条记录(001/002/003): 订单创建日期 订单编号 订单状态 2020-06-20 001 创建订单 2020-06-20 002 创建订单 2020-06-20 003 支付完成 6月21日,表中有5条记录。其中新增2条记录(004/005), 阅读全文

posted @ 2022-04-10 14:53 yanqi_vip 阅读(35) 评论(0) 推荐(0)

|NO.Z.00051|——————————|^^ 案例 ^^|——|Hadoop&PB级数仓.V09|——|PB数仓.v09|拉链表实现|拉链表回滚|

摘要: 一、拉链表的回滚:数据 ### 06-20拉链表数据(sh xxx.sh 2020-06-20;在2020-06-21日凌晨发出命令): ~~~ # 06-20拉链表数据(sh xxx.sh 2020-06-20;在2020-06-21日凌晨发出命令): 001 13551111111 2020-0 阅读全文

posted @ 2022-04-10 14:52 yanqi_vip 阅读(73) 评论(0) 推荐(0)

|NO.Z.00049|——————————|^^ 案例 ^^|——|Hadoop&PB级数仓.V07|——|PB数仓.v07|拉链表实现|建表加载|测试案例|

摘要: 一、维表拉链表应用案例:维表拉链表案例说明 二、维表拉链表建表加载数据 ### 创建用户信息表 ~~~ 用户信息 DROP TABLE IF EXISTS test.userinfo; CREATE TABLE test.userinfo( userid STRING COMMENT '用户编号', 阅读全文

posted @ 2022-04-10 14:51 yanqi_vip 阅读(34) 评论(0) 推荐(0)

|NO.Z.00050|——————————|^^ 案例 ^^|——|Hadoop&PB级数仓.V08|——|PB数仓.v08|拉链表实现|构建拉链表|

摘要: 一、构建拉链表 ### 拉链表的实现 ~~~ userinfo(分区表) => userid、mobile、regdate => ~~~ 每日变更的数据(修改的+新增的) / 历史数据(第一天) ~~~ userhis(拉链表)=> 多了两个字段 start_date / end_date 二、拉链 阅读全文

posted @ 2022-04-10 14:51 yanqi_vip 阅读(49) 评论(0) 推荐(0)

|NO.Z.00048|——————————|^^ 案例 ^^|——|Hadoop&PB级数仓.V06|——|PB数仓.v06|核心交易分析|缓慢变化|维度处理|

摘要: 一、缓慢变化维与周期性事实表 ### 缓慢变化维 ~~~ 缓慢变化维(SCD;Slowly Changing Dimensions)。 ~~~ 在现实世界中,维度的属性随着时间的流失发生缓慢的变化 ~~~ 缓慢是相对事实表而言,事实表数据变化的速度比维度表快。 ~~~ 处理维度表的历史变化信息的问题 阅读全文

posted @ 2022-04-10 14:50 yanqi_vip 阅读(29) 评论(0) 推荐(0)

|NO.Z.00046|——————————|^^ 数据 ^^|——|Hadoop&PB级数仓.V04|——|PB数仓.v04|核心交易分析|增量数据导入|

摘要: 一、增量数据导入 ### 增量数据导入概述 ~~~ # 3张增量表: ~~~ 订单表 yanqi_trade_orders ~~~ 订单产品表 yanqi_order_produce ~~~ 产品信息表 yanqi_product_info ~~~ 初始数据装载(执行一次); ~~~ 可以将前面的全 阅读全文

posted @ 2022-04-10 14:50 yanqi_vip 阅读(33) 评论(0) 推荐(0)

|NO.Z.00047|——————————|^^ 案例 ^^|——|Hadoop&PB级数仓.V05|——|PB数仓.v05|核心交易分析|ODS层建表|数据加载|

摘要: 一、ODS层建表与数据加载 ### ODS建表: ~~~ ODS层的表结构与源数据基本类似(列名及数据类型); ~~~ ODS层的表名遵循统一的规范; ~~~ 所有的表都是分区表;字段之间的分隔符为, ;为表的数据数据文件指定了位置; 二、ODS层建表与数据加载 ### ODS层建表:订单表 DRO 阅读全文

posted @ 2022-04-10 14:50 yanqi_vip 阅读(42) 评论(0) 推荐(0)

|NO.Z.00045|——————————|^^ 数据 ^^|——|Hadoop&PB级数仓.V03|——|PB数仓.v03|核心交易分析|全量数据导入|

摘要: 一、全量数据导入 ### 全量数据导入 ~~~ MySQL => HDFS => Hive ~~~ 每日加载全量数据,形成新的分区;(ODS如何建表有指导左右) 二、全量数据导入:导入产品分类表 ### 产品分类表导入json文件 ~~~ 数据量小的表没有必要使用多个channel;使用多个chan 阅读全文

posted @ 2022-04-10 14:49 yanqi_vip 阅读(16) 评论(0) 推荐(0)

|NO.Z.00044|——————————|BigDataEnd|——|Hadoop&PB级数仓.V02|——|PB数仓.v02|核心交易分析|数据导入&需求分析|

摘要: 一、数据导入 ## 数据导入架构说明 ~~~ 已经确定的事情:DataX、导出7张表的数据。 ~~~ MySQL 导出:全量导出、增量导出(导出前一天的数据)。 ~~~ 业务数据保存在MySQL中,每日凌晨导入上一天的表数据。 ~~~ 表数据量少,采用全量方式导出MySQL ~~~ 表数据量大,而且 阅读全文

posted @ 2022-04-10 14:48 yanqi_vip 阅读(39) 评论(0) 推荐(0)

|NO.Z.00043|——————————|BigDataEnd|——|Hadoop&PB级数仓.V01|——|PB数仓.v01|核心交易分析|业务需求&业务数据库|

摘要: 一、电商分析之--核心交易 ### 业务需求 ~~~ 本主题是电商系统业务中最关键的业务,电商的运营活动都是围绕这个主题展开。 ~~~ 选取的指标包括:订单数、商品数、支付金额。对这些指标按销售区域、商品类型进行分析。 二、业务数据库表结构 三、实验案例操作表 ### 业务数据库:数据源 ~~~ 交 阅读全文

posted @ 2022-04-10 14:47 yanqi_vip 阅读(94) 评论(0) 推荐(0)

|NO.Z.00041|——————————|BigDataEnd|——|Hadoop&PB级数仓.V08|——|PB数仓.v08|高防日志数据测试|

摘要: 一、高仿日志数据测试 ### 数据采集 ~~~ 1000W左右日活用户 ~~~ 按 30条日志 / 人天,合计3亿条事件日志 ~~~ 每条日志 650字节 左右 ~~~ 总数据量大概在180G ~~~ 采集数据时间约2.5小时 二、事件日志采集 ### 清理环境 ~~~ # 清理本地环境 ~~~ 删 阅读全文

posted @ 2022-04-10 14:46 yanqi_vip 阅读(27) 评论(0) 推荐(0)

|NO.Z.00042|——————————|BigDataEnd|——————————————————————————————————————

摘要: NO: Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of 阅读全文

posted @ 2022-04-10 14:46 yanqi_vip 阅读(4) 评论(0) 推荐(0)

|NO.Z.00040|——————————|BigDataEnd|——|Hadoop&PB级数仓.V07|——|PB数仓.v08|ADS层数据导出|

摘要: 一、ADS层数据导出(DataX) ### 步骤: ~~~ 在MySQL创建对应的表 ~~~ 创建配置文件(json) ~~~ 执行命令,使用json配置文件;测试 ~~~ 编写执行脚本(shell) ~~~ shell脚本的测试 二、在mysql建表 ### 语法:MySQL 建表 drop ta 阅读全文

posted @ 2022-04-10 14:45 yanqi_vip 阅读(31) 评论(0) 推荐(0)

|NO.Z.00038|——————————|BigDataEnd|——|Hadoop&PB级数仓.V05|——|PB数仓.v05|广告分析|漏斗分析|

摘要: 一、漏斗分析(点击率购买率) ### 需求分析 ~~~ # 分时统计: ~~~ 点击率 = 点击次数 / 曝光次数 ~~~ 购买率 = 购买次数 / 点击次数 二、创建ADS层表 ### 创建ADS层表 ~~~ # 语法:创建ADS层表 drop table if exists ads.ads_ad 阅读全文

posted @ 2022-04-10 14:44 yanqi_vip 阅读(28) 评论(0) 推荐(0)

|NO.Z.00039|——————————|BigDataEnd|——|Hadoop&PB级数仓.V06|——|PB数仓.v06|广告分析|脚本调用顺序|

摘要: 一、广告效果分析 ### 需求分析 ~~~ 活动曝光效果评估: ~~~ 行为(曝光、点击、购买)、时间段、广告位、商品,统计对应的次数 ~~~ 时间段、广告位、商品,曝光次数最多的前100个 ### 实验说明 ~~~ 小结:分析简单,没有DWS层 ~~~ Flume、json解析在会员分析讲解 二、 阅读全文

posted @ 2022-04-10 14:44 yanqi_vip 阅读(28) 评论(0) 推荐(0)

|NO.Z.00036|——————————|BigDataEnd|——|Hadoop&PB级数仓.V03|——|PB数仓.v03|广告分析|DWD层数据处理|

摘要: 一、DWD层建表和数据加载 ### DWD层建表和数据加载 ~~~ ODS:分区;事件的主要信息在json串中(json数组),公共信息在另外一个json串中; ~~~ ODS => 解析json,从json串中,提取jsonArray数据;将公共信息从json串中解析出来 => ### 所有事件的 阅读全文

posted @ 2022-04-10 14:43 yanqi_vip 阅读(31) 评论(0) 推荐(0)

|NO.Z.00037|——————————|BigDataEnd|——|Hadoop&PB级数仓.V04|——|PB数仓.v04|广告分析|点击次数计算|

摘要: 一、广告点击次数分析 ### 需求分析 ~~~ # 广告:ad ~~~ action: 用户行为;0 曝光;1 曝光后点击;2 购买 ~~~ duration: 停留时长 ~~~ shop_id: 商家id ~~~ event_type: "ad" ~~~ ad_type: 格式类型;1 JPG;2 阅读全文

posted @ 2022-04-10 14:43 yanqi_vip 阅读(25) 评论(0) 推荐(0)

|NO.Z.00034|——————————|BigDataEnd|——|Hadoop&PB级数仓.V01|——|PB数仓.v01|广告分析|需求分析&事件日志数据样例|

摘要: 一、电商分析之——广告业务 ### 电商分析之——广告业务 ~~~ 互联网平台通行的商业模式是利用免费的基础服务吸引凝聚大量用户, ~~~ 并利用这些用户资源开展广告或其他增值业务实现盈利从而反哺支撑免费服务的生存和发展。 ~~~ 广告收入不仅成为互联网平台的重要收入之一,更决定了互联网平台的发展程 阅读全文

posted @ 2022-04-10 14:42 yanqi_vip 阅读(37) 评论(0) 推荐(0)

|NO.Z.00035|——————————|BigDataEnd|——|Hadoop&PB级数仓.V02|——|PB数仓.v02|广告分析|事件日志采集&ODS层数据处理|

摘要: 一、广告分析——事件日志采集 ### 启动Flume Agent(适当的修改参数,128M滚动一次) ~~~ # 启动flume [root@hadoop02 ~]# flume-ng agent --conf /opt/yanqi/servers/flume-1.9.0/conf \ --conf 阅读全文

posted @ 2022-04-10 14:42 yanqi_vip 阅读(26) 评论(0) 推荐(0)

|NO.Z.00033|——————————|BigDataEnd|——————————————————————————————————————

摘要: NO: Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of 阅读全文

posted @ 2022-04-10 14:41 yanqi_vip 阅读(9) 评论(0) 推荐(0)

|NO.Z.00031|——————————|BigDataEnd|——|Hadoop&PB级数仓.V15|——|PB数仓.v15|会员活跃度分析|Hive on Tez&活跃&新增&留存|

摘要: 一、计算2020-07-22这一天的会员活跃度 ### 计算2020-07-22这一天的会员活跃度 ~~~ Hive on Tez测试数据说明:07-22(新增5000条) / 0723(新增4000条):18999条左右,执行脚本 ### Hive on Tez语法 SCRIPT_HOME=/da 阅读全文

posted @ 2022-04-10 14:40 yanqi_vip 阅读(20) 评论(0) 推荐(0)

|NO.Z.00032|——————————|BigDataEnd|——|Hadoop&PB级数仓.V16|——|PB数仓.v16|会员活跃度分析|Hive on Tez&会员留存率计算|

摘要: 一、会员留存率的计算:会员留存率计算概述 ### 修改后的代码(计算留存率): select t1.*, t2.* from ads.ads_member_retention_count t1 join ads.ads_new_member_cnt t2 on t1.add_date=t2.dt w 阅读全文

posted @ 2022-04-10 14:40 yanqi_vip 阅读(37) 评论(0) 推荐(0)

|NO.Z.00030|——————————|^^ 部署 ^^|——|Hadoop&PB级数仓.V14|——|PB数仓.v14|会员活跃度分析|Hive on Tez安装|

摘要: 一、Hive on Tez概述 ### Hive on Tez ~~~ Hortonworks在2014年左右发布了Stinger Initiative, ~~~ 并进行社区分享,为的是让Hive支持更多SQL,并实现更好的性能。 ~~~ 让Hive的查询功能更强大。增加类似OVER子句的分析功能, 阅读全文

posted @ 2022-04-10 14:39 yanqi_vip 阅读(62) 评论(0) 推荐(0)

|NO.Z.00029|——————————|^^ 重要 ^^|——|Hadoop&PB级数仓.V13|——|PB数仓.v13|会员活跃度分析|Hive on MR&活跃&新增&留存会员|数据加载|内存分配调整map&reduce数量|

摘要: 一、高仿日启动数据测试: ### 高防日启动数据测试 ~~~ 数据采集 => ODS => DWD => DWS => ADS> MySQL ~~~ 活跃会员、新增会员、会员留存 ~~~ DAU: Daily Active User(日活跃用户) ~~~ MAU: monthly active us 阅读全文

posted @ 2022-04-10 14:38 yanqi_vip 阅读(46) 评论(0) 推荐(0)

|NO.Z.00028|——————————|^^ 导出 ^^|——|Hadoop&PB级数仓.V12|——|PB数仓.v12|会员活跃度分析|Datax数据导出&hdfsreader => mysqlwriter|

摘要: 一、Datax 数据导出 ### DataX数据导出 ~~~ 官方配置地址:https://github.com/alibaba/DataX/blob/master/introduction.md) 二、DataX从Hive下导入表到mysql下 ### 在mysql下建表,准备导出数据的数据库 ~ 阅读全文

posted @ 2022-04-10 14:37 yanqi_vip 阅读(61) 评论(0) 推荐(0)

|NO.Z.00027|——————————|^^ 部署 ^^|——|Hadoop&PB级数仓.V11|——|PB数仓.v11|会员活跃度分析|Datax概念安装|入门案例|

摘要: 一、DataX概述及安装 ### DataX概述 ~~~ DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台, ~~~ 实现包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、 ~~~ MaxComp 阅读全文

posted @ 2022-04-10 14:36 yanqi_vip 阅读(54) 评论(0) 推荐(0)

|NO.Z.00026|——————————|BigDataEnd|——|Hadoop&PB级数仓.V10|——|PB数仓.v10|会员活跃度分析|留存会员&DWS层计算&加载&ADS层计算&加载&近三天留存会员计算|

摘要: 一、留存会员 ### 留存会员 ~~~ 留存会员与留存率:某段时间的新增会员,经过一段时间后,仍继续使用应用认为是 ~~~ 留存会员;这部分会员占当时新增会员的比例为留存率。 ~~~ 需求:1日、2日、3日的会员留存数和会员留存率 ~~~ 10W新会员:dws_member_add_day(dt=0 阅读全文

posted @ 2022-04-10 14:36 yanqi_vip 阅读(52) 评论(0) 推荐(0)

|NO.Z.00025|——————————|BigDataEnd|——|Hadoop&PB级数仓.V09|——|PB数仓.v09|会员活跃度分析|新增会员&DWS层计算&ADS层计算|

摘要: 一、新增会员DWS层计算 ### 创建DWS层表 ~~~ # 语法 use dws; drop table if exists dws.dws_member_add_day; create table dws.dws_member_add_day ( `device_id` string, `uid 阅读全文

posted @ 2022-04-10 14:34 yanqi_vip 阅读(55) 评论(0) 推荐(0)

|NO.Z.00023|——————————|BigDataEnd|——|Hadoop&PB级数仓.V07|——|PB数仓.v07|会员活跃度分析|活跃会员&ADS建表&ADS加载数据|ODS_DWS_DWS_ADS脚本执行顺序|

摘要: 一、创建ADS层表 ### 计算当天、当周、当月活跃会员数量 ~~~ # 语法 use ads; drop table if exists ads.ads_member_active_count; create table ads.ads_member_active_count( `day_coun 阅读全文

posted @ 2022-04-10 14:33 yanqi_vip 阅读(56) 评论(0) 推荐(0)

|NO.Z.00024|——————————|BigDataEnd|——|Hadoop&PB级数仓.V08|——|PB数仓.v08|会员活跃度分析|新增会员&新增会员计算思路|

摘要: 一、新增会员 ### 新增会员 ~~~ 留存会员:某段时间的新增会员,经过一段时间后,仍继续使用应用认为是留存会员; ~~~ 新增会员:第一次使用应用的用户,定义为新增会员;卸载再次安装的设备,不会被算作一次新增。 ~~~ 新增会员先计算 => 计算会员留存 ### 案例分析: ~~~ # 需求:每 阅读全文

posted @ 2022-04-10 14:33 yanqi_vip 阅读(61) 评论(0) 推荐(0)

|NO.Z.00022|——————————|BigDataEnd|——|Hadoop&PB级数仓.V06|——|PB数仓.v06|会员活跃度分析|活跃会员&DWS建表&DWS加载数据|

摘要: 一、活跃会员 ### 活跃会员 ~~~ 活跃会员:打开应用的会员即为活跃会员; ~~~ 新增会员:第一次使用应用的用户,定义为新增会员; ~~~ 留存会员:某段时间的新增会员,经过一段时间后,仍继续使用应用认为是留存会员; ~~~ 活跃会员指标需求:每日、每周、每月的活跃会员数 ~~~ DWD:会员 阅读全文

posted @ 2022-04-10 14:32 yanqi_vip 阅读(67) 评论(0) 推荐(0)

|NO.Z.00021|——————————|BigDataEnd|——|Hadoop&PB级数仓.V05|——|PB数仓.v05|会员活跃度分析|DWD建表&加载数据|

摘要: 一、DWD层建表和数据加载 ### DWD层建表和数据加载 ~~~ 主要任务:ODS(包含json串) => DWD ~~~ json数据解析,丢弃无用数据(数据清洗),保留有效信息,并将数据展开,形成每日启动明细表。 2021-09-28 18:19:32.966 [main] INFO com. 阅读全文

posted @ 2022-04-10 14:32 yanqi_vip 阅读(68) 评论(0) 推荐(0)

|NO.Z.00020|——————————|BigDataEnd|——|Hadoop&PB级数仓.V04|——|PB数仓.v04|会员活跃度分析|json数据处理&SerDe处理json数据|

摘要: 一、使用SerDe处理 ### 使用SerDe处理 ~~~ 序列化是对象转换为字节序列的过程;反序列化是字节序列恢复为对象的过程; ~~~ # 对象的序列化主要有两种用途: ~~~ 对象的持久化,即把对象转换成字节序列后保存到文件中 ~~~ 对象数据的网络传送 ~~~ SerDe 是Serializ 阅读全文

posted @ 2022-04-10 14:31 yanqi_vip 阅读(42) 评论(0) 推荐(0)

|NO.Z.00019|——————————|BigDataEnd|——|Hadoop&PB级数仓.V03|——|PB数仓.v03|会员活跃度分析|json数据处理&使用UDF处理json串|

摘要: 一、使用UDF处理 ### 自定义UDF处理json串中的数组。自定义UDF函数: ~~~ 输入:json串、数组的key ~~~ 输出:字符串数组 二、创建一个maven项目 ### 创建一个maven项目:cn.yanqi.dw ### 添加pom.xml依赖 <dependency> <gro 阅读全文

posted @ 2022-04-10 14:30 yanqi_vip 阅读(40) 评论(0) 推荐(0)

|NO.Z.00018|——————————|BigDataEnd|——|Hadoop&PB级数仓.V02|——|PB数仓.v02|会员活跃度分析|json数据处理&使用内建函数处理|

摘要: 一、json数据处理 ### json数据处理 ~~~ 数据文件中每行必须是一个完整的 json 串,一个 json串 不能跨越多行。 ~~~ # Hive 处理json数据总体来说有三个办法: ~~~ 使用内建的函数get_json_object、json_tuple ~~~ 使用自定义的UDF 阅读全文

posted @ 2022-04-10 14:29 yanqi_vip 阅读(40) 评论(0) 推荐(0)

|NO.Z.00017|——————————|BigDataEnd|——|Hadoop&PB级数仓.V01|——|PB数仓.v01|会员活跃度分析|数据处理&ODS建表&加载数据|

摘要: 一、ODS建表和数据加载 ### ODS建表和数据加载 ~~~ ODS层的数据与源数据的格式基本相同。 二、创建ODS层表: ### 创建ODS层表 [root@hadoop02 ~]# hive ~~~ # 建表语句 use ODS; drop table if exists ods.ods_st 阅读全文

posted @ 2022-04-10 14:28 yanqi_vip 阅读(67) 评论(0) 推荐(0)

|NO.Z.00016|——————————|BigDataEnd|——————————————————————————————————————

摘要: NO: Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of 阅读全文

posted @ 2022-04-10 14:26 yanqi_vip 阅读(11) 评论(0) 推荐(0)

|NO.Z.00015|——————————|BigDataEnd|——|Hadoop&PB级数仓.V07|——|PB数仓.v07|会员活跃度分析|自定义拦截器实现&测试|

摘要: 一、采集启动日志和事件日志 ### 采集启动日志和事件日志 ~~~ 本系统中要采集两种日志:启动日志、事件日志,不同的日志放置在不同的目录下。 ~~~ 要想一次拿到全部日志需要监控多个目录。 ### 总体思路 ~~~ taildir监控多个目录 ~~~ 修改自定义拦截器,不同来源的数据加上不同标志 阅读全文

posted @ 2022-04-10 14:21 yanqi_vip 阅读(68) 评论(0) 推荐(0)

|NO.Z.00014|——————————|BigDataEnd|——|Hadoop&PB级数仓.V06|——|PB数仓.v06|会员活跃度分析|启动自定义拦截器采集日志|

摘要: 一、采集启动日志(使用自定义拦截器) ### 定义配置文件 [root@hadoop02 ~]# vim /data/yanqidw/conf/flume-log2hdfs2.conf a1.sources = r1 a1.sinks = k1 a1.channels = c1 # taildir 阅读全文

posted @ 2022-04-10 14:18 yanqi_vip 阅读(28) 评论(0) 推荐(0)

|NO.Z.00013|——————————|BigDataEnd|——|Hadoop&PB级数仓.V05|——|PB数仓.v05|会员活跃度分析|自定义拦截器实现&测试|

摘要: 一、自定义拦截器 ### 自定义拦截器 ~~~ 前面 Flume Agent 的配置使用了本地时间,可能导致数据存放的路径不正确。 ~~~ 要解决以上问题需要使用自定义拦截器。 ~~~ agent用于测试自定义拦截器。netcat source =>logger sink ### 创建自定义拦截器F 阅读全文

posted @ 2022-04-10 14:17 yanqi_vip 阅读(49) 评论(0) 推荐(0)

|NO.Z.00012|——————————|BigDataEnd|——|Hadoop&PB级数仓.V04|——|PB数仓.v04|会员活跃度分析|agent配置&Flume配置|

摘要: 一、Agent的配置 ### 配置Flume.agent配置 [root@hadoop02 ~]# vim /data/yanqidw/conf/flume-log2hdfs1.conf a1.sources = r1 a1.sinks = k1 a1.channels = c1 # taildir 阅读全文

posted @ 2022-04-10 14:16 yanqi_vip 阅读(30) 评论(0) 推荐(0)

|NO.Z.00010|——————————|BigDataEnd|——|Hadoop&PB级数仓.V02|——|PB数仓.v02|会员活跃度分析|taildir/source|

摘要: 一、日志数据采集 ### 原始日志数据(一条启动日志) 2020-07-3014: 18: 47.339[ main ]INFOcom.yanqi.ecommerce.AppStart-{ "app_active": { "name": "app_active", "json": { "entry" 阅读全文

posted @ 2022-04-10 14:15 yanqi_vip 阅读(41) 评论(0) 推荐(0)

|NO.Z.00011|——————————|BigDataEnd|——|Hadoop&PB级数仓.V03|——|PB数仓.v03|会员活跃度分析|hdfs sink|

摘要: 一、日志采集配置:hdfs sink配置 ### 日志采集配置:hdfs sink配置 a1.sinks.k1.type = hdfs a1.sinks.k1.hdfs.path = /user/data/logs/start/%Y-%m-%d/ a1.sinks.k1.hdfs.filePrefi 阅读全文

posted @ 2022-04-10 14:15 yanqi_vip 阅读(28) 评论(0) 推荐(0)

|NO.Z.00009|——————————|BigDataEnd|——|Hadoop&PB级数仓.V01|——|PB数仓.v01|会员活跃度分析|需求说明|日志数据采集|

摘要: 一、电商分析之--会员活跃度 ### 需求分析 ~~~ 会员数据是后期营销的很重要的数据。网店会专门针对会员进行一系列营销活动。 ~~~ 电商会员一般门槛较低,注册网站即可加入。 ~~~ 有些电商平台的高级会员具有时效性,需要购买VIP会员卡或一年内消费额达到多少才能成为高级会员。 ~~~ # 计算 阅读全文

posted @ 2022-04-10 14:14 yanqi_vip 阅读(49) 评论(0) 推荐(0)

|NO.Z.00007|——————————|BigDataEnd|——|Hadoop&PB级数仓.V07|——|PB数仓.v07|数仓设计|技术|逻辑|开发|数仓命名规范|

摘要: 一、总体架构设计:技术方案选型 ### 技术方案选型 ~~~ 框架选型 ~~~ 软件选型 ~~~ 服务器选型 ~~~ 集群规模的估算 ### 框架选型 ~~~ Apache / 第三方发行版(CDH / HDP / Fusion Insight) ~~~ # Apache社区版本优点: ~~~ 完全 阅读全文

posted @ 2022-04-10 14:13 yanqi_vip 阅读(86) 评论(0) 推荐(0)

|NO.Z.00008|——————————|BigDataEnd|——————————————————————————————————————

摘要: NO: Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of 阅读全文

posted @ 2022-04-10 14:13 yanqi_vip 阅读(15) 评论(0) 推荐(0)

|NO.Z.00005|——————————|BigDataEnd|——|Hadoop&PB级数仓.V05|——|PB数仓.v05|数仓模型|元数据|

摘要: 一、数据仓库模型 ### 事实表与维度表 ~~~ 在数据仓库中,保存度量值的详细值或事实的表称为事实表。 ~~~ 事实数据表通常包含大量的行。 ~~~ 事实数据表的主要特点是包含数字数据(事实),并且这些数字信息可以汇总, ~~~ 以提供有关单位作为历史的数据。事实表的粒度决定了数据仓库中数据的详细 阅读全文

posted @ 2022-04-10 14:12 yanqi_vip 阅读(42) 评论(0) 推荐(0)

|NO.Z.00006|——————————|BigDataEnd|——|Hadoop&PB级数仓.V06|——|PB数仓.v06|数仓设计|需求分析|数仓埋点|数据指标体系|

摘要: 一、电商离线数仓设计 ### 需求分析 ~~~ 近年来,中国的电子商务快速发展,交易额连创新高, ~~~ 电子商务在各领域的应用不断拓展和深化、 ~~~ 相关服务业蓬勃发展、支撑体系不断健全完善、创新的动力和能力 不断增强。 ~~~ 电子商务正在与实体经济深度融合,进入规模性发展阶段,对经济社会生活 阅读全文

posted @ 2022-04-10 14:12 yanqi_vip 阅读(66) 评论(0) 推荐(0)

|NO.Z.00004|——————————|BigDataEnd|——|Hadoop&PB级数仓.V04|——|PB数仓.v04|数仓理论|数仓分层|

摘要: 一、数据仓库分层 ### 数据仓库分层 ~~~ 数据仓库更多代表的是一种对数据的管理和使用的方式, ~~~ 它是一整套包括了数据建模、ETL(数据抽取、转换、加载)、 ~~~ 作用调度等在内的完整的理论体系流程。数据仓库在构建过程中通常都需要进行分层处理。 ~~~ 业务不同,分层的技术处理手段也不同 阅读全文

posted @ 2022-04-10 14:10 yanqi_vip 阅读(58) 评论(0) 推荐(0)

|NO.Z.00002|——————————|BigDataEnd|——|Hadoop&PB级数仓.V02|——|PB数仓.v02|数仓概念|数据集市|

摘要: 一、数据仓库 ### [数仓理论] ~~~ [数据仓库:数仓概念] ~~~ [数据仓库:数仓特征] ~~~ [数据仓库与数据库的区别] ~~~ [数据仓库:数据集市] ### 什么是数据仓库 ~~~ 1988年,为解决全企业集成问题,IBM公司第一次提出了信息仓库(InformationWareho 阅读全文

posted @ 2022-04-10 14:09 yanqi_vip 阅读(31) 评论(0) 推荐(0)

|NO.Z.00003|——————————|BigDataEnd|——|Hadoop&PB级数仓.V03|——|PB数仓.v03|数仓理论|建模方法|

摘要: 一、数据仓库建模方法 ### 数据仓库建模方法 ~~~ # 数据模型就是数据组织和存储方法,它强调从业务、数据存取和使用角度合理存储数据。 ~~~ # 有了适合业务和基础数据存储环境的模型,能获得以下好处: ~~~ 性能:良好的数据模型能帮助我们快速查询所需要的数据,减少数据的I/O吞吐 ~~~ 成 阅读全文

posted @ 2022-04-10 14:09 yanqi_vip 阅读(18) 评论(0) 推荐(0)

|NO.Z.00001|——————————|BigDataEnd|——|Hadoop&PB级数仓.V01|——|PB数仓.v01|数据仓库|项目背景|

摘要: 一、项目背景 ### 项目背景 ~~~ 人类正从IT时代走向DT(Data Technology)时代。 ~~~ 在DT时代,人们比以往任何时候更能收集到更丰富的数据。 ~~~ IDC 的报告显示:预计到2020年,全球数据总量将超过40ZB(相当于40 万亿GB), ~~~ 这一数据量是2011年 阅读全文

posted @ 2022-04-10 14:08 yanqi_vip 阅读(32) 评论(0) 推荐(0)

|NO.Z.10000|——————————|BigDataEnd|——————————————————————————————————————

摘要: NO: Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of 阅读全文

posted @ 2022-04-10 14:07 yanqi_vip 阅读(7) 评论(0) 推荐(0)

|NO.Z.00000|——————————|BigDataEnd|——————————————————————————————————————

摘要: NO: Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of 阅读全文

posted @ 2022-04-10 14:07 yanqi_vip 阅读(5) 评论(0) 推荐(0)

|NO.Z.00100|——————————|BigDataEnd|——|Hadoop&kafka.V07|——|kafka.v07|Kafka源码剖析|Producer消费者流程.v03|

摘要: 一、自动提交 ### 自动提交 ~~~ 最简单的提交方式是让悄费者自动提交偏移量。 ~~~ 如果enable.auto.commit被设为 true,消费者会自动把从 poll() 方法接收到的最大偏移量提交上去。 ~~~ 提交时间间隔由 auto.commit.interval.ms 控制,默认值 阅读全文

posted @ 2022-04-10 14:06 yanqi_vip 阅读(36) 评论(0) 推荐(0)

|NO.Z.00101|——————————|BigDataEnd|——————————————————————————————————————

摘要: NO: Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of 阅读全文

posted @ 2022-04-10 14:06 yanqi_vip 阅读(8) 评论(0) 推荐(0)

|NO.Z.00097|——————————|BigDataEnd|——|Hadoop&kafka.V04|——|kafka.v04|Kafka源码剖析|Producer生产者流程|

摘要: 一、Kafka源码剖析之Producer生产者流程 ### Producer示例 ~~~ 首先我们先通过一段代码来展示KafkaProducer 的使用方法。 ~~~ 在下面的示例中,我们使用KafkaProducer 实现向kafka发送消息的功能。 ~~~ 在示例程序中,首先将KafkaProd 阅读全文

posted @ 2022-04-10 14:05 yanqi_vip 阅读(35) 评论(0) 推荐(0)

|NO.Z.00098|——————————|BigDataEnd|——|Hadoop&kafka.V05|——|kafka.v05|Kafka源码剖析|Producer消费者流程.v01|

摘要: 一、Kafka源码剖析之Consumer消费者流程 ### Consumer示例 ~~~ # KafkaConsumer ~~~ 消费者的根本目的是从Kafka服务端拉取消息,并交给业务逻辑进行处理。 ~~~ 开发人员不必关心与Kafka服务端之间网络连接的管理、 ~~~ 心跳检测、请求超时重试等底 阅读全文

posted @ 2022-04-10 14:05 yanqi_vip 阅读(42) 评论(0) 推荐(0)

|NO.Z.00099|——————————|BigDataEnd|——|Hadoop&kafka.V06|——|kafka.v06|Kafka源码剖析|Producer消费者流程.v02|

摘要: 一、订阅Topic ### 订阅Topic ~~~ 下面我们先来看一下subscribe方法都有哪些逻辑 public void subscribe(Collection<String> topics, ConsumerRebalanceListenerlistener) { // 轻量级锁 acq 阅读全文

posted @ 2022-04-10 14:05 yanqi_vip 阅读(61) 评论(0) 推荐(0)

|NO.Z.00096|——————————|BigDataEnd|——|Hadoop&kafka.V03|——|kafka.v03|Kafka源码剖析|Topic创建流程|

摘要: 一、Kafka源码剖析之Topic创建流程 ### Topic创建 ~~~ 有两种创建方式:自动创建、手动创建。 ~~~ 在server.properties中配置auto.create.topics.enable=true 时, ~~~ kafka在发现该topic不存在的时候会按照默认配置自动创 阅读全文

posted @ 2022-04-10 14:04 yanqi_vip 阅读(109) 评论(0) 推荐(0)

|NO.Z.00094|——————————|^^ 部署 ^^|——|Hadoop&kafka.V01|——|kafka.v01|源码阅读|环境搭建|

摘要: 一、Kafka源码剖析之源码阅读环境搭建 ### [kafka高级特性解析] ~~~ [源码剖析:源码阅读环境搭建] ~~~ [源码剖析:部署gradle] ~~~ [源码剖析:部署scala] ~~~ [源码剖析:IDEA导入源码] ~~~ [源码剖析:IDEA导入源码后设置] ### 官网地址下 阅读全文

posted @ 2022-04-10 14:03 yanqi_vip 阅读(71) 评论(0) 推荐(0)

|NO.Z.00095|——————————|BigDataEnd|——|Hadoop&kafka.V02|——|kafka.v02|Kafka源码剖析|Broker启动流程|

摘要: 一、Kafka源码剖析之Broker启动流程 ### 启动kafka:kafka-server-start.sh内容如下: ~~~ 命令如下: kafka-server-start.sh /opt/kafka_2.12-1.0.2/config/server.properties if [ $# - 阅读全文

posted @ 2022-04-10 14:03 yanqi_vip 阅读(37) 评论(0) 推荐(0)

|NO.Z.00093|——————————|BigDataEnd|——————————————————————————————————————

摘要: NO: Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of 阅读全文

posted @ 2022-04-10 14:02 yanqi_vip 阅读(11) 评论(0) 推荐(0)

|NO.Z.00091|——————————|^^ 部署 ^^|——|Hadoop&kafka.V05|——|kafka.v05|监控工具KafkaEagle.v01|

摘要: 一、监控工具 Kafka Eagle ### 监控工具kafka Eagle ~~~ 我们可以使用Kafka-eagle管理Kafka集群 ~~~ 自行编译官网, https://github.com/smartloli/kafka-eagle ### 核心模块: ~~~ # 面板可视化 ~~~ 主 阅读全文

posted @ 2022-04-10 14:01 yanqi_vip 阅读(54) 评论(0) 推荐(0)

|NO.Z.00092|——————————|BigDataEnd|——|Hadoop&kafka.V06|——|kafka.v06|监控工具KafkaEagle.v02|

摘要: 附录一:system-config.properties文本二 [root@hadoop01 conf]# pwd /opt/yanqi/servers/kafka-eagle/kafka-eagle-web/target/test/kafka-eagle-web-2.0.1/conf [root@ 阅读全文

posted @ 2022-04-10 14:01 yanqi_vip 阅读(41) 评论(0) 推荐(0)

|NO.Z.00090|——————————|BigDataEnd|——|Hadoop&kafka.V04|——|kafka.v04|编程手段获取监控指标|

摘要: 一、编程手段获取监控指标:查看要监控哪个指标 二、监控指标项目准备主题数据 ### 查看现有的主题 [root@hadoop01 ~]# kafka-topics.sh --zookeeper localhost:2181/myKafka --describe --topic topic_x Top 阅读全文

posted @ 2022-04-10 14:00 yanqi_vip 阅读(37) 评论(0) 推荐(0)

|NO.Z.00088|——————————|^^ 部署 ^^|——|Hadoop&kafka.V02|——|kafka.v02|集群搭建|

摘要: 一、集群搭建:搭建设计 ### 分配三台Linux,用于安装拥有三个节点的Kafka集群。 Hadoop01 192.168.1.111 Hadoop02 192.168.1.122 Hadoop03 192.168.1.133 二、部署kafka集群:配置hosts文件 ### 以上三台主机的/e 阅读全文

posted @ 2022-04-10 13:59 yanqi_vip 阅读(52) 评论(0) 推荐(0)

|NO.Z.00089|——————————|BigDataEnd|——|Hadoop&kafka.V03|——|kafka.v03|监控度量指标|

摘要: 一、集群监控:监控度量指标 ### 监控度量指标 ~~~ Kafka使用Yammer Metrics在服务器和Scala客户端中报告指标。 ~~~ Java客户端使用Kafka Metrics,它是一个内置的度量标准注册表, ~~~ 可最大程度地减少拉入客户端应用程序的传递依赖项。 ~~~ 两者都通 阅读全文

posted @ 2022-04-10 13:59 yanqi_vip 阅读(48) 评论(0) 推荐(0)

|NO.Z.00087|——————————|BigDataEnd|——|Hadoop&kafka.V01|——|kafka.v01|集群与运维|集群应用场景|

摘要: 一、集群应用场景 ### 消息传递 ~~~ Kafka可以很好地替代传统邮件代理。 ~~~ 消息代理的使用有多种原因(将处理与数据生产者分离,缓冲未处理的消息等)。 ~~~ 与大多数邮件系统相比,Kafka具有更好的吞吐量,内置的分区,复制和容错功能,这 ~~~ 使其成为大规模邮件处理应用程序的理想 阅读全文

posted @ 2022-04-10 13:58 yanqi_vip 阅读(38) 评论(0) 推荐(0)

|NO.Z.00086|——————————|BigDataEnd|——————————————————————————————————————

摘要: NO: Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of 阅读全文

posted @ 2022-04-10 13:58 yanqi_vip 阅读(12) 评论(0) 推荐(0)

|NO.Z.00085|——————————|BigDataEnd|——|Hadoop&kafka.V70|——|kafka.v70|稳定性|重试队列.v02|

摘要: 一、编程代码实现 ### AppConfig.java package com.yanqi.kafka.demo.config; import org.springframework.context.annotation.Bean; import org.springframework.contex 阅读全文

posted @ 2022-04-10 13:57 yanqi_vip 阅读(31) 评论(0) 推荐(0)

|NO.Z.00084|——————————|BigDataEnd|——|Hadoop&kafka.V69|——|kafka.v69|稳定性|重试队列.v01|

摘要: 一、重试队列 ### 重试队列 ~~~ kafka没有重试机制不支持消息重试,也没有死信队列,因此使用kafka做消息队列时, ~~~ 需要自己实现消息重试的功能。 ### 实现:创建新的kafka主题作为重试队列: ~~~ 创建一个topic作为重试topic,用于接收等待重试的消息。 ~~~ 普 阅读全文

posted @ 2022-04-10 13:56 yanqi_vip 阅读(39) 评论(0) 推荐(0)

|NO.Z.00083|——————————|BigDataEnd|——|Hadoop&kafka.V68|——|kafka.v68|稳定性|延时队列|

摘要: 一、延时队列 ### 延时队列 ~~~ 两个follower副本都已经拉取到了leader副本的最新位置,此时又向leader副本发送拉取请求, ~~~ 而leader副本并没有新的消息写入,那么此时leader副本该如何处理呢? ~~~ 可以直接返回空的拉取结果给follower副本,不过在lea 阅读全文

posted @ 2022-04-10 13:56 yanqi_vip 阅读(42) 评论(0) 推荐(0)

|NO.Z.00082|——————————|BigDataEnd|——|Hadoop&kafka.V67|——|kafka.v67|稳定性|__consumer_offsets主题|

摘要: 一、 _consumer_offsets主题 ### zookeeper不适合大批量的频繁写入操作 ~~~ Zookeeper不适合大批量的频繁写入操作。 ~~~ Kafka 1.0.2将consumer的位移信息保存在Kafka内部的topic中,即__consumer_offsets主题, ~~ 阅读全文

posted @ 2022-04-10 13:55 yanqi_vip 阅读(31) 评论(0) 推荐(0)

|NO.Z.00081|——————————|BigDataEnd|——|Hadoop&kafka.V66|——|kafka.v66|消息重复场景|解决方案.v02|

摘要: 一、消费者数据重复场景及解决方案 ### 根本原因 ~~~ 数据消费完没有及时提交offset到broker。 ### 场景 ~~~ 消息消费端在消费过程中挂掉没有及时提交offset到broke, ~~~ 另一个消费端启动拿之前记录的offset开始消费, ~~~ 由于offset的滞后性可能会导 阅读全文

posted @ 2022-04-10 13:54 yanqi_vip 阅读(27) 评论(0) 推荐(0)

|NO.Z.00080|——————————|BigDataEnd|——|Hadoop&kafka.V65|——|kafka.v65|消息重复场景|解决方案.v01|

摘要: 一、生产者阶段重复场景 ### 消息重复的场景及解决方案 ~~~ # 消息重复和丢失是kafka中很常见的问题,主要发生在以下三个阶段: ~~~ 生产者阶段 ~~~ broke阶段 ~~~ 消费者阶段 ### 根本原因 ~~~ 生产发送的消息没有收到正确的broke响应,导致生产者重试。 ~~~ 生 阅读全文

posted @ 2022-04-10 13:54 yanqi_vip 阅读(43) 评论(0) 推荐(0)

|NO.Z.00078|——————————|BigDataEnd|——|Hadoop&kafka.V63|——|kafka.v63|稳定性|一致性保证.v03|

摘要: 一、HW和LEO异常案例 ### HW和LEO异常案例 ~~~ Kafka使用HW值来决定副本备份的进度,而HW值的更新通常需要额外一轮FETCH RPC才能完成。 ~~~ 但这种设计是有问题的,可能引起的问题包括: ~~~ 备份数据丢失 ~~~ 备份数据不一致 ### 数据丢失 ~~~ 使用HW值 阅读全文

posted @ 2022-04-10 13:53 yanqi_vip 阅读(28) 评论(0) 推荐(0)

|NO.Z.00079|——————————|BigDataEnd|——|Hadoop&kafka.V64|——|kafka.v64|稳定性|一致性保证.v04|

摘要: 一、Leader Epoch使用 ### Kafka解决方案:造成上述两个问题的根本原因在于 ~~~ # HW值被用于衡量副本备份的成功与否。 ~~~ # 在出现失败重启时作为日志截断的依据。 ~~~ 但HW值的更新是异步延迟的,特别是需要额外的FETCH请求处理流程才能更新, ~~~ 故这中间发生 阅读全文

posted @ 2022-04-10 13:53 yanqi_vip 阅读(34) 评论(0) 推荐(0)

|NO.Z.00077|——————————|BigDataEnd|——|Hadoop&kafka.V62|——|kafka.v62|稳定性|一致性保证.v02|

摘要: 一、HW和LEO正常更新案例 ### HW和LEO正常更新案例 ~~~ 我们假设有一个topic,单分区,副本因子是2,即一个Leader副本和一个Follower副本。 ~~~ 我们看下当producer发送一条消息时broker端的副本到底会发生什么事情以及分区HW是如何被更新的。 ### 初始 阅读全文

posted @ 2022-04-10 13:52 yanqi_vip 阅读(26) 评论(0) 推荐(0)

|NO.Z.00075|——————————|BigDataEnd|——|Hadoop&kafka.V60|——|kafka.v60|稳定性|可靠性保证|

摘要: 一、可靠性保证 ### 概念 ~~~ 创建Topic的时候可以指定--replication-factor 3 ,表示分区的副本数,不要超过broker的数量。 ~~~ Leader是负责读写的节点,而其他副本则是Follower。 ~~~ Producer只把消息发送到Leader,Followe 阅读全文

posted @ 2022-04-10 13:51 yanqi_vip 阅读(27) 评论(0) 推荐(0)

|NO.Z.00076|——————————|BigDataEnd|——|Hadoop&kafka.V61|——|kafka.v61|稳定性|一致性保证.v01|

摘要: 一、致性保证 ### 概念 ~~~ # 水位标记 ~~~ 水位或水印(watermark)一词,表示位置信息,即位移(offset)。 ~~~ Kafka源码中使用的名字是高水位,HW(high watermark)。 ~~~ # 副本角色 ~~~ Kafka分区使用多个副本(replica)提供高 阅读全文

posted @ 2022-04-10 13:51 yanqi_vip 阅读(43) 评论(0) 推荐(0)

|NO.Z.00073|——————————|BigDataEnd|——|Hadoop&kafka.V58|——|kafka.v58|稳定性|事务操作|

摘要: 一、事务操作 ### 事务操作 ~~~ # 在Kafka事务中,一个原子性操作,根据操作类型可以分为3种情况。情况如下: ~~~ 只有Producer生产消息,这种场景需要事务的介入; ~~~ 消费消息和生产消息并存,比如Consumer&Producer模式, ~~~ 这种场景是一般Kafka项目 阅读全文

posted @ 2022-04-10 13:50 yanqi_vip 阅读(31) 评论(0) 推荐(0)

|NO.Z.00074|——————————|BigDataEnd|——|Hadoop&kafka.V59|——|kafka.v59|稳定性|控制器|

摘要: 一、控制器 ### 控制器 ~~~ Kafka集群包含若干个broker,broker.id指定broker的编号,编号不要重复。 ~~~ Kafka集群上创建的主题,包含若干个分区。 ~~~ 每个分区包含若干个副本,副本因子包括了Follower副本和Leader副本。 ~~~ 副本又分为ISR( 阅读全文

posted @ 2022-04-10 13:50 yanqi_vip 阅读(13) 评论(0) 推荐(0)

|NO.Z.00072|——————————|BigDataEnd|——|Hadoop&kafka.V57|——|kafka.v57|稳定性|幂等性|

摘要: 一、稳定性:幂等性 ### 幂等性 ~~~ Kafka在引入幂等性之前,Producer向Broker发送消息, ~~~ 然后Broker将消息追加到消息流中后给Producer返回Ack信号值。实现流程如下: ~~~ 生产中,会出现各种不确定的因素,比如在Producer在发送给Broker的时候 阅读全文

posted @ 2022-04-10 13:49 yanqi_vip 阅读(42) 评论(0) 推荐(0)

|NO.Z.00071|——————————|BigDataEnd|——|Hadoop&kafka.V56|——|kafka.v56|稳定性|事务相关配置.v03|

摘要: 一、事务的中止 ### 事务的中止 ~~~ 当事务生产者发送业务消息的时候如果发生异常,可以中止该事务。 ~~~ 如果事务提交超时,事务协调器也会中止当前事务。 ~~~ # Producer:向事务协调器发送AbortTransaction(TxId)请求并等待响应。 ~~~ (一个没有异常的响应表 阅读全文

posted @ 2022-04-10 13:48 yanqi_vip 阅读(56) 评论(0) 推荐(0)

|NO.Z.00070|——————————|BigDataEnd|——|Hadoop&kafka.V55|——|kafka.v55|稳定性|事务相关配置.v02|

摘要: 一、事务概览 ### 事务概览 ~~~ 生产者将表示事务开始/结束/中止状态的事务控制消息发送给 ~~~ 使用多阶段协议管理事务的高可用==事务协调器==。 ~~~ 生产者将事务控制记录(开始/结束/中止)发送到事务协调器, ~~~ 并将事务的消息直接发送到目标数据分区。 ### 消费者需要了解事务 阅读全文

posted @ 2022-04-10 13:47 yanqi_vip 阅读(40) 评论(0) 推荐(0)

导航