Академический Документы
Профессиональный Документы
Культура Документы
Bigdatabrazil.blogspot.com
O que é o Hadoop ?
Para realizar testes com a biblioteca MapReduce, devemos obter uma versão
do Hadoop, realizando o download do software a partir do site da Apache.
Caso deseje executar em um computador com sistema Windows, será
necessário instalar também o Cygwin. É necessário também instalar o JDK ,
configurar as variáveis Java Home, Hadoop Home, Classpath e Hadoop
Classpath. Conhecimentos de configuração de ambiente Java e Classpath são
importantes nesta fase de configuração do ambiente.
MapReduce e Amazon Elastic MapReduce
- MapReduce
O que é o HDFS ?
O HDFS possui o conceito de blocos, tal como no Unix, mas seus blocos
normalmente têm tamanho de 64MB. Um arquivo muito grande pode ter blocos
armazenados em mais de um servidor. Com este conceito de blocos de
tamanho fixo fica mais fácil calcular as necessidades de armazenamento.
O HDFS tem 2 tipos de Nós : Master (ou Namenode) e Worker (ou Datanode).
O Master armazena informações da distribuição de arquivos e metadados. Já o
Worker armazena os dados propriamente ditos. Logo o Master precisa sempre
estar disponível. Para garantir a disponibilidade podemos ter um backup (
similar ao Cold Failover ) ou termos um Master Secundário em um outro
servidor. Nesta segunda opção, em caso de falha do primário, o secundário
pode assumir o controle muito rapidamente.
Tal como um sistema Unix, é possível utilizar o HDFS via linha de comando.
Para saber a lista de comandos digite hadoop fs -help. É possível criar
diretórios (mkdir), listar diretório (ls) , copiar arquivos (copyFromLocal,
copyToLocal), permissionamento de arquivos e diretórios, etc.
A figura abaixo, extraída do livro Hadoop The Definitive Guide de Tom White,
mostra como é realizada a leitura de um arquivo no HDFS.
http://techblog.netflix.com/2013/01/hadoop-platform-as-service-in-cloud.html
Hive, o que é ?
Como a finalidade principal do Hive é analisar dados, o mesmo deve ser capaz
de se integrar com soluções de Business Intelligence existentes no mercado.
Hive utiliza uma linguagem chamada HiveQL (Hive Query Language) , que
transforma as sentenças SQL em Jobs MapReduce executados no cluster
Hadoop.
Os comados existentes no SQL tais como create table, select, describe, drop
table, etc existem no Hive, mas tem diferenças tal como a clausula ROW
FORMAT do create table. Para popular tabelas pode ser utilizado o comando
LOAD DATA , que obtém a entrada de dados e carrega no warehouse do Hive.
Podem ser utilizados agregadores como Max, SUM, Count, etc que necessitam
da clausula GROUP BY, tal como no SQL.
O Hive não foi desenhado para executar queries em real time, com baixa
latência. Foi desenhado para melhor performance analisando grandes
quantidades de dados que se encontram em clusters. Normalmente são estes
tipos de queries que temos em painéis analíticos de aplicações de Business
Intelligence, que usualmente utilizam operadores do tipo Sum, Count, etc, que
em ambientes usuais de data warehouse podem consumir horas para que
estes tipos de query retornem resultado. Já passei por este tipo de situação na
qual ferramentas de BI ao acessar uma quantidade de dados muito grandes em
bases tradicionais simplesmente tem uma performance tão pobre que o seu
uso pelos clientes finais e dashboards (painéis analíticos) é inviabilizado.
Recomendo o livro abaixo sobre o Hive.
Bigdatabrazil.blogspot.com