Preparação do Ambiente

Os procedimentos a seguir deverão ser realizados em todas as máquinas do Cluster de Big Data.

Desativação do Firewall

  1. Desabilite o serviço do Firewall:

    systemctl stop firewalld;
    systemctl disable firewalld;

Não sendo possível a desativação do Firewall, crie regras (iptables) para liberar a comunição entre as máquinas nas portas utilizadas pelos serviços da Plataforma TDP.

Desativação o SELinux

  1. Desative temporariamente o SELinux:

    setenforce 0;
  2. Desative permanentemente o SELinux:

    sed -i --follow-symlinks "s+SELINUX=enforcing+SELINUX=disabled+g" /etc/selinux/config;
  3. Reinicie a máquina para efetivar a desativação permanente do SELinux.

Configuração de parâmetros do Kernel

  1. Evite ao máximo o uso da área de swap:

    echo 'vm.swappiness=1' >> /etc/sysctl.conf;
    sysctl -p /etc/sysctl.conf;

O kernel do Linux fornece uma configuração ajustável que controla a frequência com que a área de swap em disco é usada, chamada swappiness. Uma configuração de swappiness igual a zero significa que o disco será evitado a menos que seja absolutamente necessário (quando o servidor ficar sem memória), enquanto uma configuração de swappiness igual a 100 significa que os programas utilizarão a área de swap quase instantaneamente. Reduzir o valor de swappiness reduz a probabilidade de o kernel do Linux enviar a memória de uma aplicação para a área de swap. A área de swap é extremamente mais lenta que a memória, pois utiliza o disco em vez da memória RAM. Quando a área de memória dos processos é transferida para o disco eles podem sofrer pausas, o que pode causar problemas em serviços, como por exemplo o Apache Zookeeper.

  1. Altere o comportamento padrão de alocação de memória RAM:

    echo 'vm.overcommit_memory=1' >> /etc/sysctl.conf;
    sysctl -p /etc/sysctl.conf;

Em ambientes de Big Data, nos quais é comum termos máquinas com grandes quantidades de memória RAM, recomendamos o valor 1 para a configuração overcommit_memory. Diferentemente do valor 0, que utiliza uma abordagem heurística para atender requisições de memória (malloc), o valor 1 assume que sempre há memória física suficiente, aumentando consideravelmente o desempenho de tarefas de uso intenso de memória.

  1. Desabilite o Transparent Huge Pages (THP):

    echo never > /sys/kernel/mm/transparent_hugepage/enabled;
    echo never > /sys/kernel/mm/transparent_hugepage/defrag;
    echo "echo never > /sys/kernel/mm/transparent_hugepage/enabled" >> /etc/rc.local;
    echo "echo never > /sys/kernel/mm/transparent_hugepage/defrag" >> /etc/rc.local;

Muitas distribuições Linux disponibilizam o THP como uma opção de baixa complexidade para aumentar o tamanho de blocos/páginas de memória (de 4KB para 2MB ou 1GB) e possibilitar o gerenciamento de muitos gigabytes, e até terabytes, de memória RAM. No entanto, as cargas de trabalho em ambientes de Big Data costumam ter um desempenho ruim com o THP ativado, porque tendem a ter padrões de acesso à memória esparsos, em vez de contínuos, sobrecarregando assim o CPU.

Sincronização de Tempo

  1. Instale um serviço de sincronização de tempo (NTP) para assegurar que a data e a hora das máquinas estejam sempre sincronizadas, prevenindo inconsistências em dados e serviços. Neste exemplo, utilizaremos o Chrony:

    yum install chrony -y
    systemctl enable chronyd
    systemctl start chronyd
  2. Configure o Chrony para sincronizar com servidores NTP apropriados:

    vi /etc/chrony.conf
    
    # Adicione ou ajuste os servidores NTP conforme necessário
    
    server 0.centos.pool.ntp.org iburst
    server 1.centos.pool.ntp.org iburst
    server 2.centos.pool.ntp.org iburst
    server 3.centos.pool.ntp.org iburst

    Para salvar e sair do editor vi, pressione ESC, digite :wq e pressione Enter.

  3. Reinicie o serviço para aplicar as novas configurações:

    systemctl restart chronyd
  4. Verifique o status da sincronização:

    chronyc tracking
    chronyc sources