Início Tecnologia Como consertar o Sqoop não encontrado e Classnotfound em Dolphinscheduler

Como consertar o Sqoop não encontrado e Classnotfound em Dolphinscheduler

2
0

 

A integração do Dolphinscheduler ao SQOOP pode otimizar a sincronização de dados entre os sistemas. Mas os iniciantes geralmente se deparam com erros frustrantes durante a configuração e execução.

Este guia orienta você através de armadilhas comuns, completas com mensagens de erro, soluções e dicas de configuração do mundo real. Esteja você lutando com variáveis ​​ambientais, problemas de patrimão de classe ou comandos malformados do SQOOP, este artigo ajudará você a obter dados fluindo sem tempo.

1. Erro ao criar um inquilino em Dolphinscheduler: permissão negada

Se você vir um erro nos logs indicando permissões insuficientes ao criar um inquilino em Dolphinscheduler, poderá ativar permissões usando o seguinte comando:

hdfs dfs -chmod 777 /

2. Encontrando o seguinte erro

Sqoop: o comando não pode ser encontrado

Os problemas possíveis podem ser:

  1. O SQOOP não está instalado;
  2. ou está instalado, mas não configurado nas variáveis ​​de ambiente de Dolphinscheduler.
  3. O caminho completo pode ser usado?

Vamos verificar como o Dolphinscheduler se integra ao Sqoop:

” alt=”” aria-hidden=”true” />

No final do arquivo de configuração mostrado acima, adicione as seguintes linhas:

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

Em seguida, reinicie Dolphinscheduler:

# Check status
bash ./bin/dolphinscheduler-daemon.sh status standalone-server

# Stop DolphinScheduler
bash ./bin/dolphinscheduler-daemon.sh stop standalone-server

# Start DolphinScheduler
bash ./bin/dolphinscheduler-daemon.sh start standalone-server

3. Se você encontrar o seguinte erro:

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 

Solução temporária:

Copie o QueryResult.jar arquivo para o lib Diretório de Sqoop.

[INFO] 2024-09-25 06:19:16.083 +0000 -  -> Note: /tmp/sqoop-root/compile/46c0c4b3def5aba0c202ae9664234de6/QueryResult.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

# Based on the log, go to this path:
cd /tmp/sqoop-root/compile/46c0c4b3def5aba0c202ae9664234de6

# Copy the jar file
cp /tmp/sqoop-root/compile/46c0c4b3def5aba0c202ae9664234de6/QueryResult.jar  /opt/installs/sqoop/lib/

Solução permanente:

Adicione a seguinte linha ao arquivo de configuração de Dolphinscheduler:

33

Na parte inferior do arquivo de configuração, adicione:

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

Após a configuração, reinicie Dolphinscheduler:

# Check status
bash ./bin/dolphinscheduler-daemon.sh status standalone-server

# Stop
bash ./bin/dolphinscheduler-daemon.sh stop standalone-server

# Start
bash ./bin/dolphinscheduler-daemon.sh start standalone-server

4. Exemplo de log de erros:

[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 - Error parsing arguments for import:
    2024-09-25 14:27:52,825 ERROR [main] tool.BaseSqoopTool - Unrecognized argument: dt
    2024-09-25 14:27:52,825 ERROR [main] tool.BaseSqoopTool - Unrecognized argument: 2024-09-24
    ...

Isso indica que há um erro de sintaxe no comando sqoop usado no fluxo de trabalho Dolphinscheduler:

Verifique duas vezes o comando sqoop do seu fluxo de trabalho:

Exclua o parâmetro sqoop:

[INFO] 2024-09-25 06:34:34.639 +0000 -  -> Sqoop version: 1.4.7
WARN - Setting password on command-line is insecure. Consider using -P instead.
ERROR - Must specify destination with --target-dir. Try --help for usage instructions.

Se isso acontecer, modifique o comando:

Caminho alvo da Hive: /tmp/user_orclog

Se você vir o seguinte erro de sintaxe SQL:

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

→ Substitua citações duplas por citações únicas na sua instrução SQL.

5. Erro de colméia

Caused by: org.apache.hive.service.cli.HiveSQLException: Error while compiling statement: FAILED: ParseException line 45:21 cannot recognize input near ';' '' '' in expression specification

Solução:

Use o tipo de tarefa SQL e não adicione um ponto e vírgula (;) no final da declaração.

fonte