Quais são os benefícios de usar um ou outro Hadoop ou HBase ou Hive ?
Pelo que entendi, o HBase evita o uso de redução de mapa e possui um armazenamento orientado a colunas sobre o HDFS. O Hive é uma interface do tipo sql para o Hadoop e o HBase .
Também gostaria de saber como o Hive se compara ao Pig .
hadoop
hbase
hive
apache-pig
Khalefa
fonte
fonte
Respostas:
O MapReduce é apenas uma estrutura de computação . O HBase não tem nada a ver com isso. Dito isso, você pode colocar ou buscar dados com eficiência de / para o HBase escrevendo trabalhos do MapReduce. Como alternativa, você pode gravar programas seqüenciais usando outras APIs do HBase, como Java, para colocar ou buscar os dados. Mas usamos o Hadoop, HBase etc. para lidar com quantidades gigantescas de dados, de modo que não faz muito sentido. O uso de programas seqüenciais normais seria altamente ineficiente quando seus dados são muito grandes.
Voltando à primeira parte da sua pergunta, o Hadoop é basicamente duas coisas: um sistema de arquivos distribuídos (HDFS) + uma estrutura de computação ou processamento (MapReduce) . Como todos os outros FS, o HDFS também nos fornece armazenamento, mas de maneira tolerante a falhas, com alto rendimento e menor risco de perda de dados (devido à replicação). Mas, sendo um FS, o HDFS não possui acesso aleatório de leitura e gravação . É aqui que o HBase entra em cena. É um armazenamento de big data distribuído, escalável e modelado com base no BigTable do Google. Ele armazena dados como pares de chave / valor.
Vindo para o Hive. Ele nos fornece instalações de data warehouse sobre um cluster Hadoop existente. Junto com isso, ele fornece uma interface semelhante ao SQL , que facilita o seu trabalho, caso você tenha um histórico em SQL. Você pode criar tabelas no Hive e armazenar dados lá. Junto com isso, você pode até mapear suas tabelas HBase existentes para o Hive e operar com elas.
Enquanto o Pig é basicamente uma linguagem de fluxo de dados que nos permite processar enormes quantidades de dados com muita facilidade e rapidez. O porco tem basicamente duas partes: o intérprete e a linguagem, PigLatin . Você escreve o script Pig no PigLatin e, usando o interpretador Pig, processa-os. O Pig facilita muito a nossa vida; caso contrário, escrever o MapReduce nem sempre é fácil. De fato, em alguns casos, pode realmente se tornar uma dor.
Eu escrevi um artigo sobre uma breve comparação de diferentes ferramentas do ecossistema Hadoop há algum tempo. Não é uma comparação aprofundada, mas uma breve introdução a cada uma dessas ferramentas que pode ajudá-lo a começar. (Apenas para adicionar à minha resposta. Não se pretende autopromoção)
As consultas Hive e Pig são convertidas em tarefas MapReduce sob o capô.
HTH
fonte
yarn
ecossistema Hadoop :(.Eu implementei recentemente uma plataforma Hive Data em minha empresa e posso falar com ela em primeira pessoa desde que eu era uma equipe de um homem.
Objetivo
Opções de arquitetura
Comparei as seguintes opções:
Projeto
Resumo
HBase é como um mapa. Se você conhece a chave, pode obter instantaneamente o valor. Mas se você quiser saber quantas chaves inteiras no Hbase estão entre 1000000 e 2000000, isso não é adequado apenas para o Hbase .
Se você tiver dados que precisam ser agregados, agregados, analisados em linhas, considere Hive .
Espero que isso ajude.
A colmeia na verdade balança ... Eu sei, eu a vivo há 12 meses ... O mesmo acontece com o HBase ...
fonte
O Hadoop é uma estrutura que permite o processamento distribuído de grandes conjuntos de dados entre clusters de computadores usando modelos de programação simples.
Existem quatro módulos principais no Hadoop.
Hadoop Comum : os utilitários comuns que oferecem suporte aos outros módulos do Hadoop.
Sistema de arquivos distribuídos do Hadoop ( HDFS ™ ): um sistema de arquivos distribuídos que fornece acesso de alta taxa de transferência aos dados do aplicativo.
Hadoop YARN : Uma estrutura para agendamento de tarefas e gerenciamento de recursos de cluster.
Hadoop MapReduce : um sistema baseado em YARN para processamento paralelo de grandes conjuntos de dados.
Antes de prosseguir, vamos observar que temos três tipos diferentes de dados.
Estruturado : os dados estruturados possuem um esquema forte e o esquema será verificado durante a operação de gravação e leitura. por exemplo, dados em sistemas RDBMS como Oracle, MySQL Server etc.
Não estruturado : os dados não têm estrutura e podem ser de qualquer forma - registros do servidor Web, email, imagens etc.
Semi-estruturado : os dados não são estritamente estruturados, mas têm alguma estrutura. por exemplo, arquivos XML.
Dependendo do tipo de dados a ser processado, temos que escolher a tecnologia certa.
Mais alguns projetos, que fazem parte do Hadoop:
HBase ™ : um banco de dados distribuído e escalável que suporta armazenamento estruturado de dados para tabelas grandes.
Hive ™: uma infraestrutura de data warehouse que fornece resumo de dados e consultas ad-hoc.
Pig ™ : uma linguagem de alto nível de fluxo de dados e estrutura de execução para computação paralela.
A comparação do Hive Vs PIG pode ser encontrada neste artigo e no meu outro post nesta pergunta SE .
O HBASE não substituirá o Map Reduce. O HBase é um banco de dados distribuído escalável e o Map Reduce é um modelo de programação para processamento distribuído de dados. O Map Reduce pode atuar nos dados do HBASE no processamento.
Você pode usar o HIVE / HBASE para dados estruturados / semiestruturados e processá-los com o Hadoop Map Reduce
Você pode usar o SQOOP para importar dados estruturados do banco de dados RDBMS tradicional Oracle, SQL Server etc. e processá-los com o Hadoop Map Reduce
Você pode usar o FLUME para processar dados não estruturados e processar com o Hadoop Map Reduce
Dê uma olhada em: Casos de uso do Hadoop .
O Hive deve ser usado para consulta analítica dos dados coletados durante um período de tempo. por exemplo, calcular tendências, resumir os logs do site, mas não pode ser usado para consultas em tempo real.
O HBase se adapta à consulta em tempo real do Big Data. O Facebook usa-o para mensagens e análises em tempo real.
O PIG pode ser usado para construir fluxos de dados, executar tarefas agendadas, processar grandes volumes de dados, agregá-los / resumir e armazenar em sistemas de banco de dados de relacionamento. Bom para análises ad-hoc.
O Hive pode ser usado para análise de dados ad-hoc, mas não suporta todos os formatos de dados não estruturados, diferentemente do PIG.
fonte
Considere que você trabalha com RDBMS e precisa selecionar o que usar (varreduras de tabela completas ou acesso ao índice), mas apenas uma delas.
Se você selecionar a verificação completa da tabela - use a seção. Se o acesso ao índice - HBase.
fonte
Para uma comparação entre o Hadoop e o Cassandra / HBase, leia este post .
Basicamente, o HBase permite leitura e gravação muito rápidas com escalabilidade. Quão rápido e escalável? O Facebook o usa para gerenciar seus status de usuário, fotos, mensagens de bate-papo etc. O HBase é tão rápido que algumas vezes as pilhas foram desenvolvidas pelo Facebook para usar o HBase como o armazenamento de dados do próprio Hive.
Where As Hive é mais uma solução de Data Warehousing. Você pode usar uma sintaxe semelhante ao SQL para consultar o conteúdo do Hive, o que resulta em um trabalho de redução de mapa. Não é ideal para sistemas transacionais rápidos.
fonte
Trabalhei no processamento da arquitetura Lambda em tempo real e cargas em lote. O processamento em tempo real é necessário onde decisões rápidas precisam ser tomadas em caso de envio de alarme de incêndio por sensor ou detecção de fraude no caso de transações bancárias. O processamento em lote é necessário para resumir os dados que podem ser alimentados nos sistemas de BI.
usamos as tecnologias do ecossistema Hadoop para os aplicativos acima.
Processamento em tempo real
Apache Storm: processamento de dados de fluxo, aplicativo de regras
HBase: armazenamento de dados para exibição do painel em tempo real
Processamento em lote do Hadoop: processando grande parte dos dados. Visão geral de 360 graus ou adição de contexto a eventos. Interfaces ou estruturas como Pig, MR, Spark, Hive, Shark ajudam na computação. Essa camada precisa de agendador para o qual o Oozie é uma boa opção.
Camada de manipulação de eventos
O Apache Kafka foi a primeira camada a consumir eventos de alta velocidade do sensor. O Kafka atende ao fluxo de dados das análises em tempo real e em lote através dos conectores do Linkedin.
fonte
Compreendendo em profundidade
Hadoop
Hadoop
é um projeto de código aberto daApache
fundação. É uma estrutura escritaJava
originalmente, desenvolvida por Doug Cutting em 2005. Foi criada para oferecer suporte à distribuiçãoNutch
do mecanismo de busca de texto.Hadoop
usa o GoogleMap Reduce
e o Google File System Technologies como base.Recursos do Hadoop
Hadoop
é para alta taxa de transferência e não baixa latência. É uma operação em lote que manipula grandes quantidades de dados; portanto, o tempo de resposta não é imediato.RDBMS
.Versões do Hadoop
Existem duas versões
Hadoop
disponíveis:Hadoop 1.0
Tem duas partes principais:
1. Estrutura de Armazenamento de Dados
É um sistema de arquivos de uso geral chamado Hadoop Distributed File System (
HDFS
).HDFS
é sem esquemaEle simplesmente armazena arquivos de dados e esses arquivos podem estar em praticamente qualquer formato.
A idéia é armazenar os arquivos o mais próximo possível da sua forma original.
Isso, por sua vez, fornece às unidades de negócios e à organização a flexibilidade e agilidade necessárias, sem se preocupar demais com o que pode implementar.
2. Estrutura de Processamento de Dados
Este é um modelo de programação funcional simples, popularizado inicialmente pelo Google como
MapReduce
.Essencialmente, ele usa duas funções:
MAP
eREDUCE
para processar dados.Os "Mapeadores" coletam um conjunto de pares de valores-chave e geram dados intermediários (que é outra lista de pares de valores-chave).
Os "Redutores" atuam nessa entrada para produzir os dados de saída.
As duas funções aparentemente funcionam isoladamente, permitindo assim que o processamento seja altamente distribuído de maneira altamente paralela, tolerante a falhas e escalável.
Limitações do Hadoop 1.0
A primeira limitação foi a exigência de
MapReduce
conhecimento em programação.Ele suportava apenas o processamento em lote, que embora seja adequado para tarefas como análise de logs, projetos de mineração de dados em larga escala, mas praticamente inadequado para outros tipos de projetos.
Uma das principais limitações foi o fato de
Hadoop 1.0
estar intimamente associado à computaçãoMapReduce
, o que significava que os fornecedores estabelecidos de gerenciamento de dados ficaram com duas opiniões:Reescreva sua funcionalidade
MapReduce
para que ela possa ser executadaHadoop
ouExtraia
HDFS
ou processe dados fora deHadoop
.Nenhuma das opções era viável, pois levou a ineficiências do processo causadas pela entrada e saída de dados do
Hadoop
cluster.Hadoop 2.0
In
Hadoop 2.0
,HDFS
continua a ser a estrutura de armazenamento de dados.No entanto, uma estrutura nova e independentes de gestão de recursos chamado Y et Um utro R esource N egotiater ( FIO ) foi adicionado.
Qualquer aplicativo capaz de se dividir em tarefas paralelas é suportado pelo YARN.
O YARN coordena a alocação de subtarefas do aplicativo enviado, melhorando ainda mais a flexibilidade, escalabilidade e eficiência dos aplicativos.
Ele funciona com um Application Master no lugar do Job Tracker , executando aplicativos nos recursos controlados pelo novo Node Manager .
O ApplicationMaster é capaz de executar qualquer aplicativo e não apenas
MapReduce
.Isso significa que ele não suporta apenas o processamento em lote, mas também o processamento em tempo real.
MapReduce
não é mais a única opção de processamento de dados.Vantagens do Hadoop
Ele armazena dados em sua origem a partir de. Não há estrutura imposta ao digitar ou armazenar dados.
HDFS
é um esquema menos. Somente mais tarde, quando os dados precisam ser processados, a estrutura é imposta aos dados brutos.É escalável.
Hadoop
pode armazenar e distribuir conjuntos de dados muito grandes em centenas de servidores baratos que operam em paralelo.É resistente ao fracasso.
Hadoop
é tolerância a falhas. Ela pratica a replicação de dados diligentemente, o que significa que sempre que dados são enviados para qualquer nó, os mesmos dados também são replicados para outros nós no cluster, garantindo assim que, em caso de falha do nó, sempre haverá outra cópia dos dados disponíveis para uso.É flexível. Uma das principais vantagens
Hadoop
é que ele pode trabalhar com qualquer tipo de dados: estruturado, não estruturado ou semiestruturado. Além disso, o processamento é extremamente rápidoHadoop
devido ao paradigma "mover código para dados".Ecossistema Hadoop
A seguir estão os componentes do
Hadoop
ecossistema:HDFS :
Hadoop
sistema de arquivos distribuídos. Ele simplesmente armazena arquivos de dados o mais próximo possível da forma original.HBase : É o banco de dados do Hadoop e se compara bem a um
RDBMS
. Ele suporta armazenamento de dados estruturados para tabelas grandes.Hive : Permite a análise de grandes conjuntos de dados usando uma linguagem muito semelhante ao padrão
ANSI SQL
, o que implica que qualquer pessoa familiarSQL
deve poder acessar dados em umHadoop
cluster.Porco : É uma linguagem de fluxo de dados fácil de entender. Ajuda na análise de grandes conjuntos de dados, o que é bastante adequado
Hadoop
.Pig
scripts são convertidos automaticamente emMapReduce
trabalhos peloPig
intérprete.ZooKeeper : É um serviço de coordenação para aplicativos distribuídos.
Oozie : É um
schedular
sistema de fluxo de trabalho para gerenciarHadoop
tarefas do Apache .Mahout : É uma biblioteca de aprendizado de máquina e mineração de dados escalável.
Chukwa : É um sistema de coleta de dados para gerenciar um grande sistema distribuído.
Sqoop : É usado para transferir dados em massa entre
Hadoop
e armazenamentos de dados estruturados, como bancos de dados relacionais.Ambari : É uma ferramenta baseada na Web para provisionar, gerenciar e monitorar
Hadoop
clusters.Colmeia
Hive
é uma ferramenta de infraestrutura de data warehouse para processar dados estruturadosHadoop
. Ele reside em cima deHadoop
resumir o Big Data e facilita a consulta e a análise.Colmeia não é
Um banco de dados relacional
Um design para o Processamento de transações on-line (
OLTP
).Um idioma para consultas em tempo real e atualizações no nível da linha.
Recursos do Hive
Ele armazena o esquema no banco de dados e processa os dados
HDFS
.É projetado para
OLAP
.Ele fornece uma
SQL
linguagem de tipo para consultas chamadasHiveQL
ouHQL
.É mais familiar, rápido, escalável e extensível.
Arquitetura do Hive
Os seguintes componentes estão contidos na Hive Architecture:
Interface do usuário :
Hive
é umadata warehouse
infraestrutura que pode criar interação entre usuário eHDFS
. As interfaces de usuárioHive
compatíveis são a interface do usuário da Web do Hive, a linha de comando do Hive e o Hive HD Insight (no Windows Server).MetaStore :
Hive
escolhe o respectivodatabase
servers
para armazenar o esquema ouMetadata
de tabelas, bancos de dados, colunas em uma tabela, seus tipos de dados eHDFS
mapeamento.HiveQL Process Engine :
HiveQL
é semelhante aoSQL
para consultar informações de esquema noMetastore
. É uma das substituições da abordagem tradicional para oMapReduce
programa. Em vez de escreverMapReduce
emJava
, podemos escrever uma consulta paraMapReduce
e processá-lo.Mecanismo de Exceção : A parte conjunta do
HiveQL
mecanismo de processo eMapReduce
é oHive
Mecanismo de Execução. O mecanismo de execução processa a consulta e gera resultados da mesma forma queMapReduce results
. Ele usa o sabor deMapReduce
.HDFS ou HBase :
Hadoop
sistema de arquivos distribuídos ouHBase
são as técnicas de armazenamento de dados para armazenar dados no sistema de arquivos.fonte
Antes de tudo, devemos esclarecer que o Hadoop foi criado como uma alternativa mais rápida ao RDBMS . Para processar grande quantidade de dados em uma taxa muito rápida, que anteriormente demorava muito tempo no RDBMS.
Agora deve-se conhecer os dois termos:
Dados estruturados : são os dados que usamos no RDBMS tradicional e são divididos em estruturas bem definidas.
Dados não estruturados : É importante entender que cerca de 80% dos dados mundiais são não estruturados ou semiestruturados. Esses são os dados que estão em sua forma bruta e não podem ser processados usando o RDMS. Exemplo: facebook, dados do twitter. ( http://www.dummies.com/how-to/content/unstructured-data-in-a-big-data-environment.html ).
Portanto, grande quantidade de dados estava sendo gerada nos últimos anos e os dados eram basicamente não estruturados, que deram origem ao HADOOP. Ele foi usado principalmente para uma quantidade muito grande de dados que leva um período inviável de tempo usando o RDBMS. Havia muitas desvantagens, que não podiam ser usadas para dados comparativamente pequenos em tempo real, mas eles conseguiram remover suas desvantagens na versão mais recente.
Antes de prosseguir, gostaria de dizer que uma nova ferramenta de Big Data é criada quando eles veem uma falha nas ferramentas anteriores. Portanto, qualquer ferramenta que você verá que foi criada foi feita para superar o problema das ferramentas anteriores.
O Hadoop pode ser dito simplesmente como duas coisas: Mapreduce e HDFS . Mapreduce é onde o processamento ocorre e HDFS é o DataBase em que os dados são armazenados. Essa estrutura seguiu o principal WORM, ou seja, escrever uma vez lido várias vezes. Portanto, depois de armazenar dados no HDFS, não podemos fazer alterações. Isso levou à criação do HBASE , um produto NOSQL, onde também podemos fazer alterações nos dados após escrevê-los uma vez.
Mas com o tempo vimos que o Hadoop tinha muitas falhas e, por isso, criamos um ambiente diferente sobre a estrutura do Hadoop. PIG e HIVE são dois exemplos populares.
O HIVE foi criado para pessoas com experiência em SQL . As consultas gravadas são semelhantes ao SQL nomeado como HIVEQL . O HIVE foi desenvolvido para processar dados completamente estruturados . Não é usado para dados estruturados.
O PIG, por outro lado, possui sua própria linguagem de consulta, ou seja, PIG LATIN . Ele pode ser usado tanto para estruturado , bem como dados não estruturados .
Passando para a diferença de quando usar o HIVE e quando usar o PIG, acho que ninguém além do arquiteto do PIG poderia dizer. Siga o link: https://developer.yahoo.com/blogs/hadoop/comparing-pig-latin-sql-constructing-data-processing-pipelines-444.html
fonte
HDFS significa Hadoop Distributed File System, que usa o modelo de processamento computacional Map-Reduce.
O HBase é um armazenamento de valor-chave, bom para ler e escrever em tempo quase real.
O Hive é usado para extração de dados do HDFS usando sintaxe semelhante ao SQL. O Hive usa a linguagem HQL.
Pig é uma linguagem de fluxo de dados para criar ETL. É uma linguagem de script.
fonte
Deixe-me tentar responder em poucas palavras.
O Hadoop é um ecossistema que compreende todas as outras ferramentas. Portanto, você não pode comparar o Hadoop, mas o MapReduce.
Aqui estão meus poucos centavos:
fonte
Porco: é melhor manipular arquivos e limpar dados de exemplo: remover valores nulos, manipulação de strings, valores desnecessários Hive: para consultar dados limpos
fonte
1. Estamos usando o Hadoop para armazenar dados grandes (dados de estrutura, desestruturação e sem estrutura) no formato de arquivo de formulário, como txt, csv.
2.Se queremos Atualizações colunares em nossos dados, estamos usando a ferramenta Hbase
3.No caso do Hive, estamos armazenando Big Data em formato estruturado e, além disso, estamos fornecendo Análise sobre esses dados.
4.Pig é uma ferramenta que está usando a linguagem latina do Pig para analisar dados em qualquer formato (estrutura, semi-estrutura e desestruturação).
fonte
A limpeza de dados no Pig é muito fácil, uma abordagem adequada seria limpar os dados através do pig e depois processar os dados através do hive e depois enviá-los para hdfs.
fonte
O uso do Hive, Hbase e Pig gerou minha experiência em tempo real em diferentes projetos.
O Hive é usado principalmente para:
Finalidade do Analytics em que você precisa fazer uma análise dos dados do histórico
Gerando relatórios de negócios com base em determinadas colunas
Gerenciamento eficiente dos dados junto com informações de metadados
Unindo tabelas em determinadas colunas que são freqüentemente usadas usando o conceito de bucketing
Armazenamento e consulta eficientes usando o conceito de particionamento
Não é útil para operações em nível de transação / linha, como atualização, exclusão etc.
O porco é usado principalmente para:
Análise frequente de dados em grandes dados
Gerando valores agregados / conta com enormes dados
Gerando indicadores-chave de desempenho no nível corporativo com muita frequência
Hbase é usado principalmente:
Para processamento de dados em tempo real
Para gerenciar com eficiência esquemas complexos e aninhados
Para consultas em tempo real e resultados mais rápidos
Para fácil escalabilidade com colunas
Útil para operações em nível de transação / linha, como atualização, exclusão etc.
fonte
A resposta curta a esta pergunta é -
Hadoop - É o Framework que facilita o sistema de arquivos distribuídos e o modelo de programação que nos permitem armazenar dados de tamanho enorme e processar dados de maneira distribuída com muita eficiência e com muito menos tempo de processamento, comparados às abordagens tradicionais.
(HDFS - Sistema de arquivos distribuídos do Hadoop) (Reduzir mapa - modelo de programação para processamento distribuído)
Hive - É uma linguagem de consulta que permite ler / gravar dados do sistema de arquivos distribuídos Hadoop de uma maneira muito popular como o SQL. Isso facilitou a vida de muitas pessoas em segundo plano não programadas, pois elas não precisam mais escrever o programa Map-Reduce, exceto em cenários muito complexos nos quais o Hive não é suportado.
Hbase - É um banco de dados NoSQL colunar. A camada de armazenamento subjacente do Hbase é novamente HDFS. O caso de uso mais importante para esse banco de dados é poder armazenar bilhões de linhas com milhões de colunas. O recurso de baixa latência do Hbase ajuda o acesso mais rápido e aleatório do registro sobre dados distribuídos, é um recurso muito importante para torná-lo útil para projetos complexos, como o Mecanismo de recomendação. Além disso, seu recurso de controle de versão no nível do registro permite que o usuário armazene dados transacionais com muita eficiência (isso resolve o problema de atualização de registros que temos com o HDFS e o Hive)
Espero que isso seja útil para entender rapidamente os três recursos acima.
fonte
Acredito que esse tópico não tenha feito justiça particularmente ao HBase e ao Pig em particular. Embora eu acredite que o Hadoop seja a escolha do sistema de arquivos resiliente e distribuído para implementações de big data lake, a escolha entre HBase e Hive é particularmente bem segregada.
Por exemplo, muitos casos de uso têm um requisito específico de interfaces semelhantes a SQL ou semelhantes a No-SQL. Com o Phoenix no topo do HBase, embora recursos semelhantes ao SQL sejam certamente alcançáveis, no entanto, o desempenho, as integrações de terceiros e a atualização do painel são um tipo de experiência dolorosa. No entanto, é uma excelente opção para bancos de dados que exigem escala horizontal.
O porco é especialmente excelente para lotes não recursivos, como cálculos ou tubulação ETL (em algum lugar, onde supera o Spark a uma distância confortável). Além disso, suas implementações de alto nível de fluxo de dados são uma excelente opção para consultas e scripts em lote. A escolha entre Pig e Hive também é centrada na necessidade de scripts no cliente ou no servidor, nos formatos de arquivo necessários etc. O Pig suporta o formato de arquivo Avro, o que não é verdade no caso do Hive. A escolha de 'linguagem processual de fluxo de dados' vs 'linguagem declarativa de fluxo de dados' também é um forte argumento para a escolha entre porco e colméia.
fonte