DolphinScheduler+Sqoop 入门避坑:一文搞定数据同步常见异常

  1. 在DolphinScheduler中假如遇到创建租户时,报错,错误日志显示权限不足:

可以使用下面的语句去开启权限:

bash 复制代码
hdfs dfs -chmod 777 /
  1. 遇见下面的错误

检查 DolphinScheduler 如何整合 Sqoop 呢?

按照上边的图片里的路径和文档在最后边添加下边的代码:

bash 复制代码
export SQOOP_HOME=/opt/installs/sqoop

export PATH=$SQOOP_HOME/bin:$HADOOP_HOME/bin:$SPARK_HOME1/bin:$SPARK_HOME2/bin:$PYTHON_HOME/bin:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$DATAX_HOME/bin:$SEATUNNEL_HOME/bin:$CHUNJUN_HOME/bin:$PATH

然后重启一下DolphinScheduler:

vbscript 复制代码
查看ds状态:bash ./bin/dolphinscheduler-daemon.sh status standalone-server

关闭ds:bash ./bin/dolphinscheduler-daemon.sh stop standalone-server

开启ds:bash ./bin/dolphinscheduler-daemon.sh start standalone-server
  1. 若出现下边的错误
css 复制代码
    Caused by: java.lang.ClassNotFoundException: Class QueryResult not found
        at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:2571)
        at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2665)
        ... 12 more 

解决方案就是:拷贝一个 QueryResult.jar 到 sqoop 的 lib 下 【临时解决方案】

bash 复制代码
[INFO] 2024-09-25 06:19:16.083 +0000 -  -> 注: /tmp/sqoop-root/compile/46c0c4b3def5aba0c202ae9664234de6/QueryResult.java使用或覆盖了已过时的 API。
    注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。
    
通过日志看到一个位置:
cd /tmp/sqoop-root/compile/46c0c4b3def5aba0c202ae9664234de6
bash 复制代码
将此jar包拷贝
cp /tmp/sqoop-root/compile/46c0c4b3def5aba0c202ae9664234de6/QueryResult.jar  /opt/installs/sqoop/lib/

永久解决方案:

在 DolphinScheduler的配置文件中添加一句话:

在文档的最下边添加下边的代码

javascript 复制代码
 export HADOOP_CONF_DIR=/opt/installs/hadoop/etc/hadoop

配置完成后,重启 DolphinScheduler。

vbscript 复制代码
查看ds状态:bash ./bin/dolphinscheduler-daemon.sh status standalone-server

关闭ds:bash ./bin/dolphinscheduler-daemon.sh stop standalone-server

开启ds:bash ./bin/dolphinscheduler-daemon.sh start standalone-server
  1. 报错如下:
less 复制代码
[INFO] 2024-09-25 06:27:53.628 +0000 -  -> 2024-09-25 14:27:52,757 INFO  [main] sqoop.Sqoop (Sqoop.java:<init>(96)) - Running Sqoop version: 1.4.7
	2024-09-25 14:27:52,824 ERROR [main] tool.BaseSqoopTool (BaseSqoopTool.java:hasUnrecognizedArgs(333)) - Error parsing arguments for import:
	2024-09-25 14:27:52,825 ERROR [main] tool.BaseSqoopTool (BaseSqoopTool.java:hasUnrecognizedArgs(336)) - Unrecognized argument: dt
	2024-09-25 14:27:52,829 ERROR [main] tool.BaseSqoopTool (BaseSqoopTool.java:hasUnrecognizedArgs(336)) - Unrecognized argument: 2024-09-24
	2024-09-25 14:27:52,829 ERROR [main] tool.BaseSqoopTool (BaseSqoopTool.java:hasUnrecognizedArgs(336)) - Unrecognized argument: -m
	2024-09-25 14:27:52,829 ERROR [main] tool.BaseSqoopTool (BaseSqoopTool.java:hasUnrecognizedArgs(336)) - Unrecognized argument: 1
	2024-09-25 14:27:52,829 ERROR [main] tool.BaseSqoopTool (BaseSqoopTool.java:hasUnrecognizedArgs(336)) - Unrecognized argument: --connect
	2024-09-25 14:27:52,829 ERROR [main] tool.BaseSqoopTool (BaseSqoopTool.java:hasUnrecognizedArgs(336)) - Unrecognized argument: jdbc:mysql://192.168.233.131:3306/jrxd?allowLoadLocalInfile=false&autoDeserialize=false&allowLocalInfile=false&allowUrlInLocalInfile=false
	2024-09-25 14:27:52,830 ERROR [main] tool.BaseSqoopTool (BaseSqoopTool.java:hasUnrecognizedArgs(336)) - Unrecognized argument: --username
	2024-09-25 14:27:52,830 ERROR [main] tool.BaseSqoopTool (BaseSqoopTool.java:hasUnrecognizedArgs(336)) - Unrecognized argument: root
	2024-09-25 14:27:52,830 ERROR [main] tool.BaseSqoopTool (BaseSqoopTool.java:hasUnrecognizedArgs(336)) - Unrecognized argument: --password

