阿里云离线数据仓库

阿里云离线数据仓库

  • 第1章 数据仓库概念
    • 第2章 项目需求及架构设计
      • 2.1 项目需求分析
      • 2.2 阿里云技术框架
        • 2.2.1 技术选型
        • 2.2.2 系统数据流程设计
  • 第3章 数据生成模块
    • 3.1 埋点数据基本格式
    • 3.2 事件日志数据
      • 3.2.1 商品列表页(loading)
      • 3.2.2 商品曝光(display)
      • 3.2.3 商品详情页(newsdetail)
      • 3.2.4 购物车(cart)
      • 3.2.5 广告(ad)
      • 3.2.6 消息通知(notification)
      • 3.2.7 评论(comment)
      • 3.2.8 收藏(favorites)
      • 3.2.8 点赞(praise)
      • 3.2.10 错误日志(error)
    • 3.3 启动日志数据(start)
  • 第4章 数据采集模块
    • 4.5 Flume安装及使用
    • 4.6 DataHub安装及使用
      • 4.6.1 DataHub 简介
  • 4.8 DataWorks 和 MaxCompute
    • 4.8.1 简介
  • 第5章 用户数据行为数仓搭建
    • 5.1 数仓分层概念
      • 5.1.1 数仓分层
      • 5.1.2 数仓分层优点
      • 5.1.3 数仓命名规范
    • 5.5 DataHub 推送数据到MaxCompute
    • 5.6 明细数据层(DWD层)
      • 5.6.1 日志格式分析
      • 5.6.2 自定义UDTF(解析具体事件字段)
      • 5.6.5 数据导入脚本
      • 5.7.3 数据导入脚本
    • 5.8 应用数据层(ADS层)
  • 第6章 业务数仓理论
    • 6.1 表的分类
      • 6.1.1 实体表
      • 6.1.2 维度表
      • 6.1.3 事务型事实表
      • 6.1.4 周期型事实表
    • 6.2 同步策略
      • 6.2.1 实体表同步策略
      • 6.2.2 维度表同步策略
      • 6.2.3 事务型事实表同步策略
      • 6.2.4 周期型事实表同步策略
  • 第7章 业务数仓搭建
    • 7.1 业务数仓架构图
    • 7.2 RDS 服务器准备
      • 7.2.1 RDS 服务器购买
      • 7.5.3 每日增量表同步
      • 7.5.4 每日新增及变化表同步
    • 7.6 DWD层
      • 7.6.2 手动将数据导入 DWD 层
    • 7.7 DWS层
    • 7.8 ADS层
  • 第8章 数据导出与作业调度
    • 8.1 创建结果数据库
    • 8.2 创建商品销售数据同步节点
  • 第9章 数据可视化

第1章 数据仓库概念

  1. 数据仓库定义(Data Warehouse),是为企业所有决策制定过程,提供所有系统数据支持的战略集合。
  2. 数据仓库好处:可以帮助企业改进业务流程、控制成本、提高产品质量等。
  3. 数据仓库做什么:清洗、转义、分类、重组、合并、拆分,统计等。
  4. 数据仓库输出到哪:报表系统、用户画像、推荐系统、机器学习、风控系统等。
    在这里插入图片描述

第2章 项目需求及架构设计

2.1 项目需求分析

  1. 采集埋点日志数据:用户行为数据仓库,用户来到网站/APP的行为(干了那些事),包括一些异常或故障。(以文件的形式存储)
  2. 采集业务数据库中数据:业务数仓,网站/APP中的各功能组件运行时所产生的数据。 (以MySQL数据库的形式存储)
  3. 数据仓库的搭建(用户行为数仓、业务数仓)
  4. 分析统计各种业务指标:比如日活跃用户、新增用户、交易额等。
  5. 对结果进行可视化展示

2.2 阿里云技术框架

在这里插入图片描述

2.2.1 技术选型

在这里插入图片描述

2.2.2 系统数据流程设计

在这里插入图片描述

第3章 数据生成模块

3.1 埋点数据基本格式

  1. 公共字段:比如基本所有安卓手机都包含的字段。
  2. 业务字段:埋点上报的字段,有具体的业务类型。

3.2 事件日志数据

3.2.1 商品列表页(loading)

在这里插入图片描述

3.2.2 商品曝光(display)

事件标签:display
在这里插入图片描述

