Apache Ozone para testes

Anselmo Borges
Rescue Point
Published in
5 min readNov 24, 2020
Instale um Apache Ozone pra testar e chamar de seu!

Estamos realizando uma serie de testes com essa ferramenta que é considerada a Evolução do Hadoop por alguns motivos já ditos no post anterior sobre o assunto, que fala sobre o que é e a arquitetura.

Overview sobre o Apache Ozone

Nesse post vamos ver uma parte de como funciona, vamos realizar a instalação de um Apache Ozone Single instance, existem instalações possíveis via Docker e Kubernetes também, mas como pretendo fazer materiais de integração com HDFS e S3 a instalação local fica mais fácil de aprender.

O que será necessário?

Bom para esse roteiro você usar um LINUX….

“AAAAHHH não tem pra WINDOWS???”

Manooooo que raiva que eu tenho!

Vou dar meu esculacho/dica sincera, pra quem pensou isso!

Você já parou pra pensar que Linux não é mais um diferencial e sim um pré-requisito? Que todas as ferramentas estão sendo desenvolvidas para essa plataforma? Se você quer mesmo trabalhar nessa área você PRECISA saber LINUX!

Bom, depois do meu desabafo, estou usando um Oracle Linux 7 mas pode ser a distribuição da sua escolha, como se trata de uma instalação do fonte a distribuição não interfere muito, basta trocar o YUM que vou usar pelo APT e segue o jogo.

Material em vídeo

Fiz um esse mesmo passo a passo em vídeo para servir de apoio pra quem tiver algum problema e esse material serve de apoio pro povo do vídeo, quem sabe esse material não bomba agora com a minha estratégia de marketing, rs.

Aproveita, deixa um like lá também e se inscreve pra ver mais vídeos sobre Bigdata em primeira mão.

O que faremos?

Nesse tutorial vamos instalar um Ozone Single instance de um node só. A idéia é realizarmos alguns testes de comandos simples pra ir se ambientando com a ferramenta e entendermos os conceitos do post anterior.

Pré-requisitos

Para realizar essa instalação recomendo ter acesso ao usuário root do servidor ou ter um usuário com privilégios de root via sudo (que é o meu caso com o usuário opc).

Você precisa ter o Java instalado no seu servidor, eu estou usando a versão OpenJDK 8, mas acredito que ele trabalhe com versões bem mais recentes como o 14 por exemplo. Sugiro seguir esse roteiro que deu bom.

Para a instalação do Java no meu ambiente rodei o comando abaixo:

yum install -y java-1.8.0-openjdk.x86_64

Feita a instalação do Java é recomendado setar a variável de ambiente JAVA_HOME, no meu caso só dei o export, mas no definitivo seria ideal colocar no /etc/profile ou no .bash_profile do usuário assim como as demais variáveis desse roteiro. Em todo caso rode o comando abaixo:

export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk

Instalando o Ozone

Vamos fazer uma instalação do fonte, baixando a versão 1.0 que foi disponibilizada dia 02/09/2020, logo, se nesse momento que você está fazendo esse roteiro essa data está longe, vai ver se tem versão mais nova nesse link abaixo:

Criando os diretórios

Vamos criar os diretórios que serão usados nesse tutorial e mudar o privilegio para o seu user, se for root não precisa fazer nada, no meu caso como vou manipular tudo com meu user opc, vou alterar os privilégios da pasta.

  • /ozone = Será onde vão ser copiados os binários do Ozone
  • /ozone/data = Onde serão disponibilizados os dados
  • /ozone/data/meta = Onde vão ficar os metadados do SCM
sudo mkdir -p /ozone/data/meta
sudo chown -R opc:opc /ozone

Baixando o tar.gz do Ozone

Via wget, rode o comando abaixo estando no home do seu usuário, o primeiro comando te leva pra lá:

cd ~
wget https://downloads.apache.org/hadoop/ozone/ozone-1.0.0/hadoop-ozone-1.0.0.tar.gz

Descompactando e copiando os binários:

Levando em consideração que estou no mesmo diretório, vamos descompactar os binários e movimentar o conteúdo para dentro do “/ozone” criado nos passos anteriores.

