网上关于Dol
phinS
ch
ed
uler的介绍很多但是都缺少了与实际大
数据平台结合的案例指导。
DolphinScheduler1.
x版本,2.
x重构了
内核实现,
性能提升20倍!但是因为重构导致2.x与1.x
部署过程存在差异,按照1.x
部署2.x版本存在不少坑。
选择轻
量化、免运维、低成本的大
数据云
服务是业界趋势,如果
搭建DolphinScheduler再
同步自建一套Had
oop生态成本太高!因此
我们通过结合
华为云MRS
服务构建数据中台。
dolphinscheduler2.0.3
安装包
MRS 3.1.0普通
集群
My
sql安装包 5.7.35
ECS
centos7.6
MRS客户端提供java、python开发环境,也提供开通集群中各组件的环境变量:Hadoop、hive、hbase、flink等。
参见登录ECS安装集群外客户端
为了方便数据库管理,对于安装的MySQL数据库,生产上建立了一个mysql用户和mysql用户组:
groupadd mys
ql
# 添加mysql用户
useradd –g mysql mysql –d /home/mysql
# 修改mysql用户的登陆密码
passwd ****
2.解压安装包
“`
cd /
usr/lo
cal/
tar -xz
vf mysql-5.7.13-
linux-glibc2.5-x86_64.
tar.gz
# 改名为mysql
mv mysql-5.7.13-linux-glibc2.5-x86_64 mysql
“`
赋予用户读写权限
/
1. 创建配置文件my.cnf
“`
v
im /
etc/my.cnf
[
client]
port = 3306
socket = /t
mp/mysql.sock
[mysqld]
ch
aracter_set_
server=
utf8
init_conn
ect='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-t
ime_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/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的用户
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
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文件
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集群网络已打通):
2. 修改 conf/env 目录下的 dolphinscheduler_env.sh
以相关用到的软件都安装在/opt/Bigdata/cl
ient下为例:
•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
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下
gz
/
4.创建元数据库数据表
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任务
1.登录进入dolphinscheduler webui
2. 配置MRS-hive连接
登录mrs manager查看hiveserver ip:
创建Hive数据连接,普通集群没有权限可以使用默认用户hive,如有需要可以使用在MRS里面已经创建的用户:
3. 创建任务
1、创建项目
2、创建工作流
3、在工作流编辑任务
4、任务上线
5、启动任务流之后可以查询工作流实例和任务实例
6、登录Manager页面,选择“集群 > 服务 > Yarn > 概览”
7、单击“ResourceManager WebUI”后面对应的链接,进入Yarn的WebUI页面,查看Spark任务是否运行
到此这篇关于基于云服务MRS构建DolphinScheduler2调度系统的文章就介绍到这了,更多相关DolphinScheduler调度系统内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://www.cnblogs.com/huaweiyun/p/16320103.html
声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。