注意事项
zookeeper版本兼容要查看dolphinscheduler的libs目录下zookeeper的jar包
CDH6.3.2
DolphinScheduler3.0.0
使用CDH或其他大数据平台,注意保持用户组一致,CHD使用的是supergroup用户组
前置条件
默认CDH以正确安装并启动
至少官方要求的基础环境以正确安装并配置,点击跳转
使用mysql需要驱动包 mysql-connector-java-8.0.16+.jar,同时所有服务的libs里面都需要
zookeeper使用CDH中就可以,官网要求3.4.6+,但是CDH的3.4.5也可以使用
开始部署
配置用户免密及权限(官网没有创建用户组)
groupadd supergroup
# 创建用户并指定用户组,并修改登录方式
useradd dolphinscheduler -g supergroup -m -s /bin/bash
# 添加密码
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
免密登录配置(所有操作都要使用dolphinscheduler操作)
su dolphinscheduler
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
ssh-copy-id localhost
#输入yes并输入密码,如果以下命令不需要输入密码,则配置成功
ssh localhost
下载二进制包 ,点击下载
tar -xvzf apache-dolphinscheduler-3.0.0-bin.tar.gz
# 修改目录权限,使得部署用户对二进制包解压后的 apache-dolphinscheduler-*-bin 目录有操作权限
chown -R dolphinscheduler:supergroup apache-dolphinscheduler-*-bin
cd apache-dolphinscheduler-3.0.0-bin/
将mysql-connector-java-8.0.20.jar复制或上传到当前目录
创建脚本cp_mysql.sh,粘贴一下内容
#!/bin/bash
cp -rf mysql-connector-java-8.0.20.jar api-server/libs/
cp -rf mysql-connector-java-8.0.20.jar alert-server/libs/
cp -rf mysql-connector-java-8.0.20.jar master-server/libs/
cp -rf mysql-connector-java-8.0.20.jar worker-server/libs/
cp -rf mysql-connector-java-8.0.20.jar tools/libs/
保存退出并授权执行
chmod +x cp_mysql.sh
./cp_mysql.sh
修改配置文件install_env.sh dolphinscheduler_env.sh
官网缺少的数据库初始化
按照官网教程部署配置mysql,创建数据库,用户等
CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON dolphinscheduler.* TO 'dolphinscheduler'@'%' IDENTIFIED BY 'dolphinscheduler@123!';
GRANT ALL ON dolphinscheduler.* TO 'dolphinscheduler'@'localhost' IDENTIFIED BY 'dolphinscheduler@123!';
flush privileges;
bash tools/bin/upgrade-schema.sh
[注意]hdfs相关配置
如果需要使用hdfs等依赖组件配置,需要修改master-server,worker-server,api-server的conf/common.properties,这个文件默认是一样的,可以修改一份后直接复制
修改后,执行安装脚本
bash bin/install.sh
问题总结
如果启动失败,请检查zookeeper版本是否兼容,bin/env下面的两个配置文件是否配置正确
日志文件查看在配置的installPath路径的下的master-server/logs/dolphinscheduler-master.log
报错1:zookeeper connect timeout: localhost:2181
修改master-server/conf/application.yaml中的block-until-connected为6000ms
报错2:Failed to put registry key: /nodes/master报错
基本都是版本问题,可以查看libs下面的zookeeper版本
报错3: 本地执行spark报错NoSuchMethodError
org.apache.spark.sql.AnalysisException: java.lang.NoSuchMethodError: org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.getProxy(Lorg/apache/hadoop/hive/conf/HiveConf;Lorg/apache/hadoop/hive/metastore/HiveMetaHookLoader;Ljava/util/Map;Ljava/lang/String;)Lorg/apache/hadoop/hive/metastore/IMetaStoreClient;;
需要将本地项目依赖的所有jar上传,检查依赖中是否缺少或版本不一致或存在多个版本
完成成功使用
访问http://localhost:12345/dolphinscheduler
账号admin
密码dolphinscheduler123
使用教程
Bug及问题
- 资源中心创建文件夹失败,报错未启用配置
修改Hdfs配置api-server/conf/common.properties文件来设置存储为hdfs,并复制core-site.xml,hdfs-site.xml复制到当前目录
- DolphinScheduler上传大文件失败,api日志报错No suitable resolver
前端请求超时取消问题解决方法
- 在非master节点部署DolphinScheduler会出现用户权限问题,尽可能在master节点或cm服务端所在节点部署,DolphinScheduler创建的租户无读写权限,即使加入supergroup组也无权限,保持用户同步,比如DolphinScheduler部署服务器上新增test用户,master节点也要新增test用户,然后命令刷新映射
#新增用户指定supergroup组(cm主节点和DolphinScheduler部署机器)
useradd test -g supergroup -s /bin/bash
#刷新用户及组映射
su -s /bin/bash -c "hdfs dfsadmin -refreshUserToGroupsMappings" hdfs
总结
遇到配置问题或bug,按照开发思路,去排查,基本都能解决或者取issue搜索,DolphinScheduler的配置文件里面有详细的说明,3.x后的官方教程写的比较粗
版权归原作者 Zakza 所有, 如有侵权,请联系我们删除。