Quando usar o Hadoop, HBase, Hive e Pig?

185

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 .

Khalefa
fonte
Hadoop : Sistema de arquivos distribuídos do Hadoop + Modelo de processamento computacional MapReduce. HBase : armazenamento de valor-chave, bom para leitura e gravação em tempo quase real. Hive : Usado para extração de dados do HDFS usando sintaxe semelhante ao SQL. Pig : é uma linguagem de fluxo de dados para a criação de ETL.
Dbustosp 2/07

Respostas:

348

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

Tariq
fonte
Você se esqueceu de falar sobre o yarnecossistema Hadoop :(.
Kenry Sanchez
53

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

  1. Para que os arquivos diários de log da web sejam coletados de mais de 350 servidores, sejam consultados diariamente por meio de alguma linguagem semelhante ao SQL
  2. Para substituir os dados de agregação diários gerados pelo MySQL pelo Hive
  3. Crie relatórios personalizados por meio de consultas no Hive

Opções de arquitetura

Comparei as seguintes opções:

  1. Hive + HDFS
  2. Hive + HBase - as consultas eram muito lentas, então despejei esta opção

Projeto

  1. Arquivos de log diários foram transportados para o HDFS
  2. Os trabalhos de MR analisaram esses arquivos de log e arquivos de saída no HDFS
  3. Crie tabelas do Hive com partições e locais apontando para locais HDFS
  4. Crie scripts de consulta do Hive (chame-o de HQL, se você preferir o SQL ) que, por sua vez, executou tarefas de MR em segundo plano e gerou dados de agregação
  5. Coloque todas essas etapas em um fluxo de trabalho Oozie - agendado com o Daily Oozie Coordinator

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 ...

Sanjay Subramanian
fonte
1
O HBase é um banco de dados NonSQL que armazena dados no HDFS. É usado quando você precisa de acesso aleatório e de leitura / gravação em tempo real aos seus grandes dados.
Root Loop
28

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.

  1. Hadoop Comum : os utilitários comuns que oferecem suporte aos outros módulos do Hadoop.

  2. 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.

  3. Hadoop YARN : Uma estrutura para agendamento de tarefas e gerenciamento de recursos de cluster.

  4. 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.

Ravindra babu
fonte
O Facebook não usa mais o HBase de código aberto para sistemas de mensagens em tempo real. Eles o substituíram por seu [banco de dados Myrocks] interno. ( engineering.fb.com/core-data/… )
PPK
23

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.

David Gruzman
fonte
Na verdade, você pode criar o Hive no HBase para poder usar o HQL para fazer a varredura completa do hbase enquanto pode fazer consultas indexadas diretamente no hbase. Mas duvido que isso ofereça desempenho mais lento na verificação completa.
FrostNovaZzz
O HBase é um sistema orientado para gravação, não é ideal em varreduras, embora os dados sejam armazenados classificados. Então, durante a digitalização de alguns intervalos pode ser boa escolha, análises completas será muito mais lento, em seguida, diretamente do HDFS
David Gruzman
5

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.

shazin
fonte
5

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.

akshat thakar
fonte
5

Compreendendo em profundidade

Hadoop

Hadoopé um projeto de código aberto da Apachefundação. É uma estrutura escrita Javaoriginalmente, desenvolvida por Doug Cutting em 2005. Foi criada para oferecer suporte à distribuição Nutchdo mecanismo de busca de texto. Hadoopusa o Google Map Reducee o Google File System Technologies como base.

Recursos do Hadoop

  1. É otimizado para lidar com grandes quantidades de dados estruturados, semiestruturados e não estruturados usando hardware comum.
  2. Não compartilhou nada de arquitetura.
  3. Ele replica seus dados em vários computadores para que, se um deles cair, os dados ainda possam ser processados ​​a partir de outra máquina que armazena sua réplica.
  4. 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.
  5. Complementa o processamento de transações online e o processamento analítico online. No entanto, não é um substituto para umRDBMS .
  6. Não é bom quando o trabalho não pode ser paralelo ou quando há dependências nos dados.
  7. Não é bom para o processamento de arquivos pequenos. Funciona melhor com grandes arquivos de dados e conjuntos de dados.

Versões do Hadoop

Existem duas versões Hadoopdisponíveis:

  1. Hadoop 1.0
  2. Hadoop 2.0

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 esquema

Ele 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: MAPe REDUCEpara 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

  1. A primeira limitação foi a exigência de MapReduceconhecimento em programação.

  2. 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.

  3. Uma das principais limitações foi o fato de Hadoop 1.0estar intimamente associado à computação MapReduce, o que significava que os fornecedores estabelecidos de gerenciamento de dados ficaram com duas opiniões:

    1. Reescreva sua funcionalidade MapReducepara que ela possa ser executada Hadoopou

    2. Extraia HDFSou processe dados fora de Hadoop.

Nenhuma das opções era viável, pois levou a ineficiências do processo causadas pela entrada e saída de dados do Hadoopcluster.

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. MapReducenã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. Hadooppode 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ápido Hadoopdevido ao paradigma "mover código para dados".

Ecossistema Hadoop

A seguir estão os componentes do Hadoopecossistema:

HDFS : Hadoopsistema 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 familiar SQLdeve poder acessar dados em um Hadoopcluster.

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. Pigscripts são convertidos automaticamente em MapReducetrabalhos pelo Pigintérprete.

ZooKeeper : É um serviço de coordenação para aplicativos distribuídos.

Oozie : É um schedularsistema de fluxo de trabalho para gerenciar Hadooptarefas 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 Hadoope armazenamentos de dados estruturados, como bancos de dados relacionais.

Ambari : É uma ferramenta baseada na Web para provisionar, gerenciar e monitorar Hadoopclusters.

Colmeia

Hiveé uma ferramenta de infraestrutura de data warehouse para processar dados estruturados Hadoop. Ele reside em cima de Hadoopresumir o Big Data e facilita a consulta e a análise.

Colmeia não é

  1. Um banco de dados relacional

  2. Um design para o Processamento de transações on-line ( OLTP).

  3. Um idioma para consultas em tempo real e atualizações no nível da linha.

Recursos do Hive

  1. Ele armazena o esquema no banco de dados e processa os dados HDFS.

  2. É projetado para OLAP.

  3. Ele fornece uma SQLlinguagem de tipo para consultas chamadas HiveQLou HQL.

  4. É mais familiar, rápido, escalável e extensível.

Arquitetura do Hive

Os seguintes componentes estão contidos na Hive Architecture:

  1. Interface do usuário : Hiveé uma data warehouseinfraestrutura que pode criar interação entre usuário e HDFS. As interfaces de usuário Hivecompatí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).

  2. MetaStore : Hiveescolhe o respectivo database serverspara armazenar o esquema ou Metadatade tabelas, bancos de dados, colunas em uma tabela, seus tipos de dados e HDFSmapeamento.

  3. HiveQL Process Engine : HiveQLé semelhante ao SQLpara consultar informações de esquema no Metastore. É uma das substituições da abordagem tradicional para o MapReduceprograma. Em vez de escrever MapReduceem Java, podemos escrever uma consulta para MapReducee processá-lo.

  4. Mecanismo de Exceção : A parte conjunta do HiveQLmecanismo de processo e MapReduceé o HiveMecanismo de Execução. O mecanismo de execução processa a consulta e gera resultados da mesma forma que MapReduce results. Ele usa o sabor de MapReduce.

  5. HDFS ou HBase : Hadoopsistema de arquivos distribuídos ou HBasesão as técnicas de armazenamento de dados para armazenar dados no sistema de arquivos.