tar zfxv ~/hadoop-ozone-1.0.0.tar.gz
sudo cp -rf ~/ozone-1.0.0/* /ozone/

Setando as variáveis de ambiente

Assim como fizemos no caso do JAVA_HOME, vamos setar 2 variaveis de ambiente, PATH e HADOOP_OPS, que por sua vez setam o binário do Ozone no PATH para executarmos o comando e o HADOOP_OPS e seta alguma variáveis básicas de memória do JAVA. Lembrando que o export dura o tempo que a sessão existir, caso você queira deixar a variável setada definitivamente, coloque ela no /etc/profile ou no .bash_profile do usuário.

export PATH=$PATH:/ozone/bin
export HADOOP_OPTS='-XX:ParallelGCThreads=8 -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled'

Testando o comando ozone

Agora vamos testar o comando ozone e ver se vem o logo e algumas informações na tela, rode o comando abaixo:

ozone version

Configurando o arquivo ozone-site.xml

Esse arquivo é responsável pela principais configurações do Ozone, por padrão já existe um que foi copiado na movimentação de arquivos passos atrás, então vamos fazer um backup dele no primeiro comando e o segundo vai criar um novo com base ao path que você definiu no comando, nesse exemplo “/ozone/etc/hadoop”.

mv /ozone/etc/hadoop/ozone-site.xml /ozone/etc/hadoop/ozone-site.xml_bkp
ozone genconf /ozone/etc/hadoop

O segundo comando vai gerar um novo ozone-site.xml nesse diretório, depois dê uma olhada nele, logo teremos que trocar o caminho de um diretório.

Alterando o caminho do diretório de metadados

Lembra no post anterior que comentamos que o SCM e o OM armazena a informações dos metadados com informações do container, local.id e outras, então essa configuração “ozone.metadata.dir” é o caminho para onde vamos colocar ele. Por padrão ele fica configurado com “/tmp”, vamos mudar para o diretório “/ozone/data/meta”.

vim /ozone/etc/hadoop/ozone-site.xml...
</property>
<property>
<name>ozone.metadata.dirs</name>
<value>/ozone/data/meta</value>
...

Após alterado esse cara iremos rodar os comandos para a criação da estrutura do OM (Ozone Manager) e do SCM (Storage Container Manager)

Criando estrutura do OM e SCM

Os comandos abaixo vão criar a estrutura dos 2 serviços (SCM e OM) no caminho que foi configurado anteriormente, existe uma ordem, sem o init e o deamon do SCM no ar o OM nem dá init, portanto, siga a ordem.

Vamos começar com o SCM

ozone scm --init
ozone --daemon start scm

Ele gera um log na tela, alguns Warnings como o db do scm são exibidos, apenas ignore pois estamos usando uma instalação single instance que não precisa de replicação do db do SCM.

Agora vamos criar estrutura e iniciar o OM:

ozone om --init
ozone --daemon start om

Iniciando o datanode

Agora com tudo no ar, vamos iniciar o datanode, esse não precisa do init.

ozone --daemon start datanode

Bom nosso serviço do Ozone está no ar, usando o comando do Ozone vamos pegar informações sobre o funcionamento.

ozone sh volume ls

Ele vai listar o único volume no momento que é o s3v que é uma parada que vamos ver depois do que se trata, caso eu tivesse mais volumes seria listado.

Conclusão

Nesse momento você tem um Apache Ozone Single instance para começar a brincar com alguns comandos de manipulação de arquivos, no próximo post vou trazer como manipular dados usando a linha de comando do zone e integrar o HDFS client com o Ozone, para usar os mesmos comandos e não mudar muita coisa do dia a dia e a integrar um Bucket S3 da Amazon ao Ozone.

Bom, se inscreve ai no Medium, se viu o vídeo, deixa um like e se inscreve também, assim fico sabendo se o material é relevante ou não.

Espero que tenha ajudado!

Anselmo Borges
Rescue Point

--

--

Anselmo Borges
Rescue Point

Bigdata Engineer, Cloud Architect, Nerd, Alcoholic, Brazilian Jiujitsu Black belt and hide and seek World champion.