DolphinScheduler usa resumo de problemas comuns
- Descrição
- Problemas comuns de ambiente de desenvolvimento
- Perguntas frequentes sobre a programação de implantação
- Perguntas frequentes sobre programação
-
-
-
- Falha no login inicial do sistema
- A página de monitoramento Master Worker está carregando muito ou não há dados na consulta
- O fluxo de trabalho é executado manualmente, mas não há dados na página da instância da tarefa
- O status da instância da tarefa é enviado com sucesso, mas nunca é executado
- Falha no upload do arquivo
- A consulta SQL foi bem-sucedida, mas a instância da tarefa falhou
- Falha na execução da tarefa de inserção de dados SQL
- load ou availablePhysicalMemorySize (G) é muito alto
- O status de monitoramento do Zookeeper é anormal
- Falha ao criar inquilino
- Mestre e trabalhador param de forma anormal
- Truncamento de dados: dados muito longos para a coluna 'app_link' na linha 1
-
-
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.
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
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
Reimportar dependências do maven.
Falha de execução do trabalhador relata ponteiro nulo NPE
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”
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
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
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 .
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.
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.
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.
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
.
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
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
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.
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
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
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
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