大数据_调度平台_配置DolphinScheduler

配置docker的sudo权限

sudo groupadd docker 
sudo gpasswd -a ${USER} docker 
sudo systemctl restart docker 
#退出shell 重新进入,下面就可以开始测试了
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集群

 # 运行 dolphinscheduler 
 cd  ~/soft/apache-dolphinscheduler-2.0.3-src/docker/docker-swarm
 docker-compose up -d
 docker ps -a


#复制 hadoop-3.2.2.tar.gz 二进制包到 Docker 容器中
#复制 Spark 3.2 二进制包到 Docker 容器中
 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

# 登录到容器并确保 SPARK_HOME2 存在
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

##配置-work上的hadoop的配置文件-客户端 /opt/soft/hadoop/etc/hadoop
#java -version
#whereis java
   /usr/local/openjdk-8/bin/java
# echo $JAVA_HOME
  /usr/local/openjdk-8
  
/opt/soft/hadoop/etc/hadoop/hadoop-env.sh
/opt/soft/hadoop/etc/hadoop/core-site.xml
 hadoop-env.sh  
       # The java implementation to use.
        export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
       # The Hadoop User
       export HADOOP_USER_NAME=hdfs
core-site.xml	     
    <configuration>
    	<property>
    		<name>fs.defaultFS</name>
    		<value>hdfs://*.*.*.*:80**</value>
    	</property>
    </configuration>
	
##配置-work上的spark的配置文件-客户端配置 /opt/soft/spark2/conf
 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目录服务是由目录数据库和一套访问协议组成的系统-- 开源系统(YAPI)
 03.用户  
     admin  -管理员  regular-普通用户
 04.租户:  tenant 
   单租户架构与多租户的区别在于,单租户是为每个客户单独创建各自的软件应用和支撑环境,单租户的模式,每个客户都有一份分别放在独立的服务器上的数据库和操作系统
   多租户是一种架构,目的是为了让多用户环境下使用同一套程序,且保证用户间数据隔离
   多租户在数据存储上存在三种主要的方案,分别是:
       0.1 独立数据库     ###独立数据库(私有表
	   0.2 共享数据库,独立 Schema  ###共享数据库隔离数据框架(扩展表)
	   0.3 共享数据库,共享 Schema,共享数据表-- 表中增加TenantID多租户的数据字段。这是共享程度最高、隔离级别最低的模式 ###共享数据库共享数据框架(通用表)
	重点,在于不同租户间应用程序环境的隔离(application context isolation)以及数据的隔离(data isolation),
	不同租户的权限、角色、用户的详细设定
开发: 驻场开发和离岸开发 -- CI/CT/CD能力(持续集成/持续测试/持续部署)
  设计、开发、测试、部署、运维、运营等全生命周期管理
  评估预算核算机制
 05.具体
  DolphinScheduler 用户 在创建资源时,会使用创建或修改该用户时指定的唯一租户创建;
  DolphinScheduler 用户 在执行任务时,可以指定多个租户中的某个租户执行
    DAG图中设置DAG图名称与选择租户

物质基础-机器

服务器
work  worker 分组--对应work的IP
环境
各个租户下添加环境变量和线上环境的配置参数
          租户
     对应的是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 
posted @ 2022-02-18 11:02  辰令  阅读(891)  评论(0编辑  收藏  举报