技术升级学习新的大数据开源框架

Apache Dolphin Scheduler

新版2.0.5

特性:
  • 简单易用
  • 高可靠性
  • 高扩展性
  • 丰富的使用场景
核心架构
  • MasterServer
    采用无中心设计理念主要负责DAG任务切分 任务提交 任务监控 同时监听其他MasterServer 和WorkerServer的健康状态。

  • WorkerServer
    也采用分布式无中心设计理念 主要负责任务的执行和提供日志服务。

  • Zookeeper 服务
    系统中的MasterServer 和WokerServer 都通过ZK来进行集群管理和容错。

  • Alert 服务
    提供告警相关的服务

  • API接口层
    处理前段UI层的请求

  • UI
    系统前端页面 可视化操作
    工作流—>> 一个流程,单个的是一个任务。

  • 核心架构图:
    请添加图片描述
    接口调用----->>>工作流元数据存储到DB–>>定时触发执行。
    Worker 会抢占式 执行任务
    Logger Server 查看任务的日志
    Master Server 容错。利用Zookeeper。

部署模式
单机模式
所有服务都是位于一个进程中 standalone 中
伪集群模式
Pseudo-Cluster 模式 同一台机器部署。   不同的服务位于不同的进程中
集群模式
部署说明
  • 操作系统版本
  • 服务器硬件要求 四核 + 8G+ SAS 千兆网卡。实例1+
  • 16G—3台。6-3-3。8-3-3.
集群规划
准备工作
  • 部署JDK 相关环境变量。
  • 部署数据库MySQL 5.7+ 或PostgreSQL 8.2.15+
  • 部署Zookeeper3.4.6+
  • 部署psmisc 进程树分析工具 yum install
    ds 安装包 + mysql-connector-java
    当前的解压目录 不是最终的安装目录。****
创建元数据库
MySQL 密码校验级别 0 只校验长度 1,2 会校验内容。
授予用户访问权限。
配置一键部署 脚本 部署核心过程

install_config.conf

  • ips
  • sshPort
  • masters
  • workers
    主机名+workerGroup work 组
  • alertServers
  • pythonGatewayServers :利用Python API处理
  • installPath
    安装路径 当前用户有权限访问的路径。
  • deployUser
    sudo 用户 免密
  • databaseDirPath
  • JavaHome
  • apiServerPort
  • DB
    DB type URL username password
  • Zookeeper
  • registryNameSpace ZK注册节点
  • resourceStorageType ;资源存储类型
    外部资源 MR jar包。资源中心。HDFS,S3 None
  • defaultFS
    HA : 把core-site.xml 和hdfs-site.xml 放在 conf 目录下
  • yarnHaIps singleYarnIp 是否HA
  • hdfsRootUser。 超级用户。会利用这个用户上传到资源中心。
初始化数据库,一键部署。
基础使用

安装目录 bin 下 dolpinscheduler-daemon.sh 可以起停各种服务api-server 等。

安全中心配置
  • Yarn 队列管理
    维护一个队列选项。不会影响到Yarn的配置。
    Shell 脚本不需要队列选项。 只有提交到Yarn的任务才会用到。

  • 租户管理
    多租户环境。 其实指的就是Hadoop集群的租户。需要从DS 向Yarn提交任务
    租户 是用worker 节点上的操作系统用户 。worker执行任务。 如果没有该租户 默认报错。
    worker.properties 中 有一个worker.tenant.auto.create=true 可以自动创建租户。

  • 用户管理
    登陆DS的用户
    管理员用户 : 管理员有授权和用户管理等权限,没有创建项目和工作流定义的操作的权限。
    普通用户。 项目创建 工作流的创建编辑和执行等。

    用户提交任务默认使用的租户是

  • 告警实例 和告警组的管理 一个告警组 多个实例

  • worker 分组的管理
    同一个Worker 可以属于多个分组。

  • 环境管理
    环境变量 配置。 环境描述信息 环境所属的Worker 组。
    必选worker 组。 否则选不了

  • 令牌管理
    通过接口访问 时 需要 认证。

     必须 做的  租户管理 和用户管理。
    