3.2.3 商品详情页(newsdetail)

事件标签:newsdetail
在这里插入图片描述

3.2.4 购物车(cart)

事件名称:cart
在这里插入图片描述

3.2.5 广告(ad)

事件名称:ad
在这里插入图片描述

3.2.6 消息通知(notification)

事件标签:notification
在这里插入图片描述

3.2.7 评论(comment)

评论表标签:comment
在这里插入图片描述

3.2.8 收藏(favorites)

收藏标签:favorites
在这里插入图片描述

3.2.8 点赞(praise)

点赞标签:praise
在这里插入图片描述

3.2.10 错误日志(error)

错误日志标签:error,帮助发现问题,进行改善提升。
在这里插入图片描述

3.3 启动日志数据(start)

启动日志标签:start
在这里插入图片描述

第4章 数据采集模块

4.5 Flume安装及使用

Flume 是 Cloudera 提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。Flume 基于流式架构,灵活简单。
在这里插入图片描述

  1. Source:主要负责采集工作,采用 TailDir 组件用于监控文件或文件夹的变化。
  2. Channel:扮演数据管道的角色,对数据进行缓冲。采用非持久化的 Memory类型。

4.6 DataHub安装及使用

4.6.1 DataHub 简介

  1. Flume 部分已经可以输出后,就开始搭建真正需要输出的目的地—DataHub,即阿里云数据总线服务。 通俗来说这个 DataHub
  2. 类似于传统大数据解决方案中 Kafka 的角色,提供了一个数据队列功能。 对于离线计算,DataHub 除了提供了一个缓冲的队列作用。
  3. 同时由于DataHub提供了各种与其他阿里云上下游产品的对接功能,所以DataHub又扮演了一个数据的分发枢纽工作。
    在这里插入图片描述

DataHub 输入组件包括
Flume:主流的开源日志采集框架。
DTS:类似 Canal,日志实时监控采集框架。
Logstash:也是日志采集框架,通常和 Elasticsearch、Kibana 集合使用。
Fluentd:Fluentd 是一个实时开源的数据收集器。
OGG:实时监控 Oracle 中数据变化。

DataHub 输出组件包括
RDS:类似于传统 MySQL 数据库。
DB:面向分析型的分布式数据库。
MaxCompute:离线分析框架。
Elasticsearch:数据分析,倒排索引。
StreamCompute:实时分析框架。
TableSotre:类似于 Redis,KV 形式存储数据。
OSS:类似于 HDFS,存储图片,视频。

4.8 DataWorks 和 MaxCompute

4.8.1 简介

MaxCompute(大数据计算服务)是阿里巴巴自主研发的海量数据处理平台,主要提供数据上传和下载通道,提供 SQL 及 MapReduce 等多种计算分析服务,同时还提供完善的安全解决方案。

DataWorks(数据工场,原大数据开发套件)是基于 MaxCompute 计算引擎的一站式大数据工场,它能帮助您快速完成数据集成、开发、治理、服务、质量、安全等全套数据研发工作。

图27-1:37

盘古:分布式文件系统,相当于Hadoop 中的 HDFS。
伏羲:分布式调度系统,相当于Hadoop 中的 YARN。
MaxCompute Engine:统一计算引擎,相当于MR、Tez等计算引擎。

MaxCompute 和 DataWorks 一起向用户提供完善的ETL 和数仓管理能力,以及 SQL、MR、Graph 等多种经典的分布式计算模型,能更快速地解决用户海量数据计算问题,有效降低企业成本,保障数据安全。

第5章 用户数据行为数仓搭建

5.1 数仓分层概念

5.1.1 数仓分层

图29-1:37

  1. ODS层:原始数据层,存放原始数据,直接加载原始日志、数据、数据保持原貌不做处理(备份)。
  2. DWD层:对ODS层数据进行清洗(去除空值,脏数据,超过极限范围的数据)
  3. DWS层:以DWD层为基础,进行轻度汇总。
  4. ADS层:为各种统计报表提供数据。

5.1.2 数仓分层优点

  1. 把复杂问题简单化:将一个复杂的任务分解成多个步骤来完成,每一层只处理单一的步骤,比较简、并且方便定位问题。
  2. 减少重复开发:规范数据分层,通过的中间层数据,能够减少极大的重复计算,增加一次计算结果的复用性。
  3. 隔离原始数据:不论是数据的异常还是数据的敏感性,使真实数据与统计数据解耦开。

