[Introdução ao Flink] Instalação e implantação do Flink em centos (modo autônomo)


Conceitos Básicos

Executar o aplicativo Flink é na verdade muito simples, mas antes de executar o aplicativo Flink, ainda é necessário entender os vários componentes do tempo de execução do Flink, porque isso envolve a configuração do aplicativo Flink. Conforme mostrado na Figura 1, este é um programa de processamento de dados escrito pelo usuário usando a API DataStream. Pode-se ver que os operadores que não podem ser encadeados em um gráfico DAG serão separados em tarefas diferentes, o que significa que uma tarefa é a menor unidade de agendamento de recursos no Flink.

Insira a descrição da imagem aqui

图 1. Fluxos de dados paralelos

Conforme mostrado na Figura 2 abaixo, a operação real do Flink inclui dois tipos de processos:
JobManager (também conhecido como JobMaster): Coordenar a execução distribuída de tarefas, incluindo agendamento de tarefas, coordenação da criação de pontos de verificação e coordenação de cada recuperação de tarefa de Checkpoint quando Job failover, etc.

TaskManager (também conhecido como Worker): executa tarefas no Dataflow, incluindo alocação de buffer de memória, transmissão de fluxo de dados, etc.

Insira a descrição da imagem aqui

Figura 2. Diagrama da arquitetura Flink Runtime

Conforme mostrado na Figura 3, Task Slot é a menor unidade de alocação de recursos em um TaskManager.O número de Task Slots em um TaskManager significa quantos processamentos de tarefas simultâneos podem ser suportados. Deve-se observar que vários operadores podem ser executados em um slot de tarefa e, geralmente, esses operadores podem ser processados ​​por encadeamento juntos.
Insira a descrição da imagem aqui

Figura 3. Processo

Instalação e implantação

Instale e implante o Java 8 no centos primeiro

Baixe o pacote de instalação do flink

cd /opt/tools

# 下载flink1.12.0版本
wget http://mirrors.estointernet.in/apache/flink/flink-1.12.0/flink-1.12.0-bin-scala_2.11.tgz

# 解压压缩包
tar -zxvf flink-1.12.0-bin-scala_2.11.tgz -C /opt/modules/

Execute o Flink em modo autônomo

A maneira mais fácil de executar aplicativos Flink é rodar no modo autônomo.
Inicie o cluster:

./bin/start-cluster.sh

Abra http://127.0.0.1:8081/ para ver a interface da web do Flink.
Insira a descrição da imagem aqui

Tente enviar a tarefa de contagem de palavras:

./bin/flink run examples/streaming/WordCount.jar

Você pode explorar as informações exibidas na interface da Web. Por exemplo, podemos olhar o log stdout do TaskManager para ver o resultado do cálculo do Word Count.
Também podemos tentar especificar nosso próprio arquivo local como entrada por meio do parâmetro "-input" e, em seguida, executar:

./bin/flink run examples/streaming/WordCount.jar --input ${your_source_file} --output ${your_sink_file}

Pare o cluster:

./bin/stop-cluster.sh

Introdução de configuração comum

conf / slaves
conf / slaves é usado para configurar a implantação do TaskManager. Na configuração padrão, apenas um processo TaskManager será iniciado. Se você quiser adicionar um processo TaskManager, você só precisa adicionar uma linha de "localhost" ao Arquivo.
Você também pode adicionar diretamente um novo TaskManager através do comando "./bin/taskmanager.sh start":
./bin/taskmanager.sh start | start-foreground | stop | stop-all
conf / flink-conf.yaml
conf / flink -conf.yaml é usado para configurar os parâmetros operacionais de JM e TM. As configurações comumente usadas são:

# The total process memory size for the JobManager.
#
# Note this accounts for all memory usage within the JobManager process, including JVM metaspace and other overhead.
# 包括JobManager进程中的所有内存使用,包括JVM元空间和其他开销
jobmanager.memory.process.size: 1600m


# The total process memory size for the TaskManager.
#
# Note this accounts for all memory usage within the TaskManager process, including JVM metaspace and other overhead.
# 这包括TaskManager进程中的所有内存使用,包括JVM元空间和其他开销
taskmanager.memory.process.size: 1728m