项目管理
  • 工作流定义。执行一次生成一个工作流实例。
  • 任务实例
工作流定义

支持任务类型
shell SQL PROCEDURE
PYTHON DEPENDENT 依赖节点。HTTP 请求 DATAX 。
任务优先级–>>>
资源不足的时候 执行的优先级程度。
Worker 节点 线程数资源 不足时 任务优先级高先执行。
要执行一个Hive的任务—>> 需要保证执行任务节点有Hive 创建一个Worker 组,包含一台有Hive的机器 向他提交。

一个组下 有多个环境。 可选。

可以指定前置任务。 前置 依赖节点。

工作流执行

失败策略;
继续 / 结束。 一个任务失败之后 并行的任务是否继续执行。
是否补数?

定时任务 也需要上线。

DolphinScheduler 进阶— 工作流传参

1.工作流传参:
本地参数和全局参数。
本地参数---->>>> 只针对 单个任务节点有效的参数。
全局–>>>> 针对整个工作流都有效的参数。
自定义参数—>>
IN 给当前的节点传参。
OUT。给下一个节点传参。
参数可以DS 传入的动态参数。
可以在工作流上设置全局参数。
本地参数和全局参数 名字一致时 采用本地参数。 本地参数优先级更高。

2.上下游参数传递
只有Shell SQL 和Procedure 支持。
echo ‘${setValue(key=value)}’ 为固定写法。

3.工作流传参: 参数优先级
如果有空值 则 优先非空值。
本地参数>上游传递参数>全局参数。 ¥¥¥¥
4. 内置参数
system.biz.date 定时时间前一天 yyyyMMdd
system.biz.curdate 定时时间 yyyyMMdd
system.datetime 定时时间 yyyyMMddHHmmss
基础内置参数 不能调整格式。
衍生内置参数
自定义格式
$[yyyyMMdd] $[yyyy-MM-dd]
使用add_months() 函数
$[add_month(yyyyMMdd,12N)] 后N年
$[add_month(yyyyMMdd,-N)] 后N月
$[yyyyMMdd+7
N] 后N周
$[yyyyMMdd+N] 后N天
$[yyyyMMdd+N/24] 后N小时

5.引用依赖资源。
指的是文件资源 Jar包
放在资源中心。
文件管理 /UDF 管理。

  1. 告警通知
    邮箱开启SMTP 服务
    QQ邮箱—QQ邮箱服务器—其他邮箱163服务器–
    其他邮箱【SMTP,SMTP推,POP3拉】
    需要给DS 准备一个邮箱 启用SMTP 协议
    用于发邮件。POP3 用于接收邮件。
    记录第三方 授权码。

    告警组。告警实例。
    切换 管理员用户。
    配置告警实例 25号端口。
    告警实例需要位于告警组中。
    一个告警组 有多个实例 多种方式。

  2. 工作流失败重跑
    报错之后 找工作流实例。
    可以重跑 或恢复失败。

2022-08-07-17:50


Apache Dolphin Scheduler

1.3.3 Version

架构说明
  1. 安装 去中心化 初始化

  2. DS 资源中心 Spark 任务

  3. 操作Hive。 Hive 数据源。 连接Hive Server2 -->>>> 运行SQL 。
    选择类型: 查询或者非查询类型
    HiveServer2 3.1.2 存在HUG

  4. dataX 节点
    可以配置为Json 文件。
    定义参数 dt dn

  5. 参数使用
    系统参数。 ~ system.biz.date

  6. 子节点使用
    子节点 复用工作流。
    spark 任务 + 复用DataX 的工作流 可以嵌套多个工作流。

DataX

概述

DataX3.0

https://www.bilibili.com/read/cv13759956

异构数据源 离线同步工具。
设计理念-- 插件式。请添加图片描述

MySQL —>>>MySQL Reader ----FrameWork —>> HDFS Writer---->> HDFS

Reader。 数据采集模块 负责 采集数据源的数据 将数据发给Framework
Writer 数据写入模块 负责不断向Framework去数据 并将数据写入到目的端
Framework 用于连接reader和Writer 作为二者的数据传输通道 并处理缓冲 流控,并发,
数据转换等核心技术问题。