5.1.3 数仓命名规范

  • ODS层命名为ods前缀。
  • DWD层命名为dwd前缀。
  • DWS层命名为dws前缀。
  • ADS层命名为ads前缀。
  • 维度表命名为dim前缀。
  • 每日全量导入命名为df(day full)后缀。
  • 每日增量导入命名为di(day increase)后缀。

5.5 DataHub 推送数据到MaxCompute

之前 Flume 中的数据利用 DataHub Sink 把数据写入到了 DataHub 中,DataHub 中提供了很多的其他第三方的 DataConnector 可以连接各种例如:MaxCompute,ElasticSearch,ADB,RDS等数据库。

所以就要建立 DataConnector 把数据推送到 MaxCompute 中。

5.6 明细数据层(DWD层)

DWD 层主要是对ODS层数据进行清洗(去除空值,脏数据,超过极限范围的数据)。DWD 层处理后的表,能够成为非常明确可用的基础明细数据。

5.6.1 日志格式分析

1)日志格式:服务器时间 | json
2)其中 json 包括:
cm:公共字段的 key;
ap:app 的名称;
et:具体事件。

5.6.2 自定义UDTF(解析具体事件字段)

开发 UDTF 有两个方法:

  • 方法1:在本地 IDEA 中创建工程,开发代码,打包,把 JAR 上传到 DataStudio 成为资源 JAR 包。然后基于资源 JAR 包,声明函数。
  • 方法2:直接在 FunctionStudio 中开发,然后在线打包发布程序,声明函数。相比而言,从发布流程上来说,利用 FunctionStudio 更快捷方便。但是从 IDEA 开发角度来说,网页版本的 FunctionStudio,肯定不如客户端的功能强大、反应速度流畅。不多也可以两者配合起来使用。

p34:未详细学习。

5.6.5 数据导入脚本

1)在流程中加入一个数据开发脚本

去重有两种方式:
1.按照某一个字段进行 group by;
2.开窗函数。
向 dws_uv_detail_d 表中插入数据,数据来源于一个子查询;
子查询里是一个开窗,对于 mid(设备id)进行开窗,开窗之后只取第一条。

INSERT OVERRITE TABLE dws_uv_detail_d PARTITION (ds,hh,mm)
SELECTmid,user_id,version_code,version_name,lang,source,os,area,model,brand,sdk_version,email,height_width,network,lng,lat,event_time,ds,hh,mm
from
(select*,ROW_NUMBER() OVER(PARTITION BY mid ORDER BY event_tion asc) AS rn from dwd_start_logwhere ds='20191008'
) st where rn = 1;

5.7.3 数据导入脚本

DWS 层一般围绕某个主题进行聚合、拼接处理。
针对统计日活的需求,DWS 主要的工作就进行以日为单位的去重操作。

1)在流程中加入一个数据开发脚本
在数据开发中,新建一个ODPS SQL
图39-00:18

5.8 应用数据层(ADS层)

统计各个渠道的 uv 个数

第6章 业务数仓理论

6.1 表的分类

6.1.1 实体表

实体表:一般是指一个实现存在的业务对象,比如用户、商品、商家、销售员等等。
在这里插入图片描述

6.1.2 维度表

维度表:一般是指对应一些业务状态,编号的解释表。也可以称之为码表。比如地区表,订单状态,支付方式,审批状态,商品分类等等。
在这里插入图片描述
在这里插入图片描述

6.1.3 事务型事实表

事务型事实表:一般指随着业务发生不断产生的数据。特点是一旦发生不会再变化。一般比如:交易流水,操作日志,出库入库记录等等。
在这里插入图片描述

6.1.4 周期型事实表

周期型事实表,一般指随着业务发生不断产生的数据。
与事务型不同的是,数据会随着业务周期性的推进而变化。
比如订单,其中订单状态会周期性变化。再比如,请假、贷款申请,随着批复状态在周期性变化。
在这里插入图片描述

6.2 同步策略

数据同步策略的类型包括:全量表、增量表、新增及变化表。

  • 全量表:存储完整的数据。
  • 增量表:存储新增加的数据。
  • 新增及变化表:存储新增加的数据和变化的数据。

6.2.1 实体表同步策略