# To exclude JVM metaspace and overhead, please, use total Flink memory size instead of 'taskmanager.memory.process.size'.
# It is not recommended to set both 'taskmanager.memory.process.size' and Flink memory.
# 要排除JVM元空间和开销,请使用总Flink内存大小,而不是'taskmanager.memory.process.size'。不建议同时设置'taskmanager.memory.process. '和Flink内存
# taskmanager.memory.flink.size: 1280m

# The number of task slots that each TaskManager offers. Each slot runs one parallel pipeline.
# 每个任务管理器提供的任务槽数。每个插槽运行一个并行管道
taskmanager.numberOfTaskSlots: 1

# The parallelism used for programs that did not specify and other parallelism.
# 用于未指定程序的并行度和其他并行度
parallelism.default: 1

Visualização e configuração de log

Os logs de inicialização do JobManager e TaskManager podem ser encontrados no subdiretório Log do diretório binário Flink. Os arquivos prefixados com "flink- {id} - $ {hostname}" no diretório Log correspondem à saída do JobManager. Existem três arquivos:

  • flink-${user}-standalonesession-${id}-${hostname}.log: Log de saída no código

  • flink-${user}-standalonesession-${id}-${hostname}.out: Saída Stdout durante a execução do processo

  • flink-${user}-standalonesession-${id}-${hostname}-gc.log: Log JVM GC

Os arquivos prefixados com "flink- {id} - $ {hostname}" no diretório Log correspondem à saída do TaskManager e também incluem três arquivos, que são consistentes com a saída do JobManager.

O arquivo de configuração de log está no subdiretório conf do diretório binário Flink, onde:

  • log4j-cli.properties: Configuração de log usada ao usar a linha de comando do Flink, como a execução do comando "flink run"

  • log4j-yarn-session.properties: Configuração de log usada ao iniciar com yarn-session.sh e executar a linha de comando

  • log4j.properties: Independentemente do modo Standalone ou Yarn, a configuração de log usada no JobManager e no TaskManager é log4j.properties

Esses três arquivos "log4j. * Properties" têm, respectivamente, três arquivos "logback. * Xml" correspondentes. Se quiser usar o Logback, você só precisa excluir o arquivo "log4j. * Properties" correspondente. A relação correspondente é segue:
log4j-cli.properties -> logback-console.xml

log4j-yarn-session.properties -> logback-yarn.xml

log4j.properties -> logback.xml

Deve-se notar que tanto "flink- {id} - e {user} -taskexecutor- {hostname}" têm ", {id}" indicando que este processo está em todos os processos da função (JobManager ou TaskManager) nesta máquina A seqüência de inicialização do sistema começa em 0 por padrão.

Explore mais

Tente executar o comando "./bin/start-cluster.sh" repetidamente e, em seguida, examine a página da web (ou execute o comando jps) para ver o que acontece? Você pode tentar examinar o script de inicialização e analisar o motivo. Então você pode executar repetidamente "./bin/stop-cluster.sh" e ver o que acontece após cada execução.

[fuyun@bigdata-training tools]$ /opt/modules/flink-1.12.0/bin/start-cluster.sh 
Starting cluster.
Starting standalonesession daemon on host bigdata-training.fuyun.com.
Starting taskexecutor daemon on host bigdata-training.fuyun.com.
[fuyun@bigdata-training tools]$ 
[fuyun@bigdata-training tools]$ 
[fuyun@bigdata-training tools]$ /opt/modules/flink-1.12.0/bin/start-cluster.sh 
Starting cluster.
[INFO] 1 instance(s) of standalonesession are already running on bigdata-training.fuyun.com.
Starting standalonesession daemon on host bigdata-training.fuyun.com.
[INFO] 1 instance(s) of taskexecutor are already running on bigdata-training.fuyun.com.
Starting taskexecutor daemon on host bigdata-training.fuyun.com.
[fuyun@bigdata-training tools]$ 
[fuyun@bigdata-training tools]$ 
[fuyun@bigdata-training tools]$ /opt/modules/flink-1.12.0/bin/start-cluster.sh 
Starting cluster.
[INFO] 1 instance(s) of standalonesession are already running on bigdata-training.fuyun.com.
Starting standalonesession daemon on host bigdata-training.fuyun.com.
[INFO] 2 instance(s) of taskexecutor are already running on bigdata-training.fuyun.com.
Starting taskexecutor daemon on host bigdata-training.fuyun.com.
[fuyun@bigdata-training tools]$ 
[fuyun@bigdata-training tools]$ /opt/modules/flink-1.12.0/bin/stop-cluster.sh 
Stopping taskexecutor daemon (pid: 15368) on host bigdata-training.fuyun.com.
No standalonesession daemon (pid: 15053) is running anymore on bigdata-training.fuyun.com.
[fuyun@bigdata-training tools]$ 
[fuyun@bigdata-training tools]$ /opt/modules/flink-1.12.0/bin/stop-cluster.sh 
Stopping taskexecutor daemon (pid: 14508) on host bigdata-training.fuyun.com.
No standalonesession daemon (pid: 14132) is running anymore on bigdata-training.fuyun.com.