运行原理

请添加图片描述

  1. Job 单个作业的管理节点 负责数据清理 子任务划分 taskGroup 监控管理。
  2. Task 由Job 切分而来 时DataX 作业的最小单元 每一个Task 负责一部分数据的同步工作。
  3. Schedule:将Task组成了Task Group 单个Task Group的并发数量为 5
  4. TaskGroup : 负责启动Task

请添加图片描述

与Sqoop 的对比

请添加图片描述
Sqoop 默认4个Map任务。
DataX 可以打满带宽。
DataX3.0
前置 --Linux JDK 1.8+ Python 2.6.X
job.json json 模版。
plugin 中是各种数据源的依赖。
reader。 writer 。
有最终结果统计。

使用案例

stream 流–>>> 控制台
-r reader。-w writer
总条数 = channel* slice RecordCount 。

高可用配置:
hadoopConfig: 在Parameter中。
HDFS ---->>>> MySQL
hdfsreader -->> mysql Writer 写入的时候 不能写*
mysql writer 不需要写类型。

Oracle :

19C. 安装 // 图形化安装。
指定路径下有 netca 默认端口1521.
varchar2 。

从Oracle 到MySQL 到HDFS
OracleReader 里不要用* 业务库会发生变化。
Oracle JDBC ~。

MongoDB

基于分布式文件存储的开源数据库系统
内置GridFS
优缺点:
请添加图片描述

基础概念

文档索引
请添加图片描述
注意:
1.文档中的键值对 是有序的
2.MongoDB 区分类型和大小写
3.MongoDB 的文档 不能有重复的键。
4. 文档的键是字符串 除了少数情况 键可以使用任意的UTF-8 字符。

DataX MongoDB 导出到MySQL ,HDFS

27017 默认端口。 pgrep -f mongod
ps -ef|grep mongod| grep -v grep|awk ‘{print $2}’

SQL Server

MSSQL  微软的SQL 
show database 不支持。
执行语句+go。

案例
SQL server —>>> HDFS
默认1433 端口

SQL Server Reader 

DB2

IBM 的关系型数据库
instance---- db–schema----table
金融公司用的多。
server_dec .
切换到root 用户进行安装。 执行 db2_install
集群 需要安装 purescal
需要 db2inst1 db2fenc1 两个用户
list tables 所有的表结构

DB2—>>> MySQL /HDFS

DataX 优化。 执行流程源码分析

请添加图片描述

黄色 Job部分执行节点
蓝色 Task部分的执行阶段
绿色 框架执行阶段。

Reader---- Channel 的限速
入口类。com.alibaba.datax.core.Engine . ctrl+N 搜索类。
并发数的确认
byte record channel 。
切分了解。
reader 和writer 满足1:1 的关系。
调度:
确定组数。 分组算法。
轮询。
调度实现。
执行模式。—>> stand alone
利用线程池 执行。
数据传输。 限速的实现
速率过快 sleep 一会儿。
DataX 优化
1. 关键参数
➢ job.setting.speed.channel : channel 并发数
➢ job.setting.speed.record : 2 全局配置 channel 的 record 限速
➢ job.setting.speed.byte:全局配置 channel 的 byte 限速
➢ core.transport.channel.speed.record:单个 channel 的 record 限速
➢ core.transport.channel.speed.byte:单个 channel 的 byte 限速
2.优化:
1. 提升每个Channel 的速度
2. 提升DataX Job内的Channel 并发数
3. 配置全局Byte 限速及单Channel Byte 限速。
4. 配置全局Record限速 及单Channel Record 限速
5. 直接配置Channel :上面两种未设置 这个才会生效。
3. 提高JVM堆内存。4G—8G
4. 一般 不会OOM 采集数据。

Apache Sqoop

1.4.6。1与2 不兼容。 2不用于 生产。

安装,简单使用案例

RDBMS—>>>HDFS 导入
HDFS—>>>. MySQL. 导出
1全部导入
2 查询导入
单引号 and $CONDITIONS 保证数据的有序。
双引号 " and $CONDITIONS" 需要转义。
3 指定列。
columns 列名。
4 查询条件导入
where
query 和where 不能一起使用。

