Apache Ozone para testes
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.
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???”
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