Resumo de problemas comuns no uso do Apache DolphinScheduler (atualização contínua)

Descrição

Os problemas comuns no artigo são encontrados durante o uso. Se o artigo não apresentar o problema que você encontrou, envie um problema no github.

Endereço do site oficial

problema do github 地址

Precauções para uso

Pacote de instalação e diretório de instalação
	安装包:是下载的的源文件,只有在安装时候才会用到,相安装好调度可以删除该目录。
	安装目录:运行install.sh后调度安装的目录,对调度管理都在安装目录下操作,比如 启停服务,、配置、查看日志等等。
	官网文档中的描述如下(配置在install.sh中),**记住**任何操作都在安装目录下操作。
 #将DS安装到哪个目录,如: /opt/soft/dolphinscheduler,不同于现在的目录
  installPath="/opt/soft/dolphinscheduler"
Diretório de visualização de log

Supondo que a configuração da instalação seja installPath = "/ opt / soft / dolphinscheduler" durante a programação da instalação, o diretório de log está em
/ opt / soft / dolphinscheduler / logs

Ver log do trabalhador
tail -f /opt/soft/dolphinscheduler/logs/dolphinscheduler-worker.log

Verifique o log mestre
tail -f /opt/soft/dolphinscheduler/logs/dolphinscheduler-master.log

Ver log da API

tail -f /opt/soft/dolphinscheduler/logs/dolphinscheduler-api-server.log

Ver o registro de alerta

tail -f /opt/soft/dolphinscheduler/logs/dolphinscheduler-alert.log

Ver log de log do serviço de log

tail -f /opt/soft/dolphinscheduler/logs/dolphinscheduler-logger-server-huaweiyun.out

huaweiyun é o nome do host, modifique-o para seu local

Problemas comuns de ambiente de desenvolvimento

A porta de início da API é 8080, não 12345

No ambiente inicial, a configuração padrão da API é 12345, a
solução é
editar a configuração em execução e adicionar a seguinte configuração

-Dserver-api-server -Dspring.profiles.active=api

Insira a descrição da imagem aqui

Não consigo encontrar o driver mysql

Como o DolphinScheduler usa o postgresql por padrão, a dependência do driver mysql não é introduzida por padrão. Precisa modificar manualmente o pom.

Solução:
encontre pom.xml no diretório raiz

<dependency>
	<groupId>mysql</groupId>
	<artifactId>mysql-connector-java</artifactId>
	<version>${mysql.connector.version}</version>
	<scope>test</scope>
</dependency>

Remova <scope> test </ scope> e está tudo bem

Insira a descrição da imagem aqui

Reimportar dependências do maven.

Falha de execução do trabalhador relata ponteiro nulo NPE

Insira a descrição da imagem aqui

Solução:
adicione os seguintes parâmetros nas opções do WorkServer vm

-Dspring.profiles.active = trabalhador -Dlogging.config = “dolphinscheduler-server / src / main / resources / logback-worker.xml”

Insira a descrição da imagem aqui
Se o arquivo não puder ser encontrado, remova as aspas duplas

-Dspring.profiles.active = trabalhador -Dlogging.config = dolphinscheduler-server / src / main / resources / logback-worker.xml

Perguntas frequentes sobre a programação de implantação

Fonte de erro de implantação do Ubuntu: não encontrado

Insira a descrição da imagem aqui

Solução

Você pode usar Baidu palavras-chave do google ubuntu fonte: não encontrado Há uma solução

Erro 404 ao acessar o serviço API

Insira a descrição da imagem aqui

Solução

O nome do projeto está faltando na solicitação acima e o endereço completo é http: // ip: 12345 / dolphinscheduler /

Porta padrão da API 12235

Perguntas frequentes sobre programação

Falha no login inicial do sistema

Geralmente, este erro é a senha errada. A senha inicial para agendamento é a seguinte, preste atenção para copiar sem espaços.
Conta: admin
Senha: dolphinscheduler123

A página de monitoramento Master Worker está carregando muito ou não há dados na consulta

Através do comando jps, você pode ver os processos WorkerServer e MasterServer. Pode haver um motivo para zk estar inativo .
Insira a descrição da imagem aqui