实体表:比如用户、商品、商家、销售员等。
实体表数据量比较小:通常可以做每日全量,就是每天存一份完整数据,及每日全量。

6.2.2 维度表同步策略

维度表:比如订单状态,审批状态,商品 分类。
维度表数据量比较小:通常可以做每日全量,就是每天存一份完整数据。即每日全量。
说明:

  1. 针对可能会有变化的状态数据可以存储每日全量。
  2. 没变化的客观世界的维度(比如性别,地区,民族,政治成分,鞋子尺码)可以只存一份固定值。

6.2.3 事务型事实表同步策略

事务型事实表:比如交易流水,操作日志,出库入库记录等。
因为数据不会变化,而且数据量巨大,所以每天只同步新增数据即可,所以可以做成每日增量表,即每日创建一个分区存储。

6.2.4 周期型事实表同步策略

周期型事实表:比如,订单、请假、贷款申请等。
这类表从数据量的角度,存每日全量的话,数据量太大,冗余也太大。如果每日增量无法反应数据变化,则导每日新增及变化量,包括了当日的新增和修改。

第7章 业务数仓搭建

7.1 业务数仓架构图

在这里插入图片描述

7.2 RDS 服务器准备

7.2.1 RDS 服务器购买

阿里云关系型数据库(Relational DataBase Service, 简称 RDS)是一种稳定可靠、可弹性伸缩的在线数据库服务器。

7.5.3 每日增量表同步

1)同步策略:每日增量
每日新增的表包括:ods_order_detail

每日增量的区别就是要按照日期进行过滤,只筛选出今天新产生的数据。
条件:

DATE_FORMAT(create_time,'%Y%m%d') = '${bizdate}'

7.5.4 每日新增及变化表同步

1)同步策略:每日新增及变化
每日新增及变化的表包括:ods_order_info

条件:如果创建时间是当日或者操作时间是当日,则满足条件。

DATE_FORMAT(create_time, '%Y%m%d')='${bizdate}'   or
DATE_FORMAT(operate_time, '%Y%m%d')='${bizdate}'

7.6 DWD层

DWD 层,一般是对 ODS 层数据进行一定的清洗加工,如果是面对关系导入过来的数据表,还要把原本的关系型表结构,进行一定程度的维度退化。作为更易处理的明细数据。

比如:
ODS 地区 + ODS 省份 => DWD 省份地区
ODS 商品信息 + ODS 品牌 + ODS 商品一级分类 + ODS 商品二级分类 + ODS商品三级分类 => DWD 商品信息

7.6.2 手动将数据导入 DWD 层

1)在临时查询中执行

Insert overwrite table dwd_order_info_di partition(ds)
Select id,total_amont,order_status,user_id,payment_way,out_trade_no,province_id,create_time,operate_time,ds
from ods_order_info_di
where ds='${bizdate}' and id is not null; //过滤条件:id不能为空insert overwrite table dwd_order_detail_di partition(ds)
select od.id,order_id,oi.user_id,sku_idsku_name,order_price,sku_num,oi.province_id,od.create_time,od.ds
from ods_order_detail_di od join ods_order_info_di oi and od.ds = '${bizdate}' and od.id is not null;//商品表
insert overwrite table dim_sku_info_df partition(ds)
select sku.id,sku.spu_id,sku.price,sku.sku_name,sku.sku_desc,sku.weight,sku,tm_id,tm.tm_name,sku.category3_id,c2.id category2_id,c1.id cate gory1_id,c3.name category3_name,c2.name category2_name,c1.name category1_name,sku.create_time,sku.ds
from
(select *form ods_sku_info_dfwhere ds='${bizdate}' and id is not null
) sku
join ods_base_category3_df c3 on sku.category3_id = c3.id and c3.ds = '${bizdate}'
join ods baase category2 df c2 on c3.category2_id = c2.id and c2.ds = '${bizdate}'
join ods_base_category1_df c1 on c2.category1_id = c1.id and c1.ds = '${bizdate}'
join ods_base_trademark_df tm on tm.tm_id = sku.tm_id and tm.ds = '${bizdate}';insert overwrite table dim_user_info_df partition(ds)
select id,name,birthday,gender,email,user_level,create_time,ds from ods_user_info_df
where ds='${bizdate}' and id is not null;insert overwrite table dim_base_province_df partition(ds)
select p.id,p.name,p.region_id,r.region_name,p.ds
from ods_base_province_df p join ods_base_region_df r 
on p.region_id = r.id and p.ds='${bizdate}' and r.ds = '${bizdate}';

