DolphinScheduler3.1.3版本集群搭建

记录一下DS3.1.3版本的集群搭建(也就是我这里跳过了单机部署和伪分布式部署,他们三个的流程近似),其实整个过程都可以在官方文档中按步骤搭建完成,因此建议大家也参考这个网站进行搭建https://dolphinscheduler.apache.org/zh-cn/docs/3.1.3/guide/installation/cluster,我主要梳理一遍流程和我遇见的几个小问题。

前置准备工作

1.三台服务器(这里如果是云服务器,那应该确保它们在同一个网段,我这里用的是三台虚拟机,那么你首先应该确保他们三个是可以互相通信的,且和你的主机是可以通信的,具体可以参考百度和B站)

2.JDK 1.8+

3.DS的3.1.3版本的二进制包

3.数据库MySQL5.7+和JDBC Driver 8.0.16

4.ZooKeeper3.4.6+

5.psmisc

注意:上述所需外部软件支持均需要在你的三台设备上安装且配置好相应系统环境,至于版本按照官方文档指定版本进行下载和安装

准备 DolphinScheduler 启动环境

创建部署用户,并且一定要配置 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

注意:

  • 因为任务执行服务是以 sudo -u {linux-user} 切换不同 linux 用户的方式来实现多租户运行作业,所以部署用户需要有 sudo 权限,而且是免密的。初学习者不理解的话,完全可以暂时忽略这一点
  • 如果发现 /etc/sudoers 文件中有 "Defaults requirett" 这行,也请注释掉

上述过程按照官网文档来就可以,注意这里面你是在你的服务器上创建了用户dolphinscheduler和他的密码dolphinscheduler,记住他的密码后续会用到。

配置机器SSH免密登陆

由于安装的时候需要向不同机器发送资源,所以要求各台机器间能实现SSH免密登陆。配置免密登陆的步骤如下

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登陆则证明成功

此步基本无坑,但是要注意这里的权限chmod600,不要自己改成别的权限,会出问题就按600来

启动zookeeper

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

# 启动 zookeeper
./bin/zkServer.sh start

 在确保你完成第一步前置准备工作后,到了这一步就改启动Zookeeper了,这里可以直接按照官网文档来,这一步的目的就是让Zookeeper能扫描到这个zoo.cfg文件,所以把一开始自带的zoo_sample.cfg改了一个名字,然后这里面的dataDir就是一个数据存放的目录,你可以自己找一个能记住的地方。之后就是启动ZK,启动过后使用jps命令查看是否成功,出现就是成功了,不然就去ZK的log里看看哪出错了。

修改相关配置

如果使用 MySQL 需要手动下载 mysql-connector-java 驱动 (8.0.16) 并移动到 DolphinScheduler 的每个模块的 libs 目录下,其中包括 api-server/libs 和 alert-server/libs 和 master-server/libs 和 worker-server/libs

这里注意,一开始的前置准备工作说了要用这个驱动,这里就按照文档说的把驱动拷贝到一下四个模块下,你下载的应该是一个压缩包,给它解压后,只需要其中的这个文件,拷贝它就可以。

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

修改 install_env.sh 文件

注意:这里只需要在一台服务器上配置,因为这个配置文件在你启动DS时,会通过srp的方式同步此文件里你所指定的集群中包含的服务器上。

文件 install_env.sh 描述了哪些机器将被安装 DolphinScheduler 以及每台机器对应安装哪些服务。您可以在路径 bin/env/install_env.sh 中找到此文件,可通过以下方式更改env变量,export <ENV_NAME>=,配置详情如下。

注意注意,这里的两个配置文件不在服务器的bin/env目录而是你安装的DS的bin/env目录下。

修改 install_env.sh 文件

文件 install_env.sh 描述了哪些机器将被安装 DolphinScheduler 以及每台机器对应安装哪些服务。您可以在路径 bin/env/install_env.sh 中找到此文件,可通过以下方式更改env变量,export <ENV_NAME>=,配置详情如下。

# ---------------------------------------------------------
# INSTALL MACHINE
# ---------------------------------------------------------
# 需要配置master、worker、API server,所在服务器的IP均为机器IP或者localhost
# 如果是配置hostname的话,需要保证机器间可以通过hostname相互链接
# 如下图所示,部署 DolphinScheduler 机器的 hostname 为 ds1,ds2,ds3,ds4,ds5,其中 ds1,ds2 安装 master 服务,ds3,ds4,ds5安装 worker 服务,alert server安装在ds4中,api server 安装在ds5中
ips="ds1,ds2,ds3,ds4,ds5"
masters="ds1,ds2"
workers="ds3:default,ds4:default,ds5:default"
alertServer="ds4"
apiServers="ds5"

这里我遇到一个坑就是这个ips,一开始你进去这个配置文件的时候不是两个引号扩起来的应该是个${},你应该改成引号,不要直接在${}里写,后续会识别不出来。这里的配置就是集群都有那些服务器,然后四个节点都分配给谁,你可以自定义,我是下图,供参考

 

修改 dolphinscheduler_env.sh 文件

注意:修改dolphinscheduler_env.sh这个文件你需要在所以服务器上进行

分布式安装初始化数据库

注意:初始化数据库这一步你只需要在一台服务器上做就可以了

mysql -uroot -p

mysql> CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

# 修改 {user} 和 {password} 为你希望的用户名和密码
mysql> GRANT ALL PRIVILEGES ON dolphinscheduler.* TO '{user}'@'%' IDENTIFIED BY '{password}';
mysql> GRANT ALL PRIVILEGES ON dolphinscheduler.* TO '{user}'@'localhost' IDENTIFIED BY '{password}';

