Instalação do Apache Ambari

Estando os requisítos mínimos atendidos, todas as máquinas do ambiente preparadas e os pacotes de instalação disponíveis, seguimos para a instalação do serviço do Apache Ambari.

Após instalado, o Apache Ambari será responsável pela criação do Cluster de Big Data, seja através de sua página web ou via REST API.

Instalação do Ambari Server

Execute o comando abaixo para instalar, via script de instalação, o Ambari Server em uma máquina utility ou edge:

sh ambari-tdp-installer-rhel-7.sh -b <URL_BASE_PARA_OS_PACOTES_DOS_COMPONENTES> -u <USUARIO> -p <SENHA>

Os parâmetros Usuário (-u) e Senha (-p) são opcionais e só devem ser informados quando o repositório de pacotes requisitar credenciais de acesso.

Seguem as opções disponíveis do script de instalação ambari-tdp-installer-rhel-7.sh:

-b, --baseurl
[ default: https://repo.tecnisys.com.br/yum/tdp/components/latest/rhel-7-x86_64 ]
URL base para os pacotes dos componentes.

-u, --username
Usuário para acesso ao repositório de pacotes.
Deve ser informado ao se utilizar a URL do Repósitorio de Pacotes da Tecnisys.

-p, --password
Senha para acesso ao repositório de pacotes.
Deve ser informada ao se utilizar a URL do Repósitorio de Pacotes da Tecnisys.

-c, --component ( agent | server | all )
[ default: server ]
Componente do Apache Ambari a ser instalado.

A seguir, apresentamos exemplos para diferentes cenários:

  • Instalação usando o Repositório de Pacotes Públicos da Tecnisys:

    sh /repo/yum/tdp/installer/latest/rhel-7-x86_64/ambari-tdp-installer-rhel-7.sh --username "user" --password "pass"

    As credenciais de acesso (username e password) são definidas ao se cadastar gratuitamente no site https://www.tecnisys.com.br

  • Instalação usando um repositório de pacotes local:

    sh /repo/yum/tdp/installer/latest/rhel-7-x86_64/ambari-tdp-installer-rhel-7.sh --baseurl "file:///opt/repo/tdp/components/latest/rhel-7-x86_64"
  • Instalação usando um repositório de pacotes local acessível via HTTP:

    sh /repo/yum/tdp/installer/latest/rhel-7-x86_64/ambari-tdp-installer-rhel-7.sh --baseurl "https://192.168.32.100/tdp/components/latest/rhel-7-x86_64"

Configuração do driver JDBC

Configure o driver JDBC a ser utilizado pelo Ambari Server para se conectar no banco de metadados:

ambari-server setup --jdbc-db=postgres --jdbc-driver=postgresql-42.2.16.jar
O driver JDBC do PostgreSQL também está disponível no diretório /yum/tdp/utils/latest/rhel-7-x86_64 do Repositório de Pacotes da Tecnisys.

Configuração do Ambari Server

Configure o Ambari Server:

ambari-server setup

Na sequência, forneça as informações solicitadas no prompt apresentado:

  1. Se SELinux estiver ativo, será apresentado um alerta. Confirme se o SELinux pode ser alterado para o modo permissivo e temporariamente desativado. Default (y)

  2. Confirme se deseja utilizar um usuário de SO customizado para o daemon do Ambari Server. Default (n)

    1. Se sim (y), informe o usuário desejado.

  3. Se o Firewall (iptables) estiver ativo, será apresentado um alerta. Confirme se as portas utilizadas pelo Ambari estão acessíveis. Default (y)

    1. Caso haja conflito de porta, será apresentado um erro e a configuração abortada.

  4. Escolha a JDK a ser utilizada. Default (1) Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files 8 (baixados automaticamente do diretório public/tdp/latest/rhel-7-x86_64 do Repositório de Pacotes da Tecnisys).

    1. Se escolhida a opção (1), confirme se você aceita a licença de uso. Default (y)

    2. Escolha a opção (2) para informar o caminho do JAVA_HOME de uma JDK diferente.

  5. Confirme se deseja que o Ambari Server baixe e instale pacotes adicionais de compressão LZO. Default (n)

  6. Confirme se deseja prosseguir com as Configurações Avançadas de Banco de Dados. Default (n)

    1. Se não (n), automaticamente o Ambari inicializa uma instância o PostgreSQL (dependência de instalação do Ambari Server), cria o seu próprio banco de metadados, esquema, usuário, tabelas de metadados, etc.

    2. Se sim (y), serão solicitadas informações de conexão ao banco de dados, tais como, o Sistema Gerenciador de Banco de Dados (SGBD), hostname, porta e nome do banco de dados do Ambari, para que o Ambari Server se conecte e crie automaticamente as suas tabelas de metadados entre outras estruturas.

Inicialização do Ambari Server

Inicie o daemon do Ambari Server:

ambari-server start

Após a inicialização do Ambari Server, a página web do Ambari estará, por padrão, acessível na porta 8080.

Página de login do Ambari
Figure 1. Página de login do Ambari
Se necessário, a porta da interface web do Ambari pode ser alterada no arquivo /etc/ambari-server/conf/ambari.properties.

Criação dos Bancos de Metadados

Muitos dos serviços/componentes da Plataforma TDP necessitam de bancos de dados para a persistência de metadados.

A seguir, fornecemos orientações para a criação prévia desses bancos de dados no PostgreSQL (SGBD padrão do Ambari Server). Caso tenha escolhido um SGBD diferente para o seu ambiente, consulte a documentação oficial do mesmo.

As senhas utilizadas nos comandos a segir visam apenas exemplificar o procedimento apresentado. Por gentileza, utilize senhas fortes em seu ambiente. Além disso, os nomes dos usuários e bancos de dados são apenas sugestões, fique a vontade para alterá-los.

Criação do Banco de Metadados do Apache Airflow

  1. Crie o usuário airflow:

    su -c 'createuser -s -d -l airflow' - postgres;
  2. Defina a senha do usuário airflow

    su -c "psql -U postgres -c \"alter user airflow with password 'airflow'\"" - postgres;
  3. Crie o banco de dados airflow:

    su -c 'createdb -O airflow airflow' - postgres;

Criação do Banco de Metadados do Apache Druid

  1. Crie o usuário druid:

    su -c 'createuser -s -d -l druid' - postgres;
  2. Defina a senha do usuário druid

    su -c "psql -U postgres -c \"alter user druid with password 'druid'\"" - postgres;
  3. Crie o banco de dados druid:

    su -c 'createdb -O druid druid' - postgres;

Criação do Banco de Metadados do Apache Hive

  1. Crie o usuário hive:

    su -c 'createuser -s -d -l hive' - postgres;
  2. Defina a senha do usuário hive

    su -c "psql -U postgres -c \"alter user hive with password 'hive'\"" - postgres;
  3. Crie o banco de dados hive:

    su -c 'createdb -O hive hive' - postgres;

Criação do Banco de Metadados do Apache Oozie

  1. Crie o usuário oozie:

    su -c 'createuser -s -d -l oozie' - postgres;
  2. Defina a senha do usuário oozie:

    su -c "psql -U postgres -c \"alter user oozie with password 'oozie'\"" - postgres;
  3. Crie o banco de dados oozie:

    su -c 'createdb -O oozie oozie' - postgres;

Criação do Banco de Metadados do Apache Ranger

  1. Crie o usuário ranger:

    su -c 'createuser -s -d -l ranger' - postgres;
  2. Defina a senha do usuário ranger:

    su -c "psql -U postgres -c \"alter user ranger with password 'ranger'\"" - postgres;
  3. Crie o banco de dados ranger:

    su -c 'createdb -O ranger ranger' - postgres;

Criação do Banco de Metadados do Apache Superset

  1. Crie o usuário superset:

    su -c 'createuser -s -d -l superset' - postgres;
  2. Defina a senha do usuário superset:

    su -c "psql -U postgres -c \"alter user superset with password 'superset'\"" - postgres;
  3. Crie o banco de dados superset:

    su -c 'createdb -O superset superset' - postgres;

Configuração da Instância dos Bancos de Metadados

A seguir, fornecemos orientações e exemplos de código para a configuração de regras de acesso e propriedades do PostgreSQL (SGBD padrão do Ambari Server). Caso tenha escolhido um SGBD diferente para o seu ambiente, consulte a documentação oficial do mesmo.

Verifique, e se necessário altere, a versão majoritária do PostgreSQL presente nos caminhos dos arquivos de configuração.
  1. Adicione à regra de acesso do Ambari os demais bancos de dados:

    sed -i 's/ambari,mapred/airflow,ambari,druid,hive,mapred,oozie,ranger,superset/g' /var/lib/pgsql/14/data/pg_hba.conf
  2. Configure a instância PostgreSQL para receber conexões de todas as interfaces de rede:

    sed -i "s/#listen_addresses = 'localhost'/listen_addresses = '*'/g" /var/lib/pgsql/14/data/postgresql.conf
  3. Incremente o número máximo de conexões suportadas pela instância PostgreSQL:

    sed -i "s/max_connections = 100/max_connections = 500/g" /var/lib/pgsql/14/data/postgresql.conf
  4. Reinicie o serviço do PostgreSQL para que todas as alterações sejam efetivadas:

    systemctl restart postgresql-14
Avalie os impactos de tais configurações na segurança e desempenho do seu ambiente. Caso necessite de apoio, entre em contato, será um prazer auxiliá-lo.