海豚调度 Dolphinscheduler-3.2.0/DolphinScheduler-3.1.9 离线部署 伪集群模式

2 篇文章 0 订阅
1 篇文章 0 订阅

Dolphinscheduler-3.2.0(离线)伪集群模式

一、依赖(前置准备工作)

1.JDK:版本要求 JDK(1.8+),安装并配置 JAVA_HOME 环境变量,并将其下的 bin 目录追加到PATH 环境变量中;
2.数据库:PostgreSQL(8.2.15+) 或者MySQL(5.7+),两者任选其一即可,如 MySQL 则需要 JDBC Driver 8.0.16;
3.注册中心:ZooKeeper(3.8.0+);
4.进程树分析:
(1).macOS 安装 pstree;
(2).Fedora/Red/Hat/CentOS/Ubuntu 安装psmisc;
注意:Dolphinscheduler 本身并不依赖 Hadoop、Hive、Spark 等,但若运行的任务需要依赖,就需要有对应的环境支持.
5.下载需要安装的二进制包(对应版本)

二、准备 DolphinScheduler 启动环境(官网教程解读)

1.配置用户免密及权限

创建部署用户,且一定要配置 sudo 免密。以创建 dolphinscheduler 用户为例

# 创建用户需使用 root 登录
useradd dolphinscheduler
# 添加密码
echo "dolphinscheduler" | passwd --stdin dolphinscheduler
# 配置 sudo 免密
sed -i '$adolphinscheduler  ALL=(ALL)  NOPASSWD: NOPASSWD: ALL' /etc/sudoers
sed -i 's/Defaults    requirett/#Defaults    requirett/g' /etc/sudoers
# 修改目录权限,使得部署用户对二进制包解压后的 apache-dolphinscheduler-*-bin 目录有操作权限
chown -R dolphinscheduler:dolphinscheduler apache-dolphinscheduler-*-bin
chmod -R 755 apache-dolphinscheduler-*-bin

注意:
(1).因为任务执行服务是以 sudo -u {linux-user} 切换不同 linux 用户的方式来实现多用户运行作业,所以部署用户需要有 sudo 权限,而且是免密的。初学者弱不理解,可暂时忽略这一点;
(2).若发现 /etc/sudoers 文件中有 “Defaults requirett” 这行,也请注释掉(##)

2.配置机器 SSH 免密登录

由于安装的时候需要向不同机器发送资源,so 要求各台机器间能实现 SSH 免密登录;配置步骤:

# 先切到 dolphinscheduler 用户
su dolphinscheduler
# 执行下面命令行
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

注意:
配置完成后,可以通过运行命令 ‘ssh localhost’ 判断是否成功,若不需要输入密码就能 ssh 登录则证明成功;

3.启动 zookeeper

进入 zookeeper 的安装目录,将 zoo_sample.cfg 配置文件复制到 conf/zoo.cfg,并将 conf/zoo.cfg 中 dataDir 中的值改成 dataDir=./tmp/zookeeper

# 启动 zookeeper (root启)
./bin/zkServer.sh start

4.修改相关配置

完成基础环境的准备后,需要根据你的机器环境修改配置文件。配置文件可在目录 bin/env/ 中找到,他们分别是 install_env.sh 和 dolphinscheduler_dnv.sh。

(1).修改 install_env.sh 文件

文件 install_env.sh 描述了那些机器将被安装 DolphinScheduler 以及每台机器对应安装哪些服务。您可以在文件 bin/env/install_env.sh 中找到对应参数。使用 ‘vi bin/env/install_env.sh’ 或者 ‘vim bin/env/install_env.sh’即可打开编辑此文件。

# ---------------------------------------------------------
# INSTALL MACHINE
# ---------------------------------------------------------
# Due to the master, worker, and API server being deployed on a single node, the IP of the server is the machine IP or localhost
ips="localhost"
sshPort="22"
masters="localhost"
workers="localhost:default"
alertServer="localhost"
apiServers="localhost"
# DolphinScheduler installation path, it will auto-create if not exists
installPath=~/dolphinscheduler
# Deploy user, use the user you create in section **Configure machine SSH password-free login**
deployUser="dolphinscheduler"

(2).修改 dolphinscheduler_env.sh 文件

文件 ./bin/env/dolphinscheduler_env.sh 描述了下列配置:
– DolphinScheduler 的数据库配置,详情见[初始化数据库]
– 一些任务类型外部依赖路径或库文件,如 JAVA_HOME 和 SPARK_HOME 都是在这里定义的
若您不适用某些任务类型,可忽略任务外部依赖项,但您必须根据您的环境更改 JAVA_HOME、注册中心和数据库相关等等配置。

# JAVA_HOME, will use it to start DolphinScheduler server
export JAVA_HOME=${JAVA_HOME:-/opt/soft/java}
# Database related configuration, set database type, username and password
export DATABASE=${DATABASE:-postgresql}
export SPRING_PROFILES_ACTIVE=${DATABASE}
export SPRING_DATASOURCE_URL="jdbc:postgresql://127.0.0.1:5432/dolphinscheduler"
export SPRING_DATASOURCE_USERNAME={user}
export SPRING_DATASOURCE_PASSWORD={password}
# DolphinScheduler server related configuration
export SPRING_CACHE_TYPE=${SPRING_CACHE_TYPE:-none}
export SPRING_JACKSON_TIME_ZONE=${SPRING_JACKSON_TIME_ZONE:-UTC}
export MASTER_FETCH_COMMAND_NUM=${MASTER_FETCH_COMMAND_NUM:-10}
# Registry center configuration, determines the type and link of the registry center
export REGISTRY_TYPE=${REGISTRY_TYPE:-zookeeper}
export REGISTRY_ZOOKEEPER_CONNECT_STRING=${REGISTRY_ZOOKEEPER_CONNECT_STRING:-localhost:2181}
# Tasks related configurations, need to change the configuration if you use the related tasks.
export HADOOP_HOME=${HADOOP_HOME:-/opt/soft/hadoop}
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-/opt/soft/hadoop/etc/hadoop}
export SPARK_HOME=${SPARK_HOME:-/opt/soft/spark}
export PYTHON_LAUNCHER=${PYTHON_LAUNCHER:-/opt/soft/python}
export HIVE_HOME=${HIVE_HOME:-/opt/soft/hive}
export FLINK_HOME=${FLINK_HOME:-/opt/soft/flink}
export DATAX_LAUNCHER=${DATAX_LAUNCHER:-/opt/soft/datax/bin/python3}
export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PYTHON_LAUNCHER:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$DATAX_LAUNCHER:$PATH