7.7 DWS层

DWS 层主要指针对明细粒度的数据进行短周期的汇总。DWS 公共汇总层是面向分析对象的主题聚集建模。

在本教程中,最终的分析目标为:最近一天某个类目、某个地区、某类人群购买商品的销售总额、购买力分析。因此,我们可以以最终交易成功的商品、买家、地区等角度对最近一天的数据进行组合 ,组合成为涵盖多个维度的事实宽表。

7.8 ADS层

ADS 层主要是指针对某一个特定的维度进行的汇总。

在本课程中,主要分析三个需求:用户各个年龄段统计、地区销售统计、热门商品排行。所以主要是针对年龄、地区、商品进行汇总统计,统计四个指标下单数、购买商品个数、销售额、平均客单价。

第8章 数据导出与作业调度

将 MaxCompute 中的计算完的结果,需要导入到RDS数据库中,用于后续的可视化。

8.1 创建结果数据库

1)在 RDS 服务器中,新建一个 gmall_adb 数据库,用来保存之后从 MaxCompute 中的结果数据。

8.2 创建商品销售数据同步节点

将ADS层数据导出到 MaxCompute。
1)数据开发 -> 数据集成 -> 新建数据集成节点 -> 数据同步

数据集成:用于 MaxCompute 对外的输入输出。
数据开发:是 MaxCompute 内部层与层之间的脚本编写。
在这里插入图片描述

第9章 数据可视化

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/291750.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

技术分享 | 混合云模式下SaaS端前端最佳实践

导读:集成开放平台采用的是混合云部署架构,包含两个大的组件,管理控制台和引擎。管理控制台是SaaS的,部署在公有云,按租户隔离。引擎部署在客户私有云。一套SaaS版的管理控制台如何适配不同客户的引擎,本文…

记一则Hadoop DataNode OOM故障,以及解决方案

一、故障症状最近公司一个集群跑大任务时,datanode日志报DataXceiveServer: Exiting due to:java.lang.OutOfMemoryError: unable to create new native thread异常,然后计算节点上的DataNode直接挂掉。DataNode异常日志截图如下:2014-03-06 …

阿里云实时数据仓库

阿里云实时数据仓库——学习笔记 课程目标 学习搭建一个实时数据仓库,掌握数据采集、存储、计算、输出、展示等整个业务流程。整个实时数据仓库系统是在阿里云架构上搭建,掌握并学会运用各个服务组件,及各个组件之间如何联动。前置知识要求&…

手动挡五个档位示意图_汽车档位越多越好?听听专业回答

如今的汽车市场百花齐放,汽车厂商们也不断在研发过程中寻找不同的突破口,其中汽车变速器的档位变化就是众多汽车品牌当做噱头的重点,不知从什么时候开始,自动变速箱档位数量变多成为了深受汽车品牌喜爱的突破点,渐渐的…

Android之用netcfg命令获取手机虚拟网卡tun0的信息

1、在终端输入下面命令 adb shell adb netcfg 2、展示结果 3、使用总结 我们得到手机 tun0 地址为10.1.102.11 然后在vpn后台,我们先找到是哪个tun,我们可以使用ip route命令ip route show table2 这个允许结果就是 地址 哪个tun比如我们得到是tun2 然…

C# 基于事件的异步模式

点击蓝字 关注我们开工大吉EventBasedAsyncPattern 方法使用了基于事件的异步模式。这个模式定义了一个带有 “Async” 后缀的方法。示例代码再次使用了WebClient 类。对于同步方法DownloadString,WebClient类提供了一个异步变体方法 DownloadStringAsync。当请求完…

Tomcat 下 Memcached 集群与 Terracotta 集群比较

总结:Terracotta 集群配置要比Memcached 集群简单,但Terracotta 集群启动的速度要比Memcached 集群慢,性能Terracotta 集群要比Memcached 集群好。但性能都好不过weblogic单机的性能!! Terracotta 集群效果图如下&…

IDEA简单配置教程

