DolphinScheduler部署与安装
1、DS源码编译
1.1 版本规划
DS在成为Apache孵化项⽬之后的最新稳定版是1.3.4,并提供了Flink的⽀持,我们就使⽤1.3.4即可
https://github.com/apache/incubator-dolphinscheduler/releases
1.2 克隆代码
git clone https://github.com/apache/incubator-dolphinscheduler.git
1.3 适配HDP3.1
DS依赖于Hadoop、Hive的客户端,因此需要跟HDP整合,索性在1.3.4分⽀的基础上创建HDP分⽀,然后在编译
1.3.1 创建HDP分⽀
cd incubator-dolphinscheduler
git checkout 1.3.4
git checkout -b 1.3.4-hdp3.1.4.0
1.3.2 匹配HDP3.1.4.0
- 修改顶层pom.xml
<!--<hadoop.version>2.7.3</hadoop.version>-->
<hadoop.version>3.1.1</hadoop.version>
<!--<hive.jdbc.version>2.1.0</hive.jdbc.version>-->
<hive.jdbc.version>3.1.0</hive.jdbc.version>
- 变更版本号 修改所有模块的pom.xml
<!-- <version>1.3.4</version> -->
<version>1.3.4-hdp3.1.4.0</version>
1.3.3 编译及安装包
mvn -U clean package -Prelease -Dmaven.test.skip=true
正常编译完后,会在 dolphinscheduler-dist/target⽬录下⽣成如下安装包
apache-dolphinscheduler-incubating-1.3.4-hdp3.1.4.0-dolphinscheduler-bin.tar.gz
2、DS快速安装
2.1 部署规划
服务 |
node01 |
node02 |
node03 |
master |
√ |
√ |
|
worker/logServer |
√ |
√ |
|
alertServer |
√ |
||
apiServer |
√ |
||
ui |
√(Nginx) |
2.2 后端部署
2.2.1 依赖组件
组件 |
是否必装 |
说明 |
PostgreSQL (8.2.15+) orMysql (5.5+) |
⼆选⼀ |
直接使⽤Ambari的 |
JDK1.8+ |
必装 |
MySQL5.7早就部署好了 |
ZooKeeper (3.4.6+) |
必装 |
HDP⾃带 |
Hadoop (2.6+) or MinIo |
选装, 如果需要使⽤到资源上传功能,可以选择Hadoop or MinIo |
HDP⾃带 |
Hive(1.2.1) |
选装,hive任务提交需要安装 |
HDP⾃带 |
Spark(1.x,2.x) |
选装,Spark任务提交需要安装 |
HDP⾃带 |
注意:HDP3.1⾃带的Hadoop、Hive、Spark跟DS需要的不⼀样,因此需要按照《第1章 DS源码编译》来处理
2.2.2 准备⼯作
- 创建部署⽤户及SSH免密
在所有需要部署调度的机器上创建部署⽤户,因为worker服务是以 sudo -u {linux-user} ⽅式来执⾏作业,所以部署⽤户需要有 sudo 权限,⽽且是免密的。
我们直接采⽤hadoop⽤户就好了,免密早就做好了。
- 创建数据库 在MySQL部署的那台机器上
mysql -uroot -p
set global validate_password_policy=0;
set global validate_password_mixed_case_count=0;
set global validate_password_number_count=3;
set global validate_password_special_char_count=0;
set global validate_password_length=3;
CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE
utf8_general_ci;
CREATE USER 'ds'@'%' IDENTIFIED BY 'ds%123';
GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'ds'@'%' IDENTIFIED BY 'ds%123';
GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'ds'@'localhost' IDENTIFIED BY
'ds%123';
flush privileges;
exit;
2.2.3 正式部署
- 解压缩安装包 上传后端安装包到hadoop⽤户主⽬录下
apache-dolphinscheduler-incubating-1.3.4-hdp3.1.4.0-dolphinscheduler-bin.tar.gz
mv apache-dolphinscheduler-incubating-1.3.4-hdp3.1.4.0-dolphinscheduler-bin.tar.gz app/
cd app
tar -zxvf apache-dolphinscheduler-incubating-1.3.4-hdp3.1.4.0-dolphinscheduler-bin.tar.gz
ln -s apache-dolphinscheduler-incubating-1.3.4-hdp3.1.4.0-dolphinscheduler-bin
dolphinscheduler
chmod ugo+x dolphinscheduler/bin/*
chmod ugo+x dolphinscheduler/script/*
chmod ugo+x dolphinscheduler/install.sh
chmod ugo+x /home/hadoop/app/dolphinscheduler/conf/env/dolphinscheduler_env.sh
- ⽬录结构如下
|-- bin #基础服务启动脚本
|-- conf #配置⽂件⽬录
|-- DISCLAIMER-WIP
|-- install.sh #⼀键部署脚本
|-- lib #项⽬依赖jar包,包括各个模块jar和第三⽅jar
|-- LICENSE
|-- licenses
|-- NOTICE
|-- script #集群启动、停⽌和服务监控启停脚本
|-- sql #sql⽂件
- 数据库配置
vi /home/hadoop/app/dolphinscheduler/conf/datasource.properties
#spring.datasource.driver-class-name=org.postgresql.Driver
#spring.datasource.url=jdbc:postgresql://192.168.xx.xx:5432/dolphinscheduler
# mysql
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://node01:3306/dolphinscheduler?
useUnicode=true&characterEncoding=UTF-8
spring.datasource.username=ds
spring.datasource.password=ds%123
- 初始化数据库
cd /home/hadoop/app/dolphinscheduler/lib/
ln -s /usr/share/java/mysql-connector-java-8.0.18.jar mysql-connector-java-8.0.18.jar
cd /home/hadoop/app/dolphinscheduler
sh ./script/create-dolphinscheduler.sh
- 配置DS环境变量⽂件
vi /home/hadoop/app/dolphinscheduler/conf/env/dolphinscheduler_env.sh
export HADOOP_HOME=/usr/hdp/current/hadoop-client
export HADOOP_CONF_DIR=/etc/hadoop/conf
#export SPARK_HOME1=/opt/soft/spark1
export SPARK_HOME2=/usr/hdp/current/spark2-client
export PYTHON_HOME=/usr/bin/python
export JAVA_HOME=/usr/local/jdk
export HIVE_HOME=/usr/hdp/current/hive-client
#export FLINK_HOME=/home/hadoop/app/flink
#export
PATH=$HADOOP_HOME/bin:$SPARK_HOME1/bin:$SPARK_HOME2/bin:$PYTHON_HOME:$JAVA_HOME
/bin:$HIVE_HOME/bin:$PATH:$FLINK_HOME/bin:$PATH
export
PATH=$HADOOP_HOME/bin:$SPARK_HOME2/bin:$PYTHON_HOME:$JAVA_HOME/bin:$HIVE_HOME/b
in:$PATH
👇🏻 关注公众号 获取更多资料👇🏻
- 点赞
- 收藏
- 关注作者
评论(0)