5.初始化数据库

请参考[数据源配置]伪分布式/分布式安装初始化数据库 创建并初始化数据库

提示:

初始化数据库简单来说于此处就是在 mysql 数据库的 dolphinscheduler 数据库中建一些存放元数据的表(tools中mysql下后缀为ddl.sql的那个sql脚本),其次就是插入一下基础数据比如登录验证用的 admin用户的数据等等(tools中mysql下后缀为dml.sql的那个sql脚本)
这里可以自己在mysql中创建 dolphinscheduler 用户,建 dolphinscheduler 库,然后调用对应的两个脚本(初始化后有88个表,记得检查下别缺失了)

6.启动 DolphinScheduler

使用上面创建的部署用户(dolphinscheduler)运行以下命令完成部署,部署后的运行日志将存放在 logs 文件夹内(各个server 服务节点下都有 logs 文件夹,大家可以到其中找到对应的 server 报错日志文件,例如实时查看 alert-server的 logs 文件命令行:’tail -400f dolphinscheduler/alert-server/logs/alert-server-pt23amlupz5x.out’)

bash ./bin/install.sh

注意:
第一次部署的话,可能出现 5 次 sh: bin/dolphinscheduler-daemon.sh: No such file or directory 相关信息,此为非重要信息直接忽略即可

6.启停服务

# 一键停止集群所有服务
bash ./bin/stop-all.sh
# 一键开启集群所有服务
bash ./bin/start-all.sh
# 启停 Master
bash ./bin/dolphinscheduler-daemon.sh stop master-server
bash ./bin/dolphinscheduler-daemon.sh start master-server
# 启停 Worker
bash ./bin/dolphinscheduler-daemon.sh start worker-server
bash ./bin/dolphinscheduler-daemon.sh stop worker-server
# 启停 Api
bash ./bin/dolphinscheduler-daemon.sh start api-server
bash ./bin/dolphinscheduler-daemon.sh stop api-server
# 启停 Alert
bash ./bin/dolphinscheduler-daemon.sh start alert-server
bash ./bin/dolphinscheduler-daemon.sh stop alert-server

7.登录 DolphinScheduler

浏览器访问地址 ‘http://localhost:12345/dolphinscheduler/ui’ 即可登录系统 UI。默认的用户名和密码是 ’admin/dolphinscheduler123’