数据导入Hive

–hive-import, --hive-table --hive-overwrite
该过程分为两步. 会自动创建表。
第一步将数据导入HDFS 而后将数据迁移到Hive仓库 第一步的临时目录 是 /user/atguigu/表名

数据到HBase

相关参数
–columns --column-family --hbase-create-table --hbase-row-key
与Hbase 。1.3.1 不兼容 不能创建表 只支持 Hbase 1.0.1 之前版本自动建表。

导出数据

不支持Hbase 到MySQL
支持Hive/HDFS 到MySQL MySQL表没有 不会被自动创建。

脚本调用

–option-file。~文件。

常用命令和参数

StarRocks

分布式架构 MPP 数据库。
OLAP 多维分析
实时数据分析
高并发查询。
统一分析。

基本概念

FE
BE
Broker
StarRocksManager :StarRocks 的管理工具
Tablet StarRocks 中表的逻辑分片。 副本管理的基本单位。 每个表根据分区 和分桶的机制被划分成多个Tablet 存储在不同的BE节点。
version 1.19.1
部署StarRocks

starRocks 列式存储 和稀疏索引

列式存储。
维度列+ 指标列。
列前缀索引匹配。
表中 组织由 三部分组成
short key index表 1024 行 构成一个逻辑块 产生稀疏索引。

per-column data block 每一列数据按照64KB分块存储。 数据块作为单位单独编码压缩 也作为IO单位 整体写回设备或者读出。
Per-column cardinal index 每个列数据有各自的行号索引表 列的数据块 和行号索引项一一对应。 用数据行的行号查找行号索引表。

加速数据处理

预先聚合:
支持聚合模型
分区分桶:
多个Tablet 副本冗余存储在BE上
RollUp表索引:
稀疏索引提高效率
列级别的索引技术:
列级别Bloom Filter ZoneMap 通过数据范围快速过滤待查找值。可计算出满足一定条件的行。

starRocks 表模型 / 四种

明细模型
存放明细数据。
聚合模型
更新模型
主键模型

主键模型是更新模型的升级版

明细模型:
所有历史数据 不会进行聚合。
排序键 需要是建表的前几列。
聚合模型
会自动合并 不要看明细数据。
老数据不会被频繁修改。
更新模型

用户需要实时更新操作。频繁的插入 和更新。
指定唯一索引。 UNIQUE_KEY 。

主键模型
更新模型升级版本  更新模型 会进行明细合并 更好解决了行级的的更新操作。
1. 数据冷热特征   最近几天的数据才需要修改 老的冷数据很少需要修改
2. 大宽表 主键索引内存相对可控。
	一个主键只存一条数据 新的会覆盖旧的。

更新模型存的数据量比主键模型大一些,主键模型占用比较少。

排序键和物化视图

排序键 必须要保证顺序。
排序键 符合MySQL 的索引规则。 缺少最佳 左前缀 规则 索引会失效。 符合前缀 拍序列 不能超过3列。字节数 不超过36字 节 不包含FLOAT/DOUBLE类型的列。
---- 物化视图
MVs。
使用场景:
固定维度的聚合分析 和对原始明细数据任意维度的分析。

BitMap 索引

需要对Filter 查询有明显加速效果。
存储体积很小。速度快。

布隆过滤器

多个哈希函数。   存在误判率。
只和in 和= 过滤查询有加速效果。

数据导入与查询

streamLoad
brokerLoad
异步导入。
Routine Load
例行导入方式。通过这种方式StarRocks 支持从Kafka 持续不断的 导入数据 并且支持通过SQL 控制导入任务的暂停 重启停止。
Kafka 集群 无认证或SSL方式认证。 version 0.10.0+
简单导数据逻辑
Spark Load?? 有点问题/?
Insert Into 导入

Flink Connector

StarRocks 连接Flink 。

DataX Writer
StarRocks Colacate Join
外部表

Hive /MySQL 。
MySQL 外部表。StarRocks 读取 同步
Hive外部表。 会获取分区元数据失败。---->>>
支持StarRocks 外部表和ES外部表。

StarRocks 数组的使用
ARRAY	
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值