Pankti
fonte
1

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:

  1. Dados estruturados : são os dados que usamos no RDBMS tradicional e são divididos em estruturas bem definidas.

  2. 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
1

Hadoop:

HDFS significa Hadoop Distributed File System, que usa o modelo de processamento computacional Map-Reduce.

HBase:

O HBase é um armazenamento de valor-chave, bom para ler e escrever em tempo quase real.

Colmeia:

O Hive é usado para extração de dados do HDFS usando sintaxe semelhante ao SQL. O Hive usa a linguagem HQL.

Porco:

Pig é uma linguagem de fluxo de dados para criar ETL. É uma linguagem de script.

nixxo_raa
fonte
0

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:

  1. Hive: Se sua necessidade é muito SQLish, o que significa que sua declaração do problema pode ser atendida pelo SQL, então a coisa mais fácil a fazer seria usar o Hive. O outro caso, quando você usaria o hive, é quando deseja que um servidor tenha certa estrutura de dados.
  2. Porco: Se você se sente confortável com o Pig Latin e precisa de mais canais de dados. Além disso, seus dados não têm estrutura. Nesses casos, você pode usar o Pig. Honestamente, não há muita diferença entre o Hive & Pig em relação aos casos de uso.
  3. MapReduce: Se o seu problema não puder ser resolvido usando o SQL straight, você deve primeiro tentar criar UDF para Hive & Pig e, em seguida, se o UDF não estiver resolvendo o problema, fazê-lo através do MapReduce fará sentido.
Sandeep Giri
fonte
0

Porco: é melhor manipular arquivos e limpar dados de exemplo: remover valores nulos, manipulação de strings, valores desnecessários Hive: para consultar dados limpos

y durga prasad
fonte
0

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).

swaroop
fonte
0

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.

Akshay Sharma
fonte
0

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.

user1326784
fonte
0

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.

Ajay Ahuja
fonte
0

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