通过以上可以大概猜到,是 sqoop 命令写错了。

出现这个错误说明是 DolphinScheduler 工作流中的sqoop 语句出错了。

csharp 复制代码
[INFO] 2024-09-25 06:34:34.639 +0000 -  -> 2024-09-25 14:34:33,636 INFO  [main] sqoop.Sqoop (Sqoop.java:<init>(96)) - Running Sqoop version: 1.4.7
    2024-09-25 14:34:33,674 WARN  [main] tool.BaseSqoopTool (BaseSqoopTool.java:applyCredentialsOptions(1120)) - Setting your password on the command-line is insecure. Consider using -P instead.
    Must specify destination with --target-dir. 
    Try --help for usage instructions.
[INFO] 2024-09-25 06:34:34.640 +0000 - FINALIZE_SESSION 

再出现错误,则按照下边的格式进行修改 :

如果出现以下语法错误:

ini 复制代码
     2024-09-25 14:36:53,044 ERROR [main] manager.SqlManager (LoggingUtils.java:logAll(43)) - Error executing statement: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%Y-%m-%d) = 2024-09-24 AND  (1 = 0)' at line 1
    java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%Y-%m-%d) = 2024-09-24 AND  (1 = 0)' at line 1
        at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)

则应该将双引号变单引号。

  1. 如果出现以下错误:
php 复制代码
Caused by: org.apache.hive.service.cli.HiveSQLException: Error while compiling statement: FAILED: ParseException line 45:21 cannot recognize input near ';' '<EOF>' '<EOF>' in expression specification
    at org.apache.hive.service.cli.operation.Operation.toSQLException(Operation.java:335)
    at org.apache.hive.service.cli.operation.SQLOperation.prepare(SQLOperation.java:199)

解决方式:使用 sql 模块,不要添加分号;。

原文链接:blog.csdn.net/m0_51350088...

本文由 白鲸开源科技 提供发布支持!

相关推荐
字节跳动数据平台15 小时前
代码量减少 70%、GPU 利用率达 95%:火山引擎多模态数据湖如何释放模思智能的算法生产力
大数据
得物技术16 小时前
深入剖析Spark UI界面:参数与界面详解|得物技术
大数据·后端·spark
武子康18 小时前
大数据-238 离线数仓 - 广告业务 Hive分析实战:ADS 点击率、购买率与 Top100 排名避坑
大数据·后端·apache hive
武子康2 天前
大数据-237 离线数仓 - Hive 广告业务实战:ODS→DWD 事件解析、广告明细与转化分析落地
大数据·后端·apache hive
大大大大晴天2 天前
Flink生产问题排障-Kryo serializer scala extensions are not available
大数据·flink
武子康4 天前
大数据-236 离线数仓 - 会员指标验证、DataX 导出与广告业务 ODS/DWD/ADS 全流程
大数据·后端·apache hive
武子康5 天前
大数据-235 离线数仓 - 实战:Flume+HDFS+Hive 搭建 ODS/DWD/DWS/ADS 会员分析链路
大数据·后端·apache hive
DianSan_ERP5 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
够快云库5 天前
能源行业非结构化数据治理实战:从数据沼泽到智能资产
大数据·人工智能·机器学习·企业文件安全
AI周红伟5 天前
周红伟:智能体全栈构建实操:OpenClaw部署+Agent Skills+Seedance+RAG从入门到实战
大数据·人工智能·大模型·智能体