Solução

Verifique se zk foi iniciado. Se não for iniciado, inicie o serviço zk. Em seguida, monitore a página para ver o status do trabalhador mestre

O fluxo de trabalho é executado manualmente, mas não há dados na página da instância da tarefa

Existem muitos fatores para este problema. Vamos supor que zk e worker master sejam iniciados com sucesso.
Ao verificar os logs do trabalhador, descobrimos que há uma carga de log ou availablePhysicalMemorySize (G) é muito alto. O problema é o mesmo que o após o carregamento do problema ou availablePhysicalMemorySize (G) é muito alto . Consulte o problema para obter soluções.

O status da instância da tarefa é enviado com sucesso, mas nunca é executado

Existem muitos fatores para este problema. A primeira análise da situação atual é que o arquivo de log do trabalhador dolphinscheduler-worker.log tem imprimido as seguintes tarefas de consumo de log: [], ainda há 1 tarefa a ser executada, o número de tarefas não diminuiu . Neste caso, o IP da configuração do grupo Worker associado à tarefa pode ser inconsistente com o IP do serviço Worker. A tarefa não pode ser executada.

Insira a descrição da imagem aqui

Solução:

Vá para Centro de Segurança-> Gerenciamento de filial do trabalhador e modifique o IP do grupo para ser consistente com o IP do serviço do trabalhador.
** Estilo negrito **

Falha no upload do arquivo

Supondo que os serviços de armazenamento de arquivos de pré-requisito tenham sido configurados, o upload tem o seguinte problema Nginx: 413 Request Entity Too Large. O motivo é o limite de upload de arquivos do Nginx.
Insira a descrição da imagem aqui

Solução:

Modifique /etc/nginx/nginx.conf. Aumente o limite de tamanho do arquivo de upload e aumente o limite de tamanho do arquivo de upload nginx na seção http {}

client_max_body_size 200M

Reinicie o ngnix

ps: Se a descrição não for detalhada, você pode usar a palavra-chave do Baidu no Google 413 nginx

A consulta SQL foi bem-sucedida, mas a instância da tarefa falhou

O log de falhas é o seguinte, pois o resultado da consulta SQL será enviado por e-mail e o erro do log é que nenhum serviço de e-mail está configurado
Insira a descrição da imagem aqui
.

Configure o arquivo de configuração do serviço de correio como conf / alert.properties

O exemplo de configuração é o seguinte, a configuração
Insira a descrição da imagem aqui
da caixa de correio 163. Para obter detalhes sobre a configuração da caixa de correio, consulte este artigo

Falha na execução da tarefa de inserção de dados SQL

[ERROR] 2020-06-05 10:20:07.756  - [taskAppId=TASK-9-493-494]:[336] - Can not issue data manipulation statements with executeQuery().
java.sql.SQLException: Can not issue data manipulation statements with executeQuery().
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1084)
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987)
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:973)
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:918)
	at com.mysql.jdbc.StatementImpl.checkForDml(StatementImpl.java:501)
	at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2150)
	at org.apache.dolphinscheduler.server.worker.task.sql.SqlTask.executeFuncAndSql(SqlTask.java:295)
	at org.apache.dolphinscheduler.server.worker.task.sql.SqlTask.handle(SqlTask.java:176)
	at org.apache.dolphinscheduler.server.worker.runner.TaskScheduleThread.run(TaskScheduleThread.java:142)
	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:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

Solução:

O motivo do erro é que o tipo de SQL é uma execução da consulta sem consulta. A solução é atualizar a tarefa e alterar o tipo de SQL para sem consulta
Insira a descrição da imagem aqui

load ou availablePhysicalMemorySize (G) é muito alto

O log de segundo plano do trabalhador sempre mostra o log a seguir, porque a memória do servidor ou CPU não é suficiente (porque o tamanho de heap padrão é 1G para inicialização agendada, se todos os 5 serviços forem iniciados, consumirá 5G de memória). Este é o mecanismo de autoproteção do trabalhador. Ele não aceitará novas tarefas. Ele continuará aceitando novas tarefas quando a tarefa atual for concluída ou quando houver excesso de CPU e memória.
Insira a descrição da imagem aqui

