小知识:基于云服务MRS构建DolphinScheduler2调度系统的案例详解

什么写这篇文章

网上关于DolphinScheduler的介绍很多但是都缺少了与实际大数据平台结合的案例指导。 DolphinScheduler1.x版本,2.x重构了内核实现,性能提升20倍!但是因为重构导致2.x与1.x部署过程存在差异,按照1.x部署2.x版本存在不少坑。 选择量化、免运维、低成本的大数据服务是业界趋势,如果搭建DolphinScheduler再同步自建一套Hadoop生态成本太高!因此我们通过结合华为云MRS服务构建数据中台。

环境准备

dolphinscheduler2.0.3安装包 MRS 3.1.0普通集群 Mysql安装包 5.7.35 ECS centos7.6

安装MRS 客户端

MRS客户端提供javapython开发环境,也提供开通集群中各组件的环境变量:Hadoop、hive、hbase、flink等。

参见登录ECS安装集群外客户端

安装MySQL服务

1. 创建ECS用户

为了方便数据库管理,对于安装的MySQL数据库,生产上建立了一个mysql用户和mysql用户组:

groupadd mysql # 添加mysql用户 useradd g mysql mysql d /home/mysql # 修改mysql用户的登陆密码 passwd ****

2.解压安装包

“` cd /usr/local/ tar -xzvf mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz # 改名为mysql mv mysql-5.7.13-linux-glibc2.5-x86_64 mysql “`

赋予用户读写权限

/

3. 配置文件初始化

1. 创建配置文件my.cnf

“` vim /etc/my.cnf [client] port = 3306 socket = /tmp/mysql.sock [mysqld] character_set_server=utf8 init_connect='SET NAMES utf8' basedir=/usr/local/mysql datadir=/usr/local/mysql/data socket=/tmp/mysql.sock log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid #不区分大小写 lower_case_table_names = 1 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION max_connections=5000 default-time_zone = '+8:00' “`

2. 初始化log文件,防止没有权限

“` #手动编辑一下日志文件什么也不用写,直接保存退出 cd /var/log/ vim mysqld.log :wq 退出保存 chmod 777 mysqld.log chown mysql:mysql mysqld.log “`

3. 初始化pid文件,防止没有权限

“` cd /var/run/ mkdir mysqld cd mysqld vi mysqld.pid :wq保存退出 # 赋权 cd .. chmod 777 mysqld chown -R mysql:mysql /mysqld “`

4. 初始化数据库

初始化数据库,并指定启动mysql的用户,否则就会在启动MySQL时出现权限不足的问题

en_US

初始化完成后,在my.cnf中配置的datadir目录(/var/log/mysqld.log)下生成一个error.log文件,里面记录了root用户的随机密码

log

执行后记录最后一行:root@localhost: xxxxx 。 这里的xxxxx就是初始密码。后面登入数据库要用到。

4. 启动数据库

/usr/local/mysql/supportfiles/mysql.server start

设置开机自启动服务

cp /usr/local/mysql/supportfiles/mysql.server /etc/rc.d/init.d/mysqld # 增加mysqld服务控制脚本执行权限 chmod +x /etc/rc.d/init.d/mysqld # 将mysqld服务加入到系统服务 chkconfig add mysqld # 检查mysqld服务是否已经生效 chkconfig list mysqld # 切换至mysql用户,启动mysql,或者稍后下一步再启动。 service mysqld start # 从此就可以使用service mysqld命令启动/停止服务 su mysql service mysqld start service mysqld stop service mysqld restart

5.登陆,修改密码,预置dolphinscheduler的用户

1. 修改密码

“` # 系统默认会查找/usr/bin下的命令;建立一个链接文件。 ln -s /usr/local/mysql/bin/mysql /usr/bin # 登陆mysql的root用户 mysql -uroot -p # 输入上面的默认初始密码(root@localhost: xxxxx) # 修改root用户密码为XXXXXX set password for root@localhost=password(“XXXXXX”); “`

2. 预置dolphinscheduler的用户

“` mysql -uroot -p mysql>CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; # 修改 {user} 和 {password} 为你希望的用户名和密码,192.168.56.201是我的主机ID mysql> GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'dolphinscheduler'@'%' IDENTIFIED BY 'dolphinscheduler'; mysql> GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'dolphinscheduler'@'localhost' IDENTIFIED BY 'dolphinscheduler'; mysql> GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'dolphinscheduler'@'192.168.56.201' IDENTIFIED BY 'dolphinscheduler'; #刷新权限 mysql> flush privileges; #检查是否创建用户成功 mysql> show databases; #出现dolphinscheduler,查看创建的用户 mysql> use mysql; mysql> select User,authentication_string,Host from user; “`

安装dolphinscheduler服务

1. 建立本机id免密

在任意文件夹下进行这一步均可,为防止误会,我在dolphinscheduler203进行这一步,创建用户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 # 修改目录权限,在这一步前将jdbcDriver(我的mysql版本5.6.1,driver版本8.0.16)放入lib里,一并修改权限 chown R dolphinscheduler:dolphinscheduler dolphinscheduler203 #进入新用户 su dolphinscheduler sshkeygen t rsa P ''f ~/.ssh/id_rsa cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys chmod 600~/.ssh/authorized_keys

2. 修改配置参数

修改install-config.conf文件

conf 修改: ips=“192.168.56.201” masters=“192.168.56.201” workers=“192.168.56.201:default” alertServer=“192.168.56.201” apiServers=“192.168.56.201” pythonGatewayServers=“192.168.56.201”# DolphinScheduler安装路径,如果不存在会创建,这里不能放你解压后的ds路径,放置后在运行代码时同名文件、文件夹会冲突导致消失 installPath=“/opt/dolphinscheduler203”# 部署用户,填写在 **配置用户免密及权限** 中创建的用户 deployUser=“dolphinscheduler”# ——————————————————— # DolphinScheduler ENV # ——————————————————— # 安装的JDK中 JAVA_HOME 所在的位置 javaHome=“/opt/hadoopclient/JDK/jdk1.8.0_272″# ——————————————————— # Database # ——————————————————— # 数据库的类型,用户名,密码,IP,端口,元数据库db。其中 DATABASE_TYPE 目前支持 mysql, postgresql, H2 # 请确保配置的值使用双引号引用,否则配置可能不生效 DATABASE_TYPE=“mysql” SPRING_DATASOURCE_URL=“jdbc:mysql://192.168.56.201:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8”# 如果你不是以 dolphinscheduler/dolphinscheduler 作为用户名和密码的,需要进行修改 SPRING_DATASOURCE_USERNAME=“dolphinscheduler” SPRING_DATASOURCE_PASSWORD=“dolphinscheduler”# ——————————————————— # Registry Server # ——————————————————— # 注册中心地址,zookeeper服务的地址 registryServers=“192.168.56.201:2181”

zk地址获取方式:

登录manager,访问zookeeper服务,copy管理ip即可(前提ECS与MRS集群网络已打通):

%小知识:基于云服务MRS构建DolphinScheduler2调度系统的案例详解-猿站网-插图

2. 修改 conf/env 目录下的 dolphinscheduler_env.sh

以相关用到的软件都安装在/opt/Bigdata/client下为例:
export HADOOP_CONF_DIR=/opt/Bigdata/client/HDFS/Hadoopexport SPARK_HOME2=/opt/Bigdata/client/Spark2x/spark export PYTHON_HOME=/usr/bin/pytho export JAVA_HOME=/opt/Bigdata/client/JDK/jdk1.8.0_272 export HIVE_HOME=/opt/Bigdata/client/Hive/Beelineexport FLINK_HOME=/opt/Bigdata/client/Flink/flink export DATAX_HOME=/xxx/datax/bin/datax.py export PATH=$HADOOP_HOME/bin:$SPARK_HOME2/bin:$PYTHON_HOME:$JAVA_HOME/bin:$HIVE_HOME/bin:$PATH:$FLINK_HOME/bin:$DATAX_HOME:$PATH

说明

这一步非常重要,例如 JAVA_HOME 和 PATH 是必须要配置的,没有用到的可以忽略或者注释掉 环境变量查找方式说明:假设MRS客户端安装在/opt/Bigdata/client
bigdata_env HADOOP_HOME环境地址:通过echo $HADOOP_HOME获得/opt/Bigdata/client/HDFS/Hadoop HADOOP_CONF_DIR:/opt/Bigdata/client/HDFS/Hadoop SPARK_HOME:通过echo $SPARK_HOME获得/opt/Bigdata/client/Spark2x/spark JAVA_HOME:通过echo $JAVA_HOME获得/opt/Bigdata/client/JDK/jdk1.8.0_272 HIVE_HOME:通过echo $HIVE_HOME获得/opt/Bigdata/client/Hive/Beeline FLINK_HOME:通过echo $FLINK_HOME 获得/opt/Bigdata/client/Flink/flink

3. 将mysql 驱动包放入lib下

%小知识:基于云服务MRS构建DolphinScheduler2调度系统的案例详解-1猿站网-插图

gz

%小知识:基于云服务MRS构建DolphinScheduler2调度系统的案例详解-2猿站网-插图

/

4.创建元数据库数据表

sh

5. 服务安装、启停

每次启停都可以重新部署一次:sh install.sh

启停命令

sh ./bin/stopall.sh # 一键开启集群所有服务 sh ./bin/startall.sh # 启停 Master sh ./bin/dolphinschedulerdaemon.sh stop masterserver sh ./bin/dolphinschedulerdaemon.sh start masterserver # 启停 Worker sh ./bin/dolphinschedulerdaemon.sh start workerserver sh ./bin/dolphinschedulerdaemon.sh stop workerserver # 启停 Api sh ./bin/dolphinschedulerdaemon.sh start apiserver sh ./bin/dolphinschedulerdaemon.sh stop apiserver # 启停 Logger sh ./bin/dolphinschedulerdaemon.sh start loggerserver sh ./bin/dolphinschedulerdaemon.sh stop loggerserver # 启停 Alert sh ./bin/dolphinschedulerdaemon.sh start alertserver sh ./bin/dolphinschedulerdaemon.sh stop alertserver # 启停 Python Gateway sh ./bin/dolphinschedulerdaemon.sh start pythongatewayserver sh ./bin/dolphinschedulerdaemon.sh stop pythongatewayserver

6. 登录系统

访问前端页面地址:http://xxx:12345/dolphinscheduler

用户名密码:admin/dolphinscheduler123

%小知识:基于云服务MRS构建DolphinScheduler2调度系统的案例详解-3猿站网-插图

提交MRS任务

1.登录进入dolphinscheduler webui

%小知识:基于云服务MRS构建DolphinScheduler2调度系统的案例详解-4猿站网-插图

2. 配置MRS-hive连接

登录mrs manager查看hiveserver ip:

%小知识:基于云服务MRS构建DolphinScheduler2调度系统的案例详解-5猿站网-插图

创建Hive数据连接,普通集群没有权限可以使用默认用户hive,如有需要可以使用在MRS里面已经创建的用户:

%小知识:基于云服务MRS构建DolphinScheduler2调度系统的案例详解-6猿站网-插图

3. 创建任务

1、创建项目

%小知识:基于云服务MRS构建DolphinScheduler2调度系统的案例详解-7猿站网-插图

2、创建工作流

%小知识:基于云服务MRS构建DolphinScheduler2调度系统的案例详解-8猿站网-插图

3、在工作流编辑任务

%小知识:基于云服务MRS构建DolphinScheduler2调度系统的案例详解-9猿站网-插图

4、任务上线

%小知识:基于云服务MRS构建DolphinScheduler2调度系统的案例详解-10猿站网-插图

5、启动任务流之后可以查询工作流实例和任务实例

%小知识:基于云服务MRS构建DolphinScheduler2调度系统的案例详解-11猿站网-插图

%小知识:基于云服务MRS构建DolphinScheduler2调度系统的案例详解-12猿站网-插图

6、登录Manager页面,选择“集群 > 服务 > Yarn > 概览”

7、单击“ResourceManager WebUI”后面对应的链接,进入Yarn的WebUI页面,查看Spark任务是否运行

%小知识:基于云服务MRS构建DolphinScheduler2调度系统的案例详解-13猿站网-插图

到此这篇关于基于云服务MRS构建DolphinScheduler2调度系统的文章就介绍到这了,更多相关DolphinScheduler调度系统内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://www.cnblogs.com/huaweiyun/p/16320103.html

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:使用Docker将容器打成镜像的方法步骤

2023-3-6 16:23:40

建站知识

小知识:详解docker进行数据挂载的三种模式

2023-3-6 16:34:12

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索