版本:DolphinScheduler 1.3.5
持续更新,建议收藏
1 目录权限问题
create execLocalPath : /tmp/dolphinscheduler/exec/process/2/8/22/31
java.io.IOException: Unable to create directory /tmp/dolphinscheduler/exec/process/2/8/22/31
修改目录所属组:
[root@cdh-xx tmp]# chown -R dolphinscheduler:dolphinscheduler dolphinscheduler/
根源是之前使用root用户启动dolphinscheduler,该目录由root用户创建,之后又用dolphinscheduler用户启动。
[root@cdh-xx ~]# ss -tnlp | grep 12345
LISTEN 0 50 :::12345 :::* users:(("java",pid=3829,fd=260))
2 租户问题
21/04/25 16:32:04 ERROR tool.ImportTool: Import failed: org.apache.hadoop.security.AccessControlException: Permission denied by sticky bit: user=001, path="/user/hive/warehouse/ods.db/s_r_customer_info":hive:hive:drwxr-xr-x, parent="/user/hive/warehouse/ods.db":impala:hive:drwxrwxrwt
见官方文档:
5.2 添加租户 租户对应的是Linux的用户,用于worker提交作业所使用的用户。如果linux没有这个用户,worker会在执行脚本的时候创建这个用户。
租户编码:租户编码是Linux上的用户,唯一,不能重复 管理员进入安全中心->租户管理页面,点击“创建租户”按钮,创建租户。
之前没有仔细阅读官方文档,创建了租户编码001,应创建linux对应用户,如hive,它会使用此用户执行脚本。
3 邮箱问题
org.apache.dolphinscheduler.alert.utils.MailUtils:[345] - Send email to [xx] failed
org.apache.commons.mail.EmailException: Sending the email to the following server failed :
Caused by: javax.mail.MessagingException: Could not connect to SMTP host: xx, port: 25, response: -1
telnet发现25端口不通,改为开启ssl,465端口
4 任务状态
装了Kerberos后,之前正常执行的sqoop脚本明明执行成功却显示失败,导致后面的作业无法执行。
在dolphinscheduler页面上查看日志并没有报错,查看执行worker节点的日志,发现获取yarn应用运行状态失败401(用户没有访问权限,需要进行身份认证),然后就认定执行失败。
tail -f dolphinscheduler-worker.log
[ERROR] 2021-05-13 14:46:46.723 org.apache.dolphinscheduler.common.utils.HttpUtils:[70] - http get:401 response status code is not 200!
[ERROR] 2021-05-13 14:46:46.727 - [taskAppId=TASK-23-156-261]:[404] - yarn applications: [application_1620791566083_0031] status failed
java.lang.NullPointerException: null
at org.apache.dolphinscheduler.common.utils.HadoopUtils.getApplicationStatus(HadoopUtils.java:415)
at org.apache.dolphinscheduler.server.worker.task.AbstractCommandExecutor.isSuccessOfYarnState(AbstractCommandExecutor.java:390)
at org.apache.dolphinscheduler.server.worker.task.AbstractCommandExecutor.run(AbstractCommandExecutor.java:230)
at org.apache.dolphinscheduler.server.worker.task.shell.ShellTask.handle(ShellTask.java:98)
at org.apache.dolphinscheduler.server.worker.runner.TaskExecuteThread.run(TaskExecuteThread.java:133)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
[INFO] 2021-05-13 14:46:46.727 org.apache.dolphinscheduler.server.worker.runner.TaskExecuteThread:[141] - task instance id : 261,task final status : FAILURE
查看dolphinscheduler 开启kerberos配置,没有问题
经过一番折腾,没有找到完美的解决方案,只好暂时关闭yarn的 HTTP Kerberos 认证
关闭 HTTP Web 控制台的 Kerberos 身份验证
PS:
sqoop执行时报错,不影响运行
1.错误: 读取/usr/share/java/mysql-connector-java.jar时出错; cannot read zip file
2.ERROR orm.CompilationManager: Could not rename /tmp/sqoop-hive/compile/4c4230b9e5d67829fa1f847893ff8560/QueryResult.java to /tmp/dolphinscheduler/exec/process/2/7/25/35/./QueryResult.java. Error: /tmp/dolphinscheduler/exec/process/2/7/25/35/./QueryResult.java (权限不够)
sqoop官方文档:http://sqoop.apache.org/docs/1.4.3/SqoopUserGuide.html
dolphinscheduler官方文档:https://dolphinscheduler.apache.org/zh-cn/docs/latest/user_doc/system-manual.html