Solução

1 Se outros programas estiverem sendo executados (grande consumo de memória), você pode aguardar a conclusão de outras tarefas e observar se o trabalhador tem registros de capacidade insuficientes.

2 Se você é um tirano local, expanda diretamente a memória

3 Se a memória física da máquina não é sem 5G, há duas maneiras de lidar com isso

  • Você pode desligar alguns serviços primeiro, como alerta de morte, logger, etc. diretamente.
  • Você pode ajustar os parâmetros de inicialização, modificar o arquivo de configuração bin / dolphinscheduler-daemon.sh, modificar o valor -Xms para ser menor
export DOLPHINSCHEDULER_OPTS="-server -Xmx16g -Xms1g -Xss512k -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70"

Referência da fonte

O status de monitoramento do Zookeeper é anormal

zk inicia normalmente e o Master Worker inicia normalmente. Mas o status de autoverificação do nó zk é anormal, o que é devido à falha em obter a FourLetterWord de zk

Insira a descrição da imagem aqui
Solução

Primeiro execute o comando, localhost é o endereço do serviço

 echo ruok|nc localhost 2181

Se o seguinte prompt aparecer, você precisa modificar a configuração do zoo.cfg

ruok is not executed because it is not in the whitelist.

Adicione a seguinte configuração em zoo.cfg

  4lw.commands.whitelist=*

Reiniciar zk

Se não houver comando nc, você precisa instalar yum install nc primeiro

Referência da fonte

Falha ao criar inquilino

Para criar um locatário, você precisa usar o HDF, e erros gerais ocorrem ao operar o HDFS.
Os possíveis erros incluem se o hdfs está configurado, a operação de hdfs não está autorizada, etc.

Por exemplo, o seguinte não é nenhum prompt de permissão
Insira a descrição da imagem aqui

Solução

Ao encontrar este problema, primeiro olhe o api log e faça as alterações de acordo com os prompts de erro do log.
De qualquer forma, primeiro certifique-se de que seu HDFS foi configurado . (Atualmente, o principal é o tipo hdfs, outros tipos não foram tentados)

ps: Consulte este problema para modificação do arquivo de configuração hdfs

Mestre e trabalhador param de forma anormal

o motivo

O Mestre e o Trabalhador precisam relatar a pulsação ao zookeeper. Se a pulsação não for relatada dentro do tempo especificado, o Mestre e o Trabalhador irão parar automaticamente e o
seguinte registro aparecerá

[INFO] 2020-04-30 06:48:28.032 org.apache.dolphinscheduler.server.master.MasterServer:[180] - master server is stopping ..., cause : i was judged to death, release resources and stop myself
[INFO] 2020-04-30 06:48:29.425 org.apache.dolphinscheduler.server.master.runner.MasterSchedulerThread:[143] - master server stopped...
[INFO] 2020-04-30 06:48:31.033 org.apache.dolphinscheduler.server.master.MasterServer:[197] - heartbeat service stopped

Portanto, se o zookeeper perder a conexão (desligar), o Mestre e o Trabalhador também desligarão.

Solução

1 Certifique-se de que o serviço do zookeeper pode ser acessado normalmente.
2 Você pode modificar a configuração do tempo limite do zookeeper.
Na versão 1.2, o tempo limite é de 300 ms. Você pode alterar o
arquivo de configuração para conf / zookeeper.properties e modificá-lo de acordo com a situação real.

Consulte o problema

Truncamento de dados: dados muito longos para a coluna 'app_link' na linha 1

O motivo é que o campo app_link é muito longo

Solução

1) Antes da versão 1.3, o comprimento de t_ds_task_instance.app_link é 255. Você pode modificar o comprimento do campo, o script oficial

ALTER TABLE t_ds_task_instance ALTER COLUMN app_link type text

2) Você pode atualizar para a versão mais recente, o problema foi resolvido,

Consulte o problema

Acho que você gosta

Origin blog.csdn.net/samz5906/article/details/106434430
Recomendado
Clasificación