A inicialização repetida solicitará quantas sessões autônomas e instâncias de taskexecutor estão em execução. Cada vez que você iniciar o taskexecutor, uma será adicionada, mas a sessão autônoma não será adicionada. Sempre há apenas uma instância
que adicionará o processo TaskManagerRunner por meio de jps, mas StandaloneSessionClusterEntrypoint sempre been only Quando um processo
é interrompido repetidamente, ele solicitará que taskexecute pid e autônomo pid de sessão pare.

[fuyun@bigdata-training flink-1.12.0]$ jps
13284 StandaloneSessionClusterEntrypoint
39348 DataNode
38374 NodeManager
6007 JobHistoryServer
39289 NameNode
13595 TaskManagerRunner
14508 TaskManagerRunner
16364 QuorumPeerMain
2894 RunJar
14671 Jps
38319 ResourceManager
[fuyun@bigdata-training flink-1.12.0]$ jps
13284 StandaloneSessionClusterEntrypoint
39348 DataNode
38374 NodeManager
6007 JobHistoryServer
15368 TaskManagerRunner
39289 NameNode
13595 TaskManagerRunner
14508 TaskManagerRunner
16364 QuorumPeerMain
2894 RunJar
15439 Jps
38319 ResourceManager

Ao observar a situação do arquivo no diretório de log, o id após a sessão autônoma e o taskexecutor aumentará toda vez que for iniciado:

[fuyun@bigdata-training flink-1.12.0]$ ls log/
flink-fuyun-standalonesession-0-bigdata-training.fuyun.com.log  flink-fuyun-standalonesession-2-bigdata-training.fuyun.com.log  flink-fuyun-taskexecutor-1-bigdata-training.fuyun.com.log
flink-fuyun-standalonesession-0-bigdata-training.fuyun.com.out  flink-fuyun-standalonesession-2-bigdata-training.fuyun.com.out  flink-fuyun-taskexecutor-1-bigdata-training.fuyun.com.out
flink-fuyun-standalonesession-1-bigdata-training.fuyun.com.log  flink-fuyun-taskexecutor-0-bigdata-training.fuyun.com.log       flink-fuyun-taskexecutor-2-bigdata-training.fuyun.com.log
flink-fuyun-standalonesession-1-bigdata-training.fuyun.com.out  flink-fuyun-taskexecutor-0-bigdata-training.fuyun.com.out       flink-fuyun-taskexecutor-2-bigdata-training.fuyun.com.out

Repita a operação start-stop e start-stop, você verá que o .idsufixo será adicionado após o log da sessão autônoma e do executor de tarefas , e o id aumentará de acordo com o número de vezes que você repetir a operação

[fuyun@bigdata-training flink-1.12.0]$ ls log/
flink-fuyun-standalonesession-0-bigdata-training.fuyun.com.log    flink-fuyun-standalonesession-0-bigdata-training.fuyun.com.out  flink-fuyun-taskexecutor-0-bigdata-training.fuyun.com.log.1
flink-fuyun-standalonesession-0-bigdata-training.fuyun.com.log.1  flink-fuyun-taskexecutor-0-bigdata-training.fuyun.com.log       flink-fuyun-taskexecutor-0-bigdata-training.fuyun.com.out

Acho que você gosta

Origin blog.csdn.net/lz6363/article/details/112468441
Recomendado
Clasificación