注意:

这是本地部署伪集群模式,若远程在服务器上部署则此处地址中的 ’localhost’ 需要换成服务器的 ip,需保证连接的畅通,例如服务器 ip 是12.34.56.78 ,本地 cmd 命令行到服务器 12345 端口号连通检查命令行:’telnet 12.34.56.78 12345’(执行此命令前提: 12345 端口号处于被监听状态)

8.快速配置文件&启动

(1).每个服务在路径 /conf/dolphinscheduler_env.sh 中都有 dolphinscheduler_env.sh 文件,这是可以为微服务需求提供便利。意味着您可以基于不同的环境变量来启动各个服务,只需要在对应服务中配置 /conf/dolphinscheduler_env.sh 然后通过 /bin/start.sh 命令启动即可。但若您使用命令 /bin/dolphinscheduler-daemon.sh start 启动服务器,它将会用文件 bin/env/dolphinscheduler_env.sh 覆盖 /conf/dolphinscheduler_env.sh 然后启动服务,目的是为了减少用户修改配置的成本.
(2).服务用途请具体参见 <<系统架构>> 小节。Python gateway service 默认与 api-server 一起启动,若您不想启动 Python gateway service 请通过更改 api-server 配置文件 api-server/conf/application.yaml 中的 python-gateway.enabled : false 来禁用它。

三、配置参数

1.外部依赖路径(./bin/env/dolphinscheduler_env.sh)

略(由于网上有不少,就不做赘述了,有疑问可以放评论区大家一起讨论)

2.(bin/env/install_env.sh)

略(由于网上有不少,就不做赘述了,有疑问可以放评论区大家一起讨论)

四、问题点及解决方案:

1.Q:初始化数据库失败!?

A:

复制对应的sql 脚本路径,直接登录 mysql 调用脚本建表,和插入admin的相关数据(文件路径一般在:tools/sql 下面,我们用的mysql数据库,所以就直接找mysql的数据库就好)

2.Q:初始化成功后一直启动失败!?

A:

经过找日志看日志分析日志上网查等等一系列动作搞下来发现:版本兼容有要求!!即:
安装最新版的dolphinscheduler-3.2.0 需要配套最新版本的zookeeper-3.8.0
所以重装 zookeeper !

3.Q:路径、IP 和端口等参数怎么确保不出错?

A:

最简单管用的方式就是打开对应的依赖配置文件(如果怕记错的话),对照着填,其实也不多,就几个端口:zookeeper:2181、mysql:3306…(具体看配置)

4.Q:网络遇到过什么比较典型的问题吗?

A:

请确保网络通畅!!!
若是非本地部署,远程部署,可能需要开网策,确保源 IP 到 ’服务器:端口’畅通
检查端口号(telnet命令&'ss -lnt’命令)

5.Q:一个是工作流上线运行后没有实例的问题?

A:

经过看官网视频教程,加上询问大拿,才得知 3.2.0 版本并不成熟且不建议投产,目前最成熟的是 3.1.9 版本,故而需要重装 3.1.9 版本.

6.Q:没有找到日志信息,并且在bin中也没看见log相关的server,请问是版本变动吗?

A:

因为 3.2.0 版本此时尚不成熟,所以只能重装 3.1.9 版本.
提示:3.1.9 中将log分拆到了不同的服务中

7.Q:关于打印出来的日志时间不对的问题怎么解决?

A:

更改配置文件’./bin/env/dolphinscheduler_env.sh’中的参数’SPRING_JACKSON_TIME_ZONE’为:‘GMV+8’即可(可由文件’./tools/bin/upgrade-schema.sh’定位到此变量)

8.Q:重装 DolphinScheduler-3.1.9 有什么需要注意的吗?

A:

简单来说还是那几个点:
1.数据库的初始化大概率需要创建 mysql 的 dolphinscheduler 用户 和 dolphinscheduler 库后登录 mysql 数据库,直接用 source + path/to/sql.sql 命令执行 sql 脚本进行数据库初始化;
2.在执行 bin/install.sh 后,还需到安装路径中分别更改各个 server 中的配置文件(例如: alert-server/conf/application.yaml),比较暴力的方式是将所有数据库驱动和数据库 ip & 端口 都改成自己对应的参数.(比如我是mysql,就把mysql和postgretsql的驱动,ip&端口之类的参数全部换成mysql的参数)
3.mysql的jar包需要复制到各个服务下的 libs 文件夹中
4.待续…

  • 24
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值