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


                                                                                                                                                <ol> 
  • 在DolphinScheduler中假如遇到创建租户时,报错,错误日志显示权限不足:
  • 可以使用下面的语句去开启权限:

    hdfs dfs -chmod 777 /
    
    1. 遇见下面的错误

    检查 DolphinScheduler 如何整合 Sqoop 呢?

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

    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:

    查看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. 若出现下边的错误

       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 下 【临时解决方案】

    [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
    

    将此jar包拷贝
    cp /tmp/sqoop-root/compile/46c0c4b3def5aba0c202ae9664234de6/QueryResult.jar  /opt/installs/sqoop/lib/
    

    永久解决方案:

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

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

     export HADOOP_CONF_DIR=/opt/installs/hadoop/etc/hadoop
    

    配置完成后,重启 DolphinScheduler。

    查看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. 报错如下:

      [INFO] 2024-09-25 06:27:53.628 +0000 – -> 2024-09-25 14:27:52,757 INFO [main] sqoop.Sqoop (Sqoop.java:(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 语句出错了。

    [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 
    

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

    如果出现以下语法错误:

         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. 如果出现以下错误:

      Caused by: org.apache.hive.service.cli.HiveSQLException: Error while compiling statement: FAILED: ParseException line 45:21 cannot recognize input near ‘;’ ‘‘ ‘‘ 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 模块,不要添加分号;。

    原文链接:https://blog.csdn.net/m0_51350088/article/details/148723463

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

                                                                                    </div>


    维权提醒:如果你或身边的朋友近五年内因投顾公司虚假宣传、诱导交费导致亏损,别放弃!立即联系小羊维权(158 2783 9931,微信同号),专业团队帮你讨回公道! 📞立即免费咨询退费


    Source link

    未经允许不得转载:紫竹林-程序员中文网 » DolphinScheduler+Sqoop 入门避坑:一文搞定数据同步常见异常

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址
    关于我们 免责申明 意见反馈 隐私政策
    程序员中文网:公益在线网站,帮助学习者快速成长!
    关注微信 技术交流
    推荐文章
    每天精选资源文章推送
    推荐文章
    随时随地碎片化学习
    推荐文章
    发现有趣的