• No results found

Moving the Consumption which is over the Optimal Subscription

Neste anexo será apresentada uma visão geral do processo de utilização da prova de conceito elaborada no presente trabalho.

A prova de conceito elaborada é um sistema que realiza o armazenamento e a indexação de dados utilizando computação distribuída. Para utilizar este sistema devem ser atendidos os seguintes requisitos:

- Existência de um con6 (

- Existência de um ambiente distribuído capaz de executar o Apache Hadoop e o HDFS. A recomendação é um cluster, com no mínimo cinco computadores, interconectados por uma rede Gigabit Ethernet ou superior. O sistema operacional recomendado é o Linux 2.6 ou superior.

O código-fonte e executável da prova de conceito podem ser obtidos no site: http://sourceforge.net/projects/foreindex/

Para a instalação do Apache Hadoop e do HDFS basta seguir as instruções de seu site oficial: http://hadoop.apache.org/common/docs/current/cluster_setup.html

Após a instalação do Apache Hadoop cada nó do cluster deve ser configurado. A recomendação é que um computador seja o JobTracker, outro computador diferente seja o

NameNode e os outros sejam os DataNodes e TaskTrackers. Esta configuração facilita a

expansão e gerenciamento do ambiente.

Os arquivos de configuração do Apache Hadoop ficam no sub-diretório conf do diretório raiz da instalação. Os principais arquivos que devem ser configurados são: core-

site.xml, hdfs-site.xml e mapred-site.xml. Em seguida serão detalhados os

principais parâmetros de configuração que devem ser estabelecidos em cada um destes arquivos no JobTracker, NameNode, TaskTracker e DataNode.

136

Figura B.3 – Elementos de Configuração do Arquivo core-site.xml

A propriedade fs.default.name deve possuir o endereço IP e porta do NameNode, ou seja, do sistema de arquivos distribuído que será utilizado. Opcionalmente também deve ser configurado um diretório de armazenamento de dados temporários. O conteúdo deste arquivo é o mesmo para o JobTracker, NameNode, DataNode e TaskTracker.

A figura B.2 contém o conteúdo do arquivo hdfs-site.xml.

Figura B.2 – Elementos de Configuração do Arquivo hdfs-site.xml <configuration> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.name.dir</name> <value>/home/marcelo/hdfs/name</value> </property> <property> <name>dfs.data.dir</name> <value>/home/marcelo/hdfs/data</value> </property> </configuration> <configuration> <property> <name>fs.default.name</name> <value>hdfs://10.61.82.201:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/{user.name}/tmp/hadoop</value> </property> </configuration>

137

As duas primeiras propriedades devem estar presentes apenas no NameNode. A propriedade dfs.replication define o fator de replicação do HDFS, ou seja, a quantidade de cópias que cada bloco de dados deverá possuir no sistema de arquivos distribuído. A propriedade dfs.name.dir define o diretório onde serão localizados os metadados do NameNode. Neste diretório serão armazenados todos os arquivos de configuração do sistema de arquivos distribuído. A última propriedade, dfs.data.dir, deve estar presente apenas nos computadores que serão DataNodes e define o diretório onde serão armazenados os blocos de dados do sistema de arquivo distribuído. O

JobTracker não deve possuir nenhuma propriedade configurada neste arquivo.

A figura B.3 contém o conteúdo do arquivo mapred-site.xml.

Figura B.3 – Elementos de Configuração do Arquivo mapred-site.xml <configuration> <property> <name>mapred.job.tracker</name> <value>10.61.82.200:9001</value> </property> <property> <name>mapred.local.dir</name> <value>/home/marcelo/mapred/local</value> </property> <property> <name>mapred.tasktracker.map.tasks.maximum</name> <value>2</value> </property> <property> <name>mapred.tasktracker.reduce.tasks.maximum</name> <value>2</value> </property> <property> <name>mapred.child.java.opts</name> <value>-Xmx250m</value> </property> </configuration>

138

A propriedade de nome mapred.job.tracker contém a localização do JobTracker. A propriedade mapred.local.dir contém o diretório temporário do processamento realizado pelo TaskTracker. As propriedades mapred.tasktracker.map.tasks.maximum e .tasktracker.reduce.tasks.maximum definem o número máximo de tarefas Maps e Reduces que executarão em cada TaskTracker. A recomendação é que o total de tarefas seja igual ao número de processadores da máquina. A propriedade mapred.child.java.opts contém a quantidade máxima de memória RAM que cada tarefa do TaskTracker utilizará. Todas estas propriedades devem ser configuradas apenas no TaskTracker os outros processos não necessitam destas configurações.

As propriedades de segurança dfs.hosts e mapred.hosts que devem ser configuradas tanto no

JobTracker quanto no NameNode para definir quais computadores do cluster terão

permissão para ser um TaskTracker ou DataNode. Adicionalmente existe o arquivo slaves que contém o endereço de todos os computadores que são TaskTracker e DataNodes. Este arquivo deve existir tanto no JobTracker e como no NameNode. Este arquivo serve apenas para ser utilizado nos scripts de inicialização e gerenciamento do ambiente e não tem a função de segurança.

Para utilizar as funcionalidades da prova de conceito desenvolvida basta utilizar a classe br.gov.dpf.unb.foreindex.ForeIndex. Esta classe permite a inicialização da interface gráfica do aplicativo e também o acionamento das funcionalidades por linha de comando. Para acionar esta classe as bibliotecas do Apache Hadoop, Apache Lucene e Apache Tika devem estar no classpath.