DolphinScheduler部署
前置条件说明
- Zookeeper需安装好
- JDK先配置好(1.8)
- gcc 需安装好(4.8.*)
- 安装大数据组件客户端(HDFS\YARN\HIVE\FLINK\SPARK)
- 安装datax环境
安装机器
前提
- CDH中需要有两个Hadoop集群,每个集群下部署一套DS (CDH机器允许部署的情况)
- 如果是POC,可以只用一套DS
- CDH机器不允许部署的情况,参考https://deepexi.yuque.com/docs/share/cbb7e60f-7188-41ef-8a72-219f269c07aa?#,将部署机器加入CDH集群管理即可
文件上传
解压dolphinscheduler.zip, 将dolphinscheduler_ui.zip、dolphinscheduler-backend.zip、nginx-1.16.1.tar.g上传至/data/daas/目录下并且解压
配置dolphinscheduler用户并授权
# useradd dolphinscheduler # echo "dolphinscheduler" | passwd --stdin dolphinscheduler # sed -i '$adolphinscheduler ALL=(ALL) NOPASSWD: NOPASSWD: ALL' /etc/sudoers # sed -i 's/Defaults requirett/#Defaults requirett/g' /etc/sudoers # su dolphinscheduler
配置sudo免密
# ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa # cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys # chmod 600 ~/.ssh/authorized_keys # exit
授权ds源目录
# chown -R dolphinscheduler:dolphinscheduler /data/daas/dolphinscheduler-backend
授权ds安装目录
# mkdir -p /data/daas/dolphinscheduler # chown -R dolphinscheduler:dolphinscheduler /data/daas/dolphinscheduler
如果是ds是集群(多master 多worker)的话,需要配置机器间免密登录,需要执行以下步骤
在安装DS的机器执行以下命令
# su dolphinscheduler
获取公钥
# less ~/.ssh/id_rsa.pub
将生成的公钥复制到另外安装机器的 ~/.ssh/authorized_keys文件。
# vim ~/.ssh/authorized_keys
粘贴并保存,其他机器操作类似
配置hdfs用户
# su hdfs 如果出现:This account is currently not available. 说明 hdfs 是不可用的;如果没有该用户,则需要创建 # useradd hdfs,再执行以下步骤 # vi /etc/passwd 找到hdfs用户,将/sbin /nologin改成/bin/bash # su hdfs 正常切到hdfs用户即可 # exit # usermod -a -G dolphinscheduler hdfs 将hdfs用户加入dolphinscheduler组
配置datax环境检测
各个机器配置datax环境,解压datax.tar.gz到指定目录,例如/opt/soft/datax,将datax配置到环境变量
# vim /etc/profile 加入 : export DATAX_HOME=/opt/soft/datax # source /etc/profile
建立JDK软连接
# sudo ln -s /data/daas/jdk1.8.0_251/bin/java /usr/bin/java
创建数据库
创建数据库,通过工具执行/dolphinscheduler/sql文件夹中的sql文件(两份都需要执行),这里以账号为root,密码为daas2020
修改配置
- 找到 hdfs-site.xml 和 core-site.xml 文件,一般在 /etc/hadoop/conf 目录下,复制到/data/daas/dolphinscheduler-backend/conf目录下
# cp /etc/hadoop/conf/hdfs-site.xml /etc/hadoop/conf/core-site.xml /data/daas/dolphinscheduler-backend/conf
- 修改运行参数,修改 `conf/env` 目录下的 `.dolphinscheduler_env.sh` 环境变量(以相关用到的软件都安装在/opt/soft下为例)
[dolphinscheduler@tools]# vi /data/daas/dolphinscheduler-backend/conf/env/.dolphinscheduler_env.sh export HADOOP_HOME=/opt/cloudera/parcels/CDH/lib/hadoop export HADOOP_CONF_DIR=/opt/cloudera/parcels/CDH/lib/hadoop/etc/hadoop export SPARK_HOME=/opt/cloudera/parcels/CDH/lib/spark export HIVE_HOME=/opt/cloudera/parcels/CDH/lib/hive export JAVA_HOME=/usr/java/jdk1.8.0_251-amd64 export PYTHON_HOME=/usr/bin/python2.7 export FLINK_HOME=/opt/flink export DATAX_HOME=/opt/soft/datax PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$PATH
- 修改一键部署脚本 install.sh中的各参数,特别注意以下参数的配置(这个配置很重要,如果设置不当,dolphinscheduler是启动不了的,输入后要多次检查)
[root@tools]# vi /data/daas/dolphinscheduler-backend/install.sh dbtype="mysql" #数据库地址 dbhost="10.57.4.14:3306" #数据库名字 dbname="dolphinscheduler" #数据库用户 username="root" #密码 passowrd="daas2020" #改成上面已经授权了的路径 installPath="/data/daas/dolphinscheduler" #安装用户,就是前面linux新建的用户 deployUser="dolphinscheduler" #改成对应的zookeeper地址和端口,如果是集群部署,用逗号隔开 zkQuorum="10.201.0.1112:2181,10.201.0.1113:2181" #部署ds的机器,用逗号隔开,所有worker机器都需要写上,如果只有一台机器则写一个ip ips="10.201.0.112,10.201.0.113" #master服务部署在哪台机器上,所有master机器都需要写上并且用逗号隔开 masters="10.201.0.112" #worker服务部署在哪台机器上,所有worker机器都需要写上并且用逗号隔开 workers="10.201.0.112" #报警服务部署在哪台机器上(一般在master) alertServer="10.201.0.112" #后端api服务部署在在哪台机器上(只在一台机器部署就可以) apiServers="10.201.0.112" #邮件协议 mailProtocol="SMTP" # mail server host # 邮件配置,以qq邮箱为例 mailServerHost="smtp.exmail.qq.com" # mail server port #邮件端口 mailServerPort="25" # sender #发送者 mailSender="daas@deepexi.com" #发送用户 mailUser=""daas@deepexi.com" # sender password #邮箱密码 mailPassword="daas2020" # TLS协议的邮箱设置为true,否则设置为false starttlsEnable="true" # 邮件服务地址值,参考上面 mailServerHost sslTrust="smtp.mxhichina.com" # 开启SSL协议的邮箱配置为true,否则为false。注意: starttlsEnable和sslEnable不能同时为true sslEnable="false" # 这里必须改为HDFS resUploadStartupType="HDFS" #hdfs地址 defaultFS="hdfs://10.201.0.112:8020" #yarn集群的所有ip,用逗号隔开,例如"10.201.0.112,10.201.0.113" ,如果不是集群,则不用填 yarnHaIps= #如果yarn是集群的则不用填,如果不是集群,则填ip,例如"10.201.0.112" singleYarnIp= #hdfs目录 hdfsPath="/dolphinscheduler" # 注意,如果开启了 kerberos ,这个选项为空 hdfsRootUser="hdfs"
执行脚本
# su dolphinscheduler 切换到dolphinscheduler用户,执行install.sh脚本,然后到各个机器上执行jps命令,查看服务是否启动成功
前端UI部署(在线、离线二选一进行部署)
- 在线部署
进入dolphinscheduler-ui目录下执行,切换到root用户 sh ./install-dolphinscheduler-ui.sh,执行后,会在运行中请键入前端端口,默认端口是8888,或者键入其他端口,然后会让键入跟前端ui交互的api-server的ip,接着是让键入跟前端ui交互的api-server的port,接着是操作系统选择,最后等待部署完成
- 离线部署
- 安装nginx前首先要确认系统中安装了gcc、pcre-devel、zlib-devel、openssl-devel
- 切换到root用户下,上传nginx-1.16.1.tar.gz到/data/daas
- # tar -zxvf nginx-1.16.1.tar.gz
#./configure --without-http_rewrite_module --without-http_gzip_module --prefix=/usr/local/nginx /usr/local/nginx是nginx的安装目录
# make & make install
# cd /usr/local/nginx/sbin
# ./nginx
- 修改nginx.conf配置
# cd /usr/local/nginx/conf # vim nginx.conf server { listen 8888; # 访问端口(自行修改) server_name ip; # api服务的ip location / { root /data/daas/dolphinscheduler_ui/dist; # 前端解压的dist目录地址(自行修改) index index.html index.html; } client_max_body_size 50m; location /dolphinscheduler { proxy_pass http://ip:12345;# API服务的接口地址(自行修改) proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header x_real_ipP $remote_addr; proxy_set_header remote_addr $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_http_version 1.1; proxy_connect_timeout 4s; proxy_read_timeout 30s; proxy_send_timeout 12s; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } } # cd /usr/local/nginx/sbin
重启nginx
# ./nginx -s reload
- 浏览器访问http://ip:8888,出现登录页面即可
租户用户创建
- 使用admin/dolphinscheduler123 登录,到租户管理中创建hdfs租户,编码一定要是hdfs
图4 图示1
- 创建用户,并退出admin账户,登录新创建的用户,再到资源中心上传文件,将flink-sql-submit.jar,hive-sync.sh上传上去即可。
图5 图示2