IDEA简单配置教程 ——做好前期配置工作,后期少走弯路。 创建模块(Module) 设置(Settings) 设置主题 窗体及菜单字体及大小 设置编辑区主题 通过插件(plugins)更换主题 设置鼠标滚轮修改字体大小 设置鼠标悬浮提示 设置自动导包功能 显示行号和方法间的分隔符 忽略…

MariaDB Spider 数据库分库分表实践 分库分表

分库分表一般来说,数据库分库分表,有以下做法:按哈希分片:根据一条数据的标识计算哈希值,将其分配到特定的数据库引擎中;按范围分片:根据一条数据的标识(一般是值)&#…

【树莓派】配置介绍

网络是个好东西,好多同学分享的博文,极大的方便我们学习,谢谢~ 1、初始化配置树莓派 装上新系统,连接到树莓派后,一切都是新的,需要配置树莓派的一些选项。 使用putty连接到树莓派后,输入指令su…

C语言之函数指针和函数的首地址

1、爆简单的代码 因为容易忘记,还是再记录一次吧。 2、展示结果 至于函数指针用法,一眼便知对于add和&add你应该这样理解,add是函数的首地址,它的类型是void (),&add表示一个指向函数add这个对象的地址&#x…

MFC中卡拉OK字体的定时器实现,使用DC的DrawText函数实现

1 void CTextView::OnTimer(UINT_PTR nIDEvent)2 {3 m_nWidth 5; // 在构造函数中初始化为 0;4 5 CClientDC dc( this );6 TEXTMETRIC tm;7 dc.GetTextMetrics( &tm );8 CRect rect;9 rect.left 0; 10 rect.top 200; 11 re…

WPF 基础控件之Window样式

WPF开发者QQ群: 340500857由于微信群人数太多入群请添加小编微信号yanjinhuawechat 或 W_Feng_aiQ 邀请入群需备注WPF开发者 PS:有更好的方式欢迎推荐。01—代码如下一、创建 Window.cs继承System.Windows.Window代码如下。在WPF自定义类库时需要注意在创…

ngModel 值不更新/显示

angular中的$scope是页面(view)和数据(model)之间的桥梁,它链接了页面元素和model,也是angular双向绑定机制的核心。 而ngModel是angular用来处理表单(form)的最重要的指令&#xff…

go获取项目内所有proto_gRPC学习之三:初试GO版gRPC开发

欢迎访问我的GitHubhttps://github.com/zq2599/blog_demos内容:所有原创文章分类和汇总,及配套源码,涉及Java、Docker、Kubernetes、DevOPS等;本篇概览本文《gRPC学习》系列的第三篇,前文已准备好gRPC开发环境&#xf…

服务端架构中的“网关服务器”

这么一个场景:一个要承载高并发、具有高性能的后台服务,往往会有多个不同的应用服务。问题来了,你会怎样设计架构呢?如下图所示,为了共用一个稳定高效的网络处理功能,把所有服务写在一个进程里。接下来悲剧…

一起来庆祝 .NET 20 周年!

你知道吗?.NET 将要迎来 20 周年, 在 20 年前的 2002 年, 微软公布了下一代的软件、服务的愿景和路线,2 月 13 日,Visual Studio .NET 推出,.NET 开发平台的第一个版本正式向世界发布。而现在, .NET 6 成为统一的开发平台&#xf…

不固定图片宽高瀑布流_APP设计学习:瀑布流式的产品UI设计

看到好的APP产品UI设计,真是忍不住想要停留几秒,慢慢来欣赏。今天学堂君收集了近期不错的优质的APP设计作品,看起来极舒服的UI界面,分享给大家。这一期的重点学习:在APP界面设计当中,如何应用瀑布流式的布局…

【Blog.Core开源】网关自定义认证鉴权与传参

书接上文,上回咱们说到了《【Blog.Core开源】网关统一集成下游服务文档》,已经将多个下游服务统一集成到了网关里,并且也把接口文档Swagger给集成了,那今天就说一下认证和鉴权相关的话题。继续说下故事背景在平时开发的时候&#…

HDFS HA与QJM(Quorum Journal Manager)介绍及官网内容整理

问题导读1.HDFS HA与QJM解决了什么问题? 2.HDFS HA与QJM区别是什么? 3.在HA(两个namenode)架构下,如何访问hdfs文件?【使用QJM构建HDFS HA架构(2.2)】本文主要介绍HDFS HA特性,以及如何使用QJM(…