mysql> flush privileges;

这里我踩了坑,就是我按照上述官网的做法不太行,换下面的做法可以成功。

CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
create user 'dolphin'@'%' identified by 'dolphin';
GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'dolphin'@'localhost';
GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'dolphin'@'%';
flush privileges;

然后修改./bin/env/dolphinscheduler_env.sh,将username和password改成你在上一步中设置的用户名{user}和密码{password}

注意:这个配置需要在每一台服务器上都配置,所有服务器上配置的内容都是相同的。

文件 ./bin/env/dolphinscheduler_env.sh 描述了下列配置:

  • DolphinScheduler 的数据库配置,详细配置方法见初始化数据库
  • 一些任务类型外部依赖路径或库文件,如 JAVA_HOME 和 SPARK_HOME都是在这里定义的
  • 注册中心zookeeper
  • 服务端相关配置,比如缓存,时区设置等

如果您不使用某些任务类型,您可以忽略任务外部依赖项,但您必须根据您的环境更改 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_HOME1=${SPARK_HOME1:-/opt/soft/spark1}
export SPARK_HOME2=${SPARK_HOME2:-/opt/soft/spark2}
export PYTHON_HOME=${PYTHON_HOME:-/opt/soft/python}
export HIVE_HOME=${HIVE_HOME:-/opt/soft/hive}
export FLINK_HOME=${FLINK_HOME:-/opt/soft/flink}
export DATAX_HOME=${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

打开dolphinscheduler_env.sh以后是上面这些配置项,但是只需要配置下面的

export DATABASE=mysql
export SPRING_PROFILES_ACTIVE=${DATABASE}
export SPRING_DATASOURCE_USERNAME={user}
export SPRING_DATASOURCE_PASSWORD={password}
  • 在你的命令行或者修改 bin/env/dolphinscheduler_env.sh 设定下列环境变量,将 {user} 和 {password} 改为你数据库的用户名和密码
  • 第一行改成mysql,第二行不用动,只需要改三四行

这里的user和password也要记住,这两个是数据库的用户名和密码与上述说的你的设备的用户名和密码不是一回事。

完成上述步骤后,您已经为 DolphinScheduler 创建一个新数据库,现在你可以通过快速的 Shell 脚本来初始化数据库

bash tools/bin/upgrade-schema.sh

注意:这一步你只需要在修改了install_env.sh的服务器上做

启动 DolphinScheduler

使用上面创建的部署用户运行以下命令完成部署,部署后的运行日志将存放在 logs 文件夹内

bash ./bin/install.sh

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

 

这样就算成功

登录 DolphinScheduler

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

注意:这里你访问的时候一开始可能404或者报错拒绝访问,你在确保自己服务器端口开放或者防火墙关闭的前提下可以等上一分钟或者多刷新几次,可能服务部署需要一点时间。

 

 

启停服务

# 一键停止集群所有服务
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

注意1:: 每个服务在路径 <service>/conf/dolphinscheduler_env.sh 中都有 dolphinscheduler_env.sh 文件,这是可以为微 服务需求提供便利。意味着您可以基于不同的环境变量来启动各个服务,只需要在对应服务中配置 <service>/conf/dolphinscheduler_env.sh 然后通过 <service>/bin/start.sh 命令启动即可。但是如果您使用命令 /bin/dolphinscheduler-daemon.sh start <service> 启动服务器,它将会用文件 bin/env/dolphinscheduler_env.sh 覆盖 <service>/conf/dolphinscheduler_env.sh 然后启动服务,目的是为了减少用户修改配置的成本.

注意2::服务用途请具体参见《系统架构设计》小节。Python gateway service 默认与 api-server 一起启动,如果您不想启动 Python gateway service 请通过更改 api-server 配置文件 api-server/conf/application.yaml 中的 python-gateway.enabled : false 来禁用它。

总结:配置过程说难不难,但是我弄了有小半天,因为我是从服务器搭建开始弄的,大家配置的时候参考文档和其他人搭建时的经验,有问题多搜一下应该都没问题。 

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
DolphinScheduler是一款国内开源的分布式工作流任务调度系统,它可以用于大规模的数据处理以及任务调度等工作。而这里我们要讨论的是DolphinScheduler-3.1.3在Windows系统下的下载方法。 为了下载DolphinScheduler-3.1.3,我们首先需要访问官方网站https://www.dolphinscheduler.io/,然后点击网页中的“下载”按钮进入下载页面。在下载页面中,我们可以看到关于DolphinScheduler最新版本的一些说明,以及相应的下载链接。 对于Windows用户来说,我们需要下载的是DolphinScheduler-3.1.3-windows-amd64.zip压缩包。点击下载链接后,压缩包将会开始下载,等待下载完成后,我们可以在本地文件夹中找到下载的压缩包文件。 接下来我们需要进行解压缩,打开压缩包后会看到DolphinScheduler-3.1.3的文件夹,其中包含着所有的工程源代码、编译后的可执行文件及一些配置文件等。我们可以通过修改配置文件来自定义DolphinScheduler的运行环境。 需要注意的是,在解压缩之前,用户需要确保本地环境已经安装了Java以及其他必要的软件,并且配置好相关的环境变量。此外,DolphinScheduler是一款基于Linux系统的工具,Windows用户在使用时需要特别注意系统兼容性和一些细节问题。 总的来说,下载DolphinScheduler-3.1.3,只需要通过官方网页即可轻松完成,然后解压缩并进行相应的配置即可。如果在使用过程中遇到任何问题,建议及时查阅相关文档或者向社区中的热心人士求助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值