Especificando configurações adicionais para Analytics Engine powered by Apache Spark
Você pode definir configurações adicionais, além das padrão, como parte das etapas pós-instalação.
Configurações de nível de serviço
As seguintes especificações são opcionais e podem ser alteradas para modificar as configurações do nível de serviço:
serviceConfig:
schedulerForQuotaAndQueuing: "ibm-cpd-scheduler"
sparkAdvEnabled: true
jobAutoDeleteEnabled: true
kernelCullTime: 30
imagePullCompletions: 20
imagePullParallelism: "40"
kernelCleanupSchedule: "*/30 * * * *"
jobCleanupSchedule: "*/30 * * * *"
skipSELinuxRelabeling: false
mountCustomizationsFromCCHome: false
enableRemoteDataplane: false
enableRuntimeSslMode: true
| Propriedade | Descrição |
|---|---|
schedulerForQuotaAndQueuing |
Defina o agendador para os recursos de cota de recursos e enfileiramento.
|
sparkAdvEnabled |
Especifique se deseja exibir a interface do usuário do trabalho.
|
jobAutoDeleteEnabled |
Especifique se deseja excluir automaticamente os trabalhos após eles atingirem um estado terminal, como FINISHED ou FAILED. O padrão é true.
|
kernelCullTime |
O tempo, em minutos, durante o qual os kernels ociosos são mantidos.
|
imagePullCompletions |
O número de pods programados para extrair a Spark imagem em paralelo. Por exemplo, se você tiver 100 nós no cluster, defina:
Neste exemplo, pelo menos 100 nós irão baixar a imagem com sucesso, com 150 pods baixando a imagem em paralelo.
|
kernelCleanupSchedule |
O número de pods que devem ser concluídos para que a tarefa de extração de imagem seja concluída. Por exemplo, se você tiver 100 nós no cluster, defina:
Neste exemplo, pelo menos 100 nós irão baixar a imagem com sucesso, com 150 pods baixando a imagem em paralelo.
|
jobCleanupSchedule |
Substitua a analyticsengine_kernel_cull_time configuração para a limpeza do kernel CronJob.Por padrão, a limpeza do kernel
|
skipSELinuxRelabeling |
Especifique se deseja ignorar a SELinux reclassificação. Para usar esse recurso, você deve criar as definições
|
mountCustomizationsFromCCHome |
Especifique se deseja ativar drivers personalizados. Esses drivers precisam ser montados a partir do cc-home-pvc diretório. Common core servicesEste recurso está disponível apenas quando os Cloud Pak for Data common core services são instalados.
|
enableRemoteDataplane |
Especifique se deseja habilitar o plano de dados remoto. Para usar esse recurso, defina
|
enableRuntimeSslMode |
Especifique se deseja ativar o modo SSL. Para desativar esse recurso, defina
|
Para obter mais informações sobre como configurar as propriedades, consulte Administração.
Configurações no nível do tempo de execução
As seguintes especificações são opcionais e podem ser alteradas para modificar as configurações Analytics Engine powered by Apache Spark do nível de tempo de execução:
sparkRuntimeConfig:
maxDriverCpuCores: 5 # If you want to create Spark jobs with drive CPUs more than 5, set this value accordingly
maxExecutorCpuCores: 5 # If you want to create Spark jobs with more than 5 CPU per Executor, set this value accordingly
maxDriverMemory: "50g" # If you want to create Spark jobs with Drive Memory more than 50g, set this value accordingly
maxExecutorMemory: "50g" # If you want to create Spark jobs with more than 50g Memory per Executor, set this value accordingly
maxNumWorkers: 50 # If you want to create Spark jobs with more than 50 workers/executors, set this value accordingly
localDirScaleFactor: 10 # If you want to increase local disk space for your Spark jobs, set this value accordingly.
Configurações no nível da instância do serviço
As especificações a seguir são opcionais e podem ser alteradas para mudar as configurações de nível de instância de serviços. Cada instância Analytics Engine powered by Apache Spark de serviço possui uma cota de recursos (CPU/memória) definida por padrão. Isso pode ser mudado por meio da API para uma instância, mas para mudar os valores padrão para a criação de qualquer nova instância, atualize os valores a seguir.
serviceInstanceConfig:
defaultCpuQuota: 20 # defaultCpuQuota is the accumulative CPU consumption of Spark jobs created under an instance. It can be no more than 20
defaultMemoryQuota: 80 # defaultMemoryQuota is the accumulative memory consumption of Spark jobs created under an instance. It can be no more than 80 gigabytes.
sparkDefaults na spec seção do recurso Analytics Engine powered by Apache Spark personalizado (CR):
sparkDefaults:
mutableConfigs:
spark.ui.requestheadersize: 12k
immutableConfigs:
ae.kernel.idle_timeout: 1000mutableConfigs- Os parâmetros de configuração nesta seção são especificados por um administrador e podem ser substituídos para uma tarefa ou kernel específico.
immutableConfigs- Os parâmetros de configuração nesta seção são especificados por um administrador e não podem ser substituídos para uma tarefa ou kernel específico.
oc patch ae/analyticsengine-sample -p '{"spec": {"sparkDefaults":{"mutableConfigs":{"spark.ui.requestheadersize": "12k"}, "immutableConfigs":{"ae.kernel.idle_timeout":"1000"}}}}' --type=merge -n <cpd_instance_ns>| Propriedade | Descrição | Tipo | Especificação para arquivos.yml |
|---|---|---|---|
spec.scaleConfig |
Valores possíveis: Pequeno, Médio ou Grande. Padrão: Pequeno |
Sequência (parâmetro Choice) | N/D |
spec.serviceConfig |
Para mudar configurações de nível de serviço. | Objeto | N/D |
spec.serviceConfig.schedulerForQuotaAndQueuing |
Defina o programador para as funcionalidades de quota de recursos e enfileiramento. O agendador compatível é ibm-cpd-scheduler. |
Sequência | N/D |
spec.serviceConfig.sparkAdvEnabled |
Esta bandeira ativará ou desativará os recursos da interface do usuário Analytics Engine powered by Apache Spark do trabalho. Padrão: false |
Booleano | mecanismo de análise_spark_avançado_ativado |
spec.serviceConfig.jobAutoDeleteEnabled |
Configure como false se não desejar remover tarefas quando elas tiverem atingido estados terminais. Por exemplo, FINISHED/FAILED. Padrão: Verdadeiro |
Booleano | analyticsengine_job_auto_delete_enabled |
spec.serviceConfig.kernelCullTime |
Mude o valor para minutos se desejar remover o kernel inativo após X minutos. Padrão: 30 |
Número Inteiro | analyticsengine_kernel_cull_time |
spec.serviceConfig.imagePullCompletions |
Se você tiver um grande cluster Openshift, poderá atualizar imagePullCompletions e imagePullParallelism de forma apropriada. Padrão: 20 |
Número Inteiro | mecanismo_de_análise_imagem_conclusões |
spec.serviceConfig.imagePullParallelism |
Se você tiver 100 nós no cluster, configure imagePullCompletions: "100" e imagePullParallelism: "150". Padrão: 40 |
Número Inteiro | motor_de_análise_imagem_puxar_paralelismo |
spec.serviceConfig.kernelCleanupSchedule |
Por padrão, as tarefas cron de limpeza de kernel e de tarefas procuram kernels/tarefas inativos do Spark com base no parâmetro kernelCullTime. Se quiser uma limpeza menos ou mais agressiva, mude o valor de forma apropriada. Por exemplo, para 1 hora "* */1 * * *", formato k8s. Padrão: “*/30 * * * *” |
Sequência | agendamento de limpeza do kernel do mecanismo de análise |
spec.serviceConfig.jobCleanupSchedule |
Por padrão, as tarefas cron de limpeza de kernel e de tarefas procuram kernels/tarefas inativos do Spark com base no parâmetro kernelCullTime. Se quiser uma limpeza menos ou mais agressiva, mude o valor de forma apropriada. Por exemplo, para 1 hora "* */1 * * *", formato k8s. Padrão: “*/30 * * * *” |
Sequência | agendamento_limpeza_tarefa_mecanismo_análise |
spec.serviceConfig.skipSELinuxRelabeling |
Defina o valor como verdadeiro para ignorar a reclassificação do SELinux. Padrão: false Pré-requisito:
|
Booleano | mecanismo_de_análise_ignorar_relabeling_selinux |
spec.serviceConfig.mountCustomizationsFromCCHome |
Defina o valor como verdadeiro para montar personalizações do CCHome. Padrão: false Pré-requisito:
|
Booleano | analyticsengine_mount_customizations_from_cchome |
spec.sparkRuntimeConfig |
Mude as configurações de nível de tempo de execução do Spark. | Objeto | N/D |
spec.sparkRuntimeConfig.maxDriverCpuCores |
Número máximo de CPUs do driver. Padrão: 5 |
Número Inteiro | número_máximo_de_núcleos_de_CPU_do_driver_do_motor_de_análise |
spec.sparkRuntimeConfig.maxExecutorCpuCore |
Número máximo de CPUs do executor. Padrão: 5 |
Número Inteiro | núcleos_de_CPU_máximos_do_executor_do_motor_de_análise |
spec.sparkRuntimeConfig.maxDriverMemory |
Máximo de memória do driver em gigabytes. Padrão: 50g |
Sequência | memória máxima do driver do mecanismo de análise |
spec.sparkRuntimeConfig.maxExecutorMemory |
Máximo de memória do executor em gigabytes. Padrão: 50g |
Sequência | memória máxima do executor do mecanismo de análise |
spec.sparkRuntimeConfig.maxNumWorkers |
Número máximo de trabalhadores/executores. Padrão: 50 |
Número Inteiro | número_máximo_de_trabalhadores_do_mecanismo_de_análise |
spec.sparkRuntimeConfig.localDirScaleFactor |
O tamanho do disco temporário no em Spark principal/trabalhador é um fator do número de CPU.
Padrão: 10 |
Número Inteiro | fator_de_escala_do_diretório_local_do_mecanismo_de_análise |
spec.serviceInstanceConfig |
Configurações de nível de instância de serviço. Cada instância Analytics Engine powered by Apache Spark de serviço possui uma cota de recursos (CPU/memória) definida por padrão. Isso pode ser mudado usando a API para uma instância, mas para mudar os valores padrão para qualquer nova instância, atualize serviceInstanceConfig. | Objeto | N/D |
spec.serviceInstanceConfig.defaultCpuQuota |
defaultCpuQuota é o consumo acumulativo de CPU de tarefas do Spark criadas. Em uma instância, o consumo de CPU não pode ser maior que 20. Padrão: 20 |
Número Inteiro | quota_padrão_da_CPU_do_mecanismo_de_análise |
spec.serviceInstanceConfig.defaultMemoryQuota |
defaultCpuQuota é o consumo acumulativo de memória de tarefas do Spark criadas. Sob uma instância, o consumo de CPU não pode ser maior que 80. Padrão: 80 |
Sequência | quota_de_memória_padrão_do_motor_de_análise |
spec.sparkDefaults.mutableConfigs |
Altere as configurações personalizadas para tempos de execução do Spark que podem ser substituídas por uma tarefa ou kernel específico. | Objeto | N/D |
spec.sparkDefaults.immutableConfigs |
Altere as configurações personalizadas para tempos de execução do Spark que não podem ser substituídas por uma tarefa ou kernel específico. | Objeto | N/D |
spec.autoScaleConfig |
Especifique se deseja habilitar o Horizontal Pod Autoscaling (HPA) com o serviço. Para usar esse recurso, defina autoScaleConfig como verdadeiro. |
Booleano | N/D |
spec.dbRestore |
Especifique o carimbo de data/hora de um instantâneo específico do banco de dados Metastore de Analytics Engine powered by Apache Spark | Sequência | N/D |
spec.retention_period |
Especifique a duração (em dias) durante a qual registros ou dados específicos serão preservados antes de serem automaticamente excluídos. Na configuração de Recursos personalizados:
|
Número Inteiro | N/D |
Configurações imutáveis no nível da instância
Essas configurações podem ser definidas por administradores no nível da instância e não podem ser substituídas por uma tarefa ou kernel específico.
No entanto, as configurações no nível do serviço podem substituir as configurações no nível da instância.
- PUT API do
curl -k -X PUT <cpd-route>/v4/analytics_engines/<instance_id>/immutable_configs -H "Authorization: Bearer $TOKEN" --data-raw '{"ae.kubernetes.spec.nodeSelector":"bXlub2RlOiBzcGFyawo="}'- GET API do
curl -k -X GET <cpd-route>/v4/analytics_engines/<instance_id>/immutable_configs -H "Authorization: Bearer $TOKEN"- PATCH API do
curl -k -X PATCH <cpd-route>/v4/analytics_engines/<instance_id>/immutable_configs -H "Authorization: Bearer $TOKEN" --data-raw '{"ae.kubernetes.spec.nodeSelector":"bXlub2RlOiBzcGFyawo="}'
Ativação MachineConfig e RuntimeClass definições para determinadas propriedades
MachineConfig definição no cluster e criar RuntimeClass.- Execute o comando a seguir:
cat << EOF | oc apply -f - apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfig metadata: annotations: kubectl.kubernetes.io/last-applied-configuration: | {"apiVersion":"machineconfiguration.openshift.io/v1","kind":"MachineConfig","metadata":{"annotations":{},"labels":{"machineconfiguration.openshift.io/role":"worker"},"name":"99-worker-selinux-configuration"},"spec":{"config":{"ignition":{"version":"3.2.0"},"storage":{"files":[{"contents":{"source":"data:text/plain;charset=utf-8;base64,W2NyaW8ucnVudGltZS5ydW50aW1lcy5zZWxpbnV4XQpydW50aW1lX3BhdGggPSAiL3Vzci9iaW4vcnVuYyIKcnVudGltZV9yb290ID0gIi9ydW4vcnVuYyIKcnVudGltZV90eXBlID0gIm9jaSIKYWxsb3dlZF9hbm5vdGF0aW9ucyA9IFsiaW8ua3ViZXJuZXRlcy5jcmktby5UcnlTa2lwVm9sdW1lU0VMaW51eExhYmVsIl0K"},"mode":416,"overwrite":true,"path":"/etc/crio/crio.conf.d/01-selinux.conf"}]}},"osImageURL":""}} generation: 1 labels: machineconfiguration.openshift.io/role: worker name: 99-worker-selinux-configuration spec: config: ignition: version: 3.2.0 storage: files: - contents: source: data:text/plain;charset=utf-8;base64,W2NyaW8ucnVudGltZS5ydW50aW1lcy5zZWxpbnV4XQpydW50aW1lX3BhdGggPSAiL3Vzci9iaW4vcnVuYyIKcnVudGltZV9yb290ID0gIi9ydW4vcnVuYyIKcnVudGltZV90eXBlID0gIm9jaSIKYWxsb3dlZF9hbm5vdGF0aW9ucyA9IFsiaW8ua3ViZXJuZXRlcy5jcmktby5UcnlTa2lwVm9sdW1lU0VMaW51eExhYmVsIl0K mode: 416 overwrite: true path: /etc/crio/crio.conf.d/01-selinux.conf osImageURL: "" EOF - A RuntimeClass definição:
cat << EOF | oc apply -f - apiVersion: node.k8s.io/v1 kind: RuntimeClass metadata: name: selinux handler: selinux EOF
Backup e restauração automatizados
Analytics Engine powered by Apache Spark suporta backup e restauração automáticos do banco de dados Metastore. O backup do banco de dados é um processo CronJob que ocorre a cada 24 horas. O backup é compactado e armazenado no volume de armazenamento (spark-hb-database-backup padrão: 5Gi storage) com um carimbo de data/hora do instantâneo como nome do arquivo compactado. Quando o volume de armazenamento atinge 80% de sua capacidade, os arquivos compactados são alternados.
YYYY-MM-DD_hh-mm-ss. O carimbo de data/hora do instantâneo é o nome do arquivo compactado. Após a aplicação do comando patch, a reconciliação CR do mecanismo de análise ocorre duas vezes: primeiro para restaurar o banco de dados e, em seguida, para concluir a reconciliação CR do mecanismo de análise.oc patch AnalyticsEngine analyticsengine-sample -n ${PROJECT_CPD_INSTANCE} --type merge --patch '{"spec": {"dbRestore":"<time_stamp>"}}'
O quê fazer em seguida
Conclua as tarefas a seguir em ordem antes que os usuários possam acessar o serviço:
- Um administrador de instância pode definir a escala do serviço e ajustar o número de pods disponíveis. Consulte Serviços de dimensionamento.
- Para que seja possível enviar as tarefas do Spark usando a API de tarefas do Spark, é necessário provisionar uma instância de serviço. Consulte Provisionamento da instância do serviço.
- O serviço está pronto para o uso. Consulte Ambientes Spark.