Dolphinscheduler-3.2.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 serverexport JAVA_HOME=${JAVA_HOME:-/opt/soft/java}
# Database related configuration, set database type, username and passwordexport 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 configurationexport 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 centerexport 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.有问题大家放评论区一起探讨相互学习!

6.待续…

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

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

相关文章

我的NPI项目之行业黑话 -- 电子/机构/软件/认证

因为最近的NPI项目&#xff0c;参加了很多项目的会议&#xff0c;有电子/机构/软件/认证相关的各方面的专业词汇就出现了。这里我将之称为黑话&#xff0c;就是对我&#xff08;纯软件) 来说是黑盒的话。这里简单记录并用于理解。 EE有关&#xff1a; Layout&#xff0c;一直…

基于Qt之QChart 图表(优美的曲线图案例)

## 项目演示 平台:ubuntu18.04 Qt版本:QT5.14.2 源码位置GitCode:https://gitcode.com/m0_45463480/QCharts/tree/main ## QChart 图表 自从 Qt 发布以来,给跨平台的用户带来很多便利。在 Qt5.7 之前,Qt 在开源社区版本里没有 Qt Charts(自带的绘图组件库)。这使得像…

安卓开发学习笔记

Android发展历史 开发工具 Android Studio 安装工具 下载页面&#xff1a;下载 Android Studio 和应用工具 - Android 开发者 | Android Developers 安装步骤 要求代理&#xff0c;关闭就可以 下载SDK 完成后创建新项目 努力学习中~

12-28

#include <iostream>using namespace std; class Person {int *age;string &name; public:void ss(){cout<<"年龄:"<<*age<<endl<<"名字:"<<name<<endl;}//拷贝构造函数(深拷贝&#xff09;Person(const Pe…

docker学习(二十一、network使用示例container、自定义)

文章目录 一、container应用示例1.需要共用同一个端口的服务&#xff0c;不适用container方式2.可用示例3.停掉共享源的容器&#xff0c;其他容器只有本地回环lo地址 总结 二、自定义网络应用示例默认bridge&#xff0c;容器间ip通信默认bridge&#xff0c;容器间服务名不通 自…

C++ DAY1 作业

1.定义自己的命名空间myspace&#xff0c;并在myspace中定义一个字符串&#xff0c;并实现求字符串长度 #include <iostream>using namespace std; namespace myspace {string str;int length_fun(){getline(cin,str);int i 0;while(str[i] ! \0){i;}return i;}} using…

数字反转(升级版)#洛谷

题目背景 以下为原题面&#xff0c;仅供参考: 给定一个数&#xff0c;请将该数各个位上数字反转得到一个新数。 这次与 NOIp2011 普及组第一题不同的是&#xff1a;这个数可以是小数&#xff0c;分数&#xff0c;百分数&#xff0c;整数。整数反转是将所有数位对调&#xff…

案例214:基于微信小程序的水果销售系统的设计与实现

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder …

【网络安全 | 指纹识别工具】WhatWeb使用详析

前言 WhatWeb 是一款用于识别 Web 应用程序和 Web 服务器的开源工具。它可以识别网站使用的编程语言、Web 框架、Web 服务器软件、Web 应用程序等信息&#xff0c;从而帮助安全测试人员快速了解目标网站的技术特征&#xff0c;发现可能存在的漏洞。 本文将对 WhatWeb 的使用方法…

git 如何将某个分支的某个提交复制到另外一个分支

请直接去看原文: 原文链接:git 如何将某个分支的某个提交复制到另外一个分支_gitlab里面的markdown文件可以复用其他分支的吗-CSDN博客 --------------------------------------------------------------------------------------------------------------------------------…

184.【2023年华为OD机试真题(C卷)】IPv4地址转换成整数(位运算实现JavaPythonC++JS)

请到本专栏顶置查阅最新的华为OD机试宝典 点击跳转到本专栏-算法之翼:华为OD机试 🚀你的旅程将在这里启航!本专栏所有题目均包含优质解题思路,高质量解题代码,详细代码讲解,助你深入学习,深度掌握! 文章目录 184.【2023年华为OD机试真题(C卷)】IPv4地址转换成整…

GIT如何重新生成ssh密钥过程

GIT如何重新生成ssh密钥过程 一、生成密钥前需要把之前的密钥删除吆 第一步&#xff1a;重新配置用户名和邮箱&#xff08; Git Bash 或命令窗口&#xff09; 1、配置用户命令&#xff1a;git config --global user.name “xxxxx” 2、配置邮箱命令&#xff1a;git config …

【我与Java的成长记】之this引用和构造方法的使用详解

系列文章目录 能看懂文字就能明白系列 C语言笔记传送门 &#x1f31f; 个人主页&#xff1a;古德猫宁- &#x1f308; 信念如阳光&#xff0c;照亮前行的每一步 文章目录 系列文章目录&#x1f308; *信念如阳光&#xff0c;照亮前行的每一步* 前言一、this的使用this引用的特…

Hive-DDL详解(超详细)

文章目录 前言HiveQL的数据定义语言&#xff08;DDL&#xff09;1. 创建数据库2. 切换到指定数据库3. 创建表格(1) 基本形式:(2) 示例: 4. 查看表格结构5. 删除数据库和表格(1) 删除数据库:(2) 删除数据表: 总结 前言 本教程将介绍HiveQL的数据定义语言&#xff08;DDL&#x…

Elasticsearch 查询命令执行时,如何通过词项索引、词项字典、倒排表定位文档逻辑介绍

这里不涉及到源码&#xff0c;只是根据网上的一些文章总结一下&#xff0c;目前不需要细究&#xff0c;只需要知道大概就好&#xff0c;除非你的工作是二次开发ES 一、​Term Index(词项索引)1、FSM&#xff08;Finite State Machine&#xff09;有限状态机2、FSA&#xff08;F…

SDKMAN的安装与卸载

[官方网站](Installation - SDKMAN! the Software Development Kit Manager) Installing SDKMAN! on UNIX-like platforms is as easy as ever. SDKMAN! installs smoothly on Mac OSX, Linux, WLS, Cygwin, Solaris and FreeBSD. We also support Bash and ZSH shells. Simpl…

力扣刷题记录(20)LeetCode:198、213、337

198. 打家劫舍 我们从第一个开始分析&#xff1a; dp[i]:i表示索引&#xff0c;dp表示当前索引可以拿到的最高金额 索引为0时&#xff0c;可以拿到的最高金额为1&#xff1b; 索引为1时&#xff0c;可以拿到的最高金额就是在索引[0,1]之间取&#xff0c;为2 索引为2时&…

雷军的最后一战,就这?

作者 | 魏启扬 来源 | 洞见新研社 2021年3月30日&#xff0c;小米官宣进军电动汽车赛道后的1003天&#xff0c;小米汽车亮相了。 由于是雷军“人生中最后一次重大的创业项目”&#xff0c;押上了雷军“人生所有积累的战绩和声誉”&#xff0c;小米对于造车极为重视&#xff…

性能手机新标杆,一加 Ace 3 发布会定档 1 月 4 日

12 月 27 日&#xff0c;一加宣布将于 1 月 4 日发布新品一加 Ace 3。一加 Ace 系列秉持「产品力优先」理念&#xff0c;从一加 Ace 2、一加 Ace 2V 到一加 Ace 2 Pro&#xff0c;款款都是现象级爆品&#xff0c;得到了广大用户的认可与支持。作为一加 2024 开年之作&#xff0…

【没有哪个港口是永远的停留~论文解读】Both Style and Fog Matter

Both Style and Fog Matter 原文&#xff1a;https://arxiv.org/pdf/2112.00484.pdf 解决问题&#xff1a;大雾、下雨、下雪天模糊场景 其他人做法&#xff1a; 1-去雾算法&#xff0c;人工干扰 2-合成的雾图像&#xff0c;不像真实的雾图像那样真实&#xff0c;也会扩大清…