文章目录
海豚常见问题
常用命令:
命令 | 含义 |
---|---|
bin/start-all.sh | 集群群起 |
bin/stop-all.sh | 集群群停 |
bin/status-all.sh | 查看状态 |
dolphinscheduler-daemon.sh start/stop master-server | 单独启动或者停止master-server |
dolphinscheduler-daemon.sh start/stop worker-server | 单独启动或者停止worker-server |
dolphinscheduler-daemon.sh start/stop api-server | 单独启动或者停止api-server |
dolphinscheduler-daemon.sh start/stop alert-server | 单独启动或者停止alert-server(告警) |
使用问题
1. 认证问题
**修改几个配置 common.properties文件
resource.hdfs.root.user=hdfs
resource.hdfs.fs.defaultFS=hdfs://nameservice1:8020
hadoop.security.authentication.startup.state=true
java.security.krb5.conf.path=/etc/krb5.conf
login.user.keytab.username=rtassets@CINDASC.COM
login.user.keytab.path=/home/rtassets/rtassets.keytab
**Hdfs下建个目录/user/dolphinscheduler/ 所属用户给rtassets
**复制hdfs 与 core 文件到dolphinscheduler conf目录下
2. 时区问题
3. jdk问题导致的认证问题
Hive -e ‘select 1’
不加载还能跑,加载了就跑不了了
4. 海豚调度sqoop任务问题
(1. 海豚不允许脚本有空行出现
资源中心的shell脚本不允许有空行存在,挺鸡肋的。不如直接在工作流中配置shell节点,然后直接将脚本内容写在里面,那个地方没有要求,而且之后新的版本做了优化,有编辑提示的功能。
(2. 脚本调脚本:权限不足
+sudo -u ‘有权限的用户’
(3. 直接执行某个表的sqoop同步任务:
cd /opt/cloudera/parcels/CDH/lib/sqoop/lib
ln -s ../../../jars/hadoop-common-3.0.0-cdh6.3.2.jar hadoop-common-3.0.0-cdh6.3.2.jar
find . -name "*.jar"| awk '{print "jar -tf "$1}'| sh -x | grep -i "mapreduce/InputFormat.class"
ln -s ../../../jars/hadoop-mapreduce-client-core-3.0.0-cdh6.3.2.jar hadoop-mapreduce-client-core-3.0.0-cdh6.3.2.jar
ln -s ../../../jars/hadoop-mapreduce-client-jobclient-3.0.0-cdh6.3.2.jar hadoop-mapreduce-client-jobclient-3.0.0-cdh6.3.2.jar
ln -s ../../../jars/hadoop-mapreduce-client-common-3.0.0-cdh6.3.2.jar hadoop-mapreduce-client-common-3.0.0-cdh6.3.2.jar
(4. sudo权限不足
现有 用户不知道为什么无法执行, 之前ois系统还可以执行,重新定义工作流以后也不行了
配置sudo 权限 没有用
改脚本:
sudo -u用户 sh xxxx.sh
5. 海豚配置hive/impala数据源问题
(1.海豚连接hive数据源配置
Hive开启了认证配置,url没有
连接参数设置
{“principal”:“hive/cdh209@HADOOP.COM”}
缺少exec-包
ln -s /opt/cloudera/parcels/CDH/jars/hive-exec-2.1.1-cdh6.3.2.jar hive-exec-2.1.1-cdh6.3.2.jar
(2. 配置完数据源报错,执行对应sql报错
报错:can’t find udf function resource
查看work日志:
a. 报错:No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt
认证过期,重启dolphinscheduler。
worker节点缺少hive-exec.jar
6. 告警测试出现的问题
(1. 查看告警所在服务器日志: cdh 213,告警模块未启动
缺: JDK
去213创建对应的目录
scp -r /dsg/dataxone/jdk/jdk1.8.0_281 dsg@cdh213:/dsg/dataxone/jdk/
Vim /etc/profile 的JAVA_HOME
Source /etc/profile
告警模块启起来了
告警所需环境jar包(各节点master,worker,api,alsert服务都要同步)
(2. 缺少hdfs相关配置文件
(3. 设置告警实例,告警组
(4. 集群停掉发出的邮件
(5. 集群停掉发出的邮件
(6. 任务只有在运行时才可以填相关告警
7. 海豚配置oracle、sqlserver数据源
需要填写ip,端口号,用户,密码,数据库名(实例名)
服务名或SID:选择SID或者服务名都可以
8. 疯狂打印日志
cp /etc/hadoop/conf/core-site.xml ./
cp /etc/hadoop/conf/hdfs-site.xml ./
chown dolphinscheduler:dolphinscheduler hdfs-site.xml
hown dolphinscheduler:dolphinscheduler core-site.xml
./zookeeper-client -server cdh207:2181,cdh208:2181,cdh209:2181
deleteall /dolphinscheduler
修改配置: api-server/conf
python-gateway:
enabled: false
修改zookeeper 内存大小
1G -> 2G
查看zookeeper节点master 有个null的删了
最后去海豚的元数据库, 发现t_ds_process_instance 这张表 112,115…等任务实例的工作流已经被删除,这些任务对应的工作流是source_to_stg*,于是操作数据库删除,然后重启
Mater节点即可
delete from dolphinscheduler.t_ds_process_instance where name like “source_to_stg%”;
bash ./bin/dolphinscheduler-daemon.sh stop master-server
bash ./bin/dolphinscheduler-daemon.sh start master-server
9. 执行任务报错: 没有驱动
- Worker节点 :Master/libs 目录下放一下oracle 驱动包
Worker/libs 目录下放一下oracle 驱动包
ln -s /opt/cloudera/parcels/CDH/lib/sqoop/lib/ojdbc6.jar ojdbc6.jar
所有 Sqoop lib包下放sqoop - oracle 驱动包
- 然后重启dolphinscheduler即可
10. 依赖定时失败
-
B 工作流的任务依赖 A工作流的任务
B的定时任务要稍微晚一点 -
依赖节点要设置失败重试机制
重启10次,每次间隔3分钟
11. 认证每天过期
写个crontab 定时任务重新生成
10 9,10 * * * kinit -kt /opt/module/dolphinscheduler-3.0.0_cluster/dolphinscheduler.keytab dolphinscheduler@HADOOP.COM
12. Sql节点仅支持一个sql,且前置sql设置参数不生效
有个sql报资源不足的错误
Yarn页面日志:
set yarn.nodemanager.vmem-pmem-ratio=3.0;
set mapreduce.map.memory.mb=2048;
set mapreduce.reduce.memory.mb=2048;
13. no Bean Vakudation provider could be found.
Ds刚启起来就挂掉了
最后删除各个模块下hive-jdbc-standalone.jar 解决了
14. 加载资源文件失效
由于认证问题
重启集群
15.多人使用同一个用户存在bug
经过验证,多人同时进入dsg用户,不会出现被挤掉的情况,但是如果其中有一个人退出dsg用户,那么所有人都会掉出至登陆页面。
16.DEPENDENT节点mysql元数据显示bug
在我们工作流之间通过DEPENDENT节点间接配置的串行任务中,依赖节点检测不到被依赖节点执行成功的状态或者失败的状态,那么任务实例中它们就会一直显示正在执行,但是实际上它们没有执行,这里是海豚的一个bug。没有什么影响就是一个显示问题,如果要删除,只能在元数据库mysql里删除。