大致过程如下:
创建 dolphinscheduler 用户,将 Scheduler 解压后目录的 owner 赋给前面 dolphinscheduler 用户
对 dolphinscheduler 用户设置 sudo 免密(必须)
sed -i '$adolphinscheduler ALL=(ALL) NOPASSWD: NOPASSWD: ALL' /etc/sudoers
sed -i 's/Defaults requirett/#Defaults requirett/g' /etc/sudoers
用户需要进行 ssh 免密设置(必须)
su dolphinscheduler;
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
注意:这里需要 /home/dolphinscheduler 目录存在,
这里用的是MySQL的数据库,默认配置的是 portgre 数据库,因此需要在 application-dao.properties 文件中设置 MySQL 的连接参数并去掉注释,同时,注释掉 portgre 的连接参数
初始化数据的脚本执行之前,需要注意两件事:
1、在 MySQL 数据库中创建一个叫 dolphinscheduler 的数据库,并且设置该数据库的访问账号和密码
2、在/etc/profile下配置 JAVA_HOME 及 PATH 变量,否则会报错
3、设置Java的软连接(如果报 "/bin/java: No such file or directory" 错误的话)
4、引入 mysql-connector-java-5.1.47.jar 包(如果用的是mysql的数据库)
按需配置,但是JAVA_HOME 和 PATH 是必须要配置的
如果找不到.dolphinscheduler_env.sh, 就运行 ls -all
需要设置Java的软连接,如:
sudo ln -s /opt/soft/java/bin/java /usr/bin/java
这里是非常重要的环节,而且配置项比较多,重点注意的几个地方:
都需要将 owner 设置为 dolphinscheduler(Dolphin Scheduler 的部署用户)
# hdfsPath (HDFS 根目录,根路径的 owner 必须是部署用户)
# installPath(# dolphinscheduler 集群安装目录,不能与之前的dolphinscheduler 路径相同)
# Program root path (程序路径)
# zk root directory 是否是zookeeper的安装目录?
这里将以上几个目录都放在 /dolphinscheduler 目录下
programPath="/dolphinscheduler/program"
hdfsPath="/dolphinscheduler/hdfs"
zkRoot="/dolphinscheduler/zk"
/dolphinscheduler 目录的 owner 必须是 dolphinscheduler 用户
业务用到的比如sql等资源文件上传到哪里,可以设置:HDFS,S3,NONE,单机如果想使用本地文件系统,请配置为HDFS,因为HDFS支持本地文件系统;
如果不需要资源上传功能请选择NONE。
强调一点:使用本地文件系统不需要部署hadoop
sudo mkdir /data/dolphinscheduler
sudo chown -R dolphinscheduler:dolphinscheduler /data/dolphinscheduler
sh install.sh
注意:
1、install.sh 脚本可能需要执行两次
2、Dolphin Schedule 的 Server端启动默认端口8888,注意端口冲突
MasterServer ----- master服务
WorkerServer ----- worker服务
LoggerServer ----- logger服务
ApiApplicationServer ----- api服务
AlertServer ----- alert服务
因为用的是 Ubuntu 操作系统,该脚本文件中有一段脚本代码是这样的:
ubuntu(){
# update source
apt-get update
# install nginx
apt-get install -y nginx
# config nginx
dolphinschedulerConf $1 $2
# startup nginx
/etc/init.d/nginx start
sleep 1
if [ $? -ne 0 ];then
/etc/init.d/nginx start
fi
nginx -s reload
}
其中, apt-get install -y nginx 是 Ubuntu 安装 Nginx 的命令,需要用到 Python 2.X的版本,因此,需要操作系统中有 pytho2.x的版本来支持这个命令的运行。
如果当前用户对应的 Python 版本不是 2.x 或者 Python2.X 版本的环境被弄坏了,那么,是无法安装 nginx 的。
访问地址 : http://[IP_Address]:[Set_Port]
系统自带的一个默认账号密码为:
admin/dolphinscheduler123
踩到的坑:
1、 创建 Linux 用户 dolphinscheduler 的时候,没有 /home/dolphinscheduler 目录,导致对 dolphinscheduler 进行 SSH 免密设置的时候报错:
Could not create directory '/home/dolphinscheduler/.ssh': No such file or directory
Saving key "/home/dolphinscheduler/.ssh/id_rsa" failed: No such file or directory
2、install.sh 配置中的目录未正确将 owner 设置为 dolphinscheduler 用户,导致一键安装未成功
3、python 2.x的版本被弄坏了,导致一键安装未成功,报错如下:
Could not find platform independent libraries
Consider setting $PYTHONHOME to [:]
ImportError: No module named site
dpkg: 处理软件包 python-dateutil (--configure)时出错:
子进程 已安装 post-installation 脚本 返回错误状态 1
收货:
1、~/ 指的是 /home/【当前用户名】所在的目录,如果该目录存在的话
2、 ls -l 命令可以与 grep 命令结合起来用
ls -l | grep python
3、几个常见的 Ubuntu 命令:
# 安装指定的工具,如 nginx
apt-get install nginx
# 检查 /etc/apt/sources.list 文件中的工具列表并更新
apt-get update
# 检查并更新本机已安装的工具的版本
sudo apt-get upgrade
注意: 这些工具的最新版本是由 Ubuntu 官网来定义的,最新的版本不一定是最好的,也可能是不适用的
4、Linux系统初始化的时候,root 用户是没有设置密码的,需要手动对 root 用户设置密码
$passwd root;
新密码:
再次输入新密码:
5、linux下查看文件编码及修改编码:
在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式
:set fileencoding=utf-8
6、在Linux系统中使用UNIX标准的编码格式
比如,某个文件可能是从 windows 上传过来的,那么文件的编码格式可能会无法被 Linux识别,这个时候需要统一编码格式
a、安装 dos2unix
b、执行 dos2unix [fileName]
这样就可以将编码格式统一为 utf-8
https://blog.csdn.net/u010445297/article/details/61668582
7、sh install.sh 报错解决
a、检查 install.sh 脚本的编码格式:确定是 utf-8,没有问题
b、install.sh 脚本文件是从 DolphinScheduelr 官方获取的文件,报错的位置没有被修改过,所以该脚本文件本身的代码也不应该有问题
c、由于操作系统是刚装好的,因此,怀疑 sh 的命令可能有问题,这里查看了 /bin/sh 的软连接,指向了 dash ,而非 bash 。
因此,需要将 dash 改为 bash :
sudo dpkg-reconfigure dash
出现的界面中选择 NO, 之后就可以正常用 sh 命令执行 .sh 脚本文件了。
参考文章:
https://www.cnblogs.com/xudong-bupt/p/7883040.html