配置docker的sudo权限
sudo groupadd docker
sudo gpasswd -a ${USER} docker
sudo systemctl restart docker
docker info
启动Spark集群
cd ~/soft/spark
docker-compose up -d
docker ps -a
spark-spark-1
spark-spark-worker-1
spark-spark-worker2-1
去容器内部配置
docker exec -it spark-spark-1 /bin/bash
cd /opt/bitnami/spark
dolphin集群
cd ~/soft/apache-dolphinscheduler-2.0.3-src/docker/docker-swarm
docker-compose up -d
docker ps -a
docker cp hadoop-3.2.2.tar.gz docker-swarm-dolphinscheduler-worker-1:/opt/soft
docker cp hadoop-3.2.2.tar.gz docker-swarm-dolphinscheduler-worker2-1:/opt/soft
docker cp spark-3.1.2-bin-hadoop3.2.tgz docker-swarm-dolphinscheduler-worker-1:/opt/soft
docker cp spark-3.1.2-bin-hadoop3.2.tgz docker-swarm-dolphinscheduler-worker2-1:/opt/soft
docker exec -it docker-swarm-dolphinscheduler-worker-1 /bin/bash
cd /opt/soft
tar zxf hadoop-3.2.2.tar.gz
rm -f hadoop-3.2.2.tar.gz
mv hadoop-3.2.2 hadoop
$HADOOP_HOME/bin/hadoop version
tar zxf spark-3.1.2-bin-hadoop3.2.tgz
rm -f spark-3.1.2-bin-hadoop3.2.tgz
mv spark-3.1.2-bin-hadoop3.2 spark2
$SPARK_HOME2/bin/spark-submit --version
$SPARK_HOME2/bin/spark-submit --class org.apache.spark.examples.SparkPi $SPARK_HOME2/examples/jars/spark-examples_2.12-3.1.2.jar
/usr/local/openjdk-8/bin/java
/usr/local/openjdk-8
/opt/soft/hadoop/etc/hadoop/hadoop-env.sh
/opt/soft/hadoop/etc/hadoop/core-site.xml
hadoop-env.sh
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
export HADOOP_USER_NAME=hdfs
core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://*.*.*.*:80**</value>
</property>
</configuration>
cd /opt/soft/spark2/conf
cp spark-env.sh.template spark-env.sh
附录说明
说明: 镜像基于 bitnami/minideb 基础镜像,
这是 BitNami 构建的极简 Debian 系统镜像。
Debian 由于系统稳定且内核占用资源小的优势,非常适合作为服务器操作系统
Spark 为各种集群管理器提供了统一的工具来提交作业,这个工具就是 spark-submit
以集群模式运行。可以通过指定 --master 参数
spark-submit --master spark://master:7077 /opt/share/my_script.py
bitnami/spark 镜像中只包含 Hadoop 客户端,并不包含服务器端。因此,如果需要使用 HDFS 和 YARN 功能,还需要部署 Hadoop 集群
\dolphinscheduler-2.0.3\apache-dolphinscheduler-2.0.3-bin\conf\env
dolphinscheduler_env.sh
export HADOOP_HOME=/opt/soft/hadoop
export HADOOP_CONF_DIR=/opt/soft/hadoop/etc/hadoop
export SPARK_HOME1=/opt/soft/spark1
export SPARK_HOME2=/opt/soft/spark2
export PYTHON_HOME=/opt/soft/python
export JAVA_HOME=${JAVA_HOME:-/opt/soft/java}
export HIVE_HOME=/opt/soft/hive
export FLINK_HOME=/opt/soft/flink
export DATAX_HOME=/opt/soft/datax
export PATH=$HADOOP_HOME/bin:$SPARK_HOME1/bin:$SPARK_HOME2/bin:$PYTHON_HOME/bin:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$DATAX_HOME/bin:$PATH
用户中心
用户中心
统一认证服务,人员组织管理,电话簿,地址簿
01.单点登录(Single Sign On),简称为 SSO,是比较流行的企业业务整合的解决方案之一
实现方式:
以Cookie作为凭证媒介
通过JSONP实现
通过页面重定向的方式
处理用户信息的管理以及授权给第三方应用。第三方应用需要登录的时候,则把用户的登录请求转发给用户中心进行处理,
用户处理完毕返回凭证,第三方应用验证凭证,通过后就登录用户
02.LDAP统一认证服务 LDAP,即 Light weight Directory Access Protocal(轻量级目录访问协议)
LDAP目录服务是由目录数据库和一套访问协议组成的系统
03.用户
admin -管理员 regular-普通用户
04.租户: tenant
单租户架构与多租户的区别在于,单租户是为每个客户单独创建各自的软件应用和支撑环境,单租户的模式,每个客户都有一份分别放在独立的服务器上的数据库和操作系统
多租户是一种架构,目的是为了让多用户环境下使用同一套程序,且保证用户间数据隔离
多租户在数据存储上存在三种主要的方案,分别是:
0.1 独立数据库 ###独立数据库(私有表
0.2 共享数据库,独立 Schema ###共享数据库隔离数据框架(扩展表)
0.3 共享数据库,共享 Schema,共享数据表
重点,在于不同租户间应用程序环境的隔离(application context isolation)以及数据的隔离(data isolation),
不同租户的权限、角色、用户的详细设定
开发: 驻场开发和离岸开发
设计、开发、测试、部署、运维、运营等全生命周期管理
评估预算核算机制
05.具体
DolphinScheduler 用户 在创建资源时,会使用创建或修改该用户时指定的唯一租户创建;
DolphinScheduler 用户 在执行任务时,可以指定多个租户中的某个租户执行
DAG图中设置DAG图名称与选择租户
物质基础-机器
服务器
work worker 分组
环境
各个租户下添加环境变量和线上环境的配置参数
租户
对应的是Linux服务器上的用户,用于worker提交作业所使用的用户
若Linux没有该用户,就导致任务失败或创建该用户(参数:workerTenantAutoCreate)
队列对接YARN资源队列
在DolphinScheduler中创建队列,并不会影响到YARN调度器的队列配置
队列
FIFO Scheduler把应用按提交的顺序排成一个队列,这是一个先进先出队列
Capacity 调度器允许多个组织共享整个集群,每个组织可以获得集群的一部分计算能力。
通过为每个组织分配专门的队列,然后再为每个队列分配一定的集群资源,这样整个集群就可以通过设置多个队列的方式给多个组织提供服务了
通知组:选择通知策略||超时报警||发生容错时,会发送流程信息或邮件到通知组里的所有成员
指DolphinScheduler的用户
用户分类 主要职责
管理员 创建普通用户并授权
通常管理员不执行工作流
Worker分组管理、环境管理
普通用户 创建项目、工作流
执行和监控工作流
关键词-工作流程
Directed Acyclic Graph,简称DAG
project project-list
workflow Process
task
parameter built-in global local
datasource
Schedule mode: Timed schedule Dependency Priority
架构和组件-启动流程
MasterServer : Distributed Quartz MasterSchedulerThread MasterExecThread MasterTaskExecThread
WorkerServer: FetchTaskThread 通过gRPC通信获取远程日志信息
ZooKeeper Task Queue
DolphinScheduler使用ZooKeeper分布式锁来实现 同一时刻只有一台Master执行Scheduler,或者只有一台Worker执行任务的提交。
插件:
关注扩展org.apache.dolphinscheduler.alert.api.AlertChannelFactory接口 https://github.com/apache/dolphinscheduler/issues/3049
org.apache.dolphinscheduler.spi.task.TaskChannel
参考
https://github.com/bitnami/bitnami-docker-spark/blob/master/docker-compose.yml
使用 Docker 快速部署 Spark + Hadoop 大数据集群 https://zhuanlan.zhihu.com/p/421375012
使用DolphinScheduler调度Python任务 :https://blog.csdn.net/Yellow_python/article/details/122243141
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· 【.NET】调用本地 Deepseek 模型
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)