我的编程空间,编程开发者的网络收藏夹
学习永远不晚

基于云服务MRS如何构建DolphinScheduler2调度系统

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

基于云服务MRS如何构建DolphinScheduler2调度系统

这篇文章主要介绍“基于云服务MRS如何构建DolphinScheduler2调度系统”,在日常操作中,相信很多人在基于云服务MRS如何构建DolphinScheduler2调度系统问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”基于云服务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客户端提供java、python开发环境,也提供开通集群中各组件的环境变量:Hadoop、hive、hbase、flink等。

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

安装MySQL服务

1. 创建ECS用户

为了方便数据库管理,对于安装的MySQL数据库,生产上建立了一个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```

赋予用户读写权限

chown -R mysql:mysql mysql/

3. 配置文件初始化

创建配置文件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'```

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

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

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

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

初始化数据库

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

/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --lc_messages_dir=/usr/local/mysql/share --lc_messages=en_US

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

cat /var/log/mysqld.log

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

4. 启动数据库

#源目录启动:/usr/local/mysql/support-files/mysql.server start

设置开机自启动服务

# 复制启动脚本到资源目录 cp /usr/local/mysql/support-files/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的用户

修改密码

```# 系统默认会查找/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"); ```

预置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免密登录该用户:

# 创建用户需使用 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 ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys

2. 修改配置参数

修改install-config.conf文件

[dolphinscheduler@km1 dolphinscheduler203]$ vi conf/config/install-config.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调度系统

修改 conf/env 目录下的 dolphinscheduler_env.sh
以相关用到的软件都安装在/opt/Bigdata/client下为例:

•    export HADOOP_HOME=/opt/Bigdata/client/HDFS/Hadoop•    export HADOOP_CONF_DIR=/opt/Bigdata/client/HDFS/Hadoop•    export 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/Beeline•    export 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

source /opt/client/bigdata_envHADOOP_HOME环境地址:通过echo $HADOOP_HOME获得 /opt/Bigdata/client/HDFS/HadoopHADOOP_CONF_DIR:/opt/Bigdata/client/HDFS/HadoopSPARK_HOME: 通过echo $SPARK_HOME获得/opt/Bigdata/client/Spark2x/sparkJAVA_HOME: 通过echo $JAVA_HOME获得/opt/Bigdata/client/JDK/jdk1.8.0_272HIVE_HOME:通过echo $HIVE_HOME获得/opt/Bigdata/client/Hive/BeelineFLINK_HOME:通过echo $FLINK_HOME 获得/opt/Bigdata/client/Flink/flink

3. 将mysql 驱动包放入lib下

基于云服务MRS如何构建DolphinScheduler2调度系统

tar -zxvf mysql-connector-java-5.1.47.tar.gz

基于云服务MRS如何构建DolphinScheduler2调度系统

cp mysql-connector-java-5.1.47.jar /opt/dolphinscheduler203/lib/

执行sh script/create-dolphinscheduler.sh

5. 服务安装、启停

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

启停命令

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

6. 登录系统

访问前端页面地址:http://xxx:12345/dolphinscheduler
用户名密码:admin/dolphinscheduler123

基于云服务MRS如何构建DolphinScheduler2调度系统

提交MRS任务1.登录进入dolphinscheduler webui

基于云服务MRS如何构建DolphinScheduler2调度系统

配置MRS-hive连接

登录mrs manager查看hiveserver ip:

基于云服务MRS如何构建DolphinScheduler2调度系统

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

基于云服务MRS如何构建DolphinScheduler2调度系统

3. 创建任务

创建项目

基于云服务MRS如何构建DolphinScheduler2调度系统

创建工作流

基于云服务MRS如何构建DolphinScheduler2调度系统

在工作流编辑任务

基于云服务MRS如何构建DolphinScheduler2调度系统

任务上线

基于云服务MRS如何构建DolphinScheduler2调度系统

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

基于云服务MRS如何构建DolphinScheduler2调度系统

基于云服务MRS如何构建DolphinScheduler2调度系统

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

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

基于云服务MRS如何构建DolphinScheduler2调度系统

到此,关于“基于云服务MRS如何构建DolphinScheduler2调度系统”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

基于云服务MRS如何构建DolphinScheduler2调度系统

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

基于云服务MRS如何构建DolphinScheduler2调度系统

这篇文章主要介绍“基于云服务MRS如何构建DolphinScheduler2调度系统”,在日常操作中,相信很多人在基于云服务MRS如何构建DolphinScheduler2调度系统问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法
2023-06-30

如何利用Mesos构建多任务调度系统

本篇内容介绍了“如何利用Mesos构建多任务调度系统”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!背景公司内部的云平台为各个业务线提供了大量
2023-06-05

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录