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 do tipo Utility ou Edge [1]:

sh ambari-tdp-installer-el-9.sh -b <URL_BASE_PARA_OS_PACOTES_DOS_COMPONENTES> -u <USUARIO> -p <SENHA>

Os parâmetros USUARIO (-u) e SENHA (-p) são opcionais e só devem ser informados quando o repositório de pacotes requisitar credenciais de acesso, como é o caso do https://repo.tecnisys.com.br.

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

-b, --baseurl
[ default: https://repo.tecnisys.com.br/yum/tdp/ambari/2.2.0/el-9-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/2.2.0/el-9-x86_64/ambari-tdp-installer-el-9.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/2.2.0/el-9-x86_64/ambari-tdp-installer-el-9.sh --baseurl "file:///opt/repo/tdp/ambari/2.2.0/el-9-x86_64"
  • Instalação usando um repositório de pacotes local na máquina de IP 192.168.32.100 e na máquina de IP 192.168.32.100 e acessível via HTTP:

    sh /repo/yum/tdp/installer/2.2.0/el-9-x86_64/ambari-tdp-installer-el-9.sh --baseurl "https://192.168.32.100/tdp/ambari/2.2.0/el-9-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 public/ambari/3.0.0.0 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) OpenJDK 1.8 + Java Cryptography Extension (JCE) Policy Files 8 (baixados automaticamente do diretório public/ambari/3.0.0.0 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.
Atenção para a collation (configurações de locale e encoding, por exemplo: en_US.UTF-8 e pt_BR.UTF-8) dos bancos de metadados. Alguns componentes podem não funcionar corretamente ou apresentar problemas na exibição, comparação e ordenção de dados e informações se a collation não estiver configurada corretamente.

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 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 Ranger KMS

  1. Crie o usuário rangerkms:

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

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

    su -c 'createdb -O rangerkms rangerkms' - 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 os demais bancos de dados à regra de acesso do Ambari:

    sed -i 's/ambari,mapred/airflow,ambari,druid,hive,mapred,oozie,ranger,rangerkms,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.

1. Máquinas do tipo Utility são normalmente utilizadas para tarefas auxiliares, como o gerenciamento do cluster, enquanto máquinas do tipo Edge são dedicadas para interfaces gráficas ou componentes utilizados por usuários na "borda" do ambiente.