Hive Tutorial - Hive Architecture e NASA Case Study



Questo blog tutorial di Hive offre una conoscenza approfondita dell'architettura Hive e del modello di dati Hive. Spiega anche il caso studio della NASA su Apache Hive.

Esercitazione su Apache Hive: Introduzione

Hive è uno strumento utilizzato rigorosamente a livello di settore per Big Data Analytics e un ottimo strumento per iniziare il tuo con. In questo blog tutorial di Hive, discuteremo approfonditamente di Apache Hive. Apache Hive è uno strumento di data warehousing in , che fornisce un linguaggio simile a SQL per interrogare e analizzare i Big Data. La motivazione alla base dello sviluppo di Hive è il percorso di apprendimento senza attriti per sviluppatori e analisti SQL. Hive non è solo un salvatore per le persone che non hanno un background di programmazione, ma riduce anche il lavoro dei programmatori che trascorrono lunghe ore a scrivere programmi MapReduce. In questo blog sul tutorial di Apache Hive, parlerò di:





Esercitazione su Apache Hive: che cos'è Hive?

Apache Hive è un sistema di data warehouse costruito su Hadoop e viene utilizzato per analizzare dati strutturati e semi-strutturati.Hive astrae la complessità di Hadoop MapReduce. Fondamentalmente, fornisce un meccanismo per proiettare la struttura sui dati ed eseguire query scritte in HQL (Hive Query Language) simili alle istruzioni SQL. Internamente, queste query o HQL vengono convertite in lavori di riduzione della mappa dal compilatore Hive. Pertanto, non devi preoccuparti di scrivere programmi MapReduce complessi per elaborare i tuoi dati utilizzando Hadoop. È rivolto agli utenti che hanno dimestichezza con SQL. Apache Hive supporta Data Definition Language (DDL), Data Manipulation Language (DML) e User Defined Functions (UDF).

Hive Tutorial per principianti | Capire Hive in profondità | Edureka



SQL + Hadoop MapReduce = HiveQL

Apache Hive Tutorial: Story of Hive - da Facebook ad Apache

Caso dFigura : Hive Tutorial - Caso d'uso di Facebook

Sfide su Facebook: crescita esponenziale dei dati

Prima del 2008, tutta l'infrastruttura di elaborazione dati di Facebook era costruita attorno a un data warehouse basato su RDBMS commerciali. Queste infrastrutture erano in grado di soddisfare le esigenze di Facebook in quel momento. Tuttavia, poiché i dati hanno iniziato a crescere molto rapidamente, è diventata un'enorme sfida gestire ed elaborare questo enorme set di dati. Secondo un articolo di Facebook, i dati sono passati da un set di dati di 15 TB nel 2007 a un dato di 2 PB nel 2009. Inoltre, molti prodotti Facebook implicano l'analisi dei dati come Audience Insights, Facebook Lexicon, Facebook Ads, ecc. aveva bisogno di una soluzione scalabile ed economica per far fronte a questo problema e, quindi, ha iniziato a utilizzare il framework Hadoop.



Democratizzare Hadoop - MapReduce

Tuttavia, con la crescita dei dati, la complessità dei codici Map-Reduce è cresciuta proporzionalmente. Quindi, formare persone con un background non di programmazione per scrivere programmi MapReduce è diventato difficile. Inoltre, per eseguire un'analisi semplice, è necessario scrivere cento righe di codice MapReduce. Dal momento che SQL è stato ampiamente utilizzato da ingegneri e analisti, incluso Facebook, quindi mettere SQL all'inizio di Hadoop sembrava un modo logico per rendere Hadoop accessibile agli utenti con background SQL.

Quindi, la capacità di SQL di essere sufficiente per la maggior parte dei requisiti analitici e la scalabilità di Hadoop hanno dato vita a Apache Hive che permette di eseguire query tipo SQL sui dati presenti in HDFS. Successivamente, il progetto Hive è stato reso open source nell'agosto 2008 da Facebook ed è oggi disponibile gratuitamente come Apache Hive.

Ora, esaminiamo le caratteristiche oi vantaggi di Hive che lo rendono così popolare.

Esercitazione su Apache Hive: vantaggi di Hive

  • Utile per le persone che non hanno un background di programmazione in quanto elimina la necessità di scrivere un programma MapReduce complesso.
  • Estensibile e scalabile per far fronte al crescente volume e varietà di dati, senza influire sulle prestazioni del sistema.
  • È uno strumento ETL (Extract, Transform, Load) efficiente.
  • Hive supporta qualsiasi applicazione client scritta in Java, PHP, Python, C ++ o Ruby esponendone i file Server parsimonioso . (È possibile utilizzare questi linguaggi lato client incorporati con SQL per accedere a un database come DB2, ecc.).
  • Poiché le informazioni sui metadati di Hive sono archiviate in un RDBMS, riduce notevolmente il tempo necessario per eseguire i controlli semantici durante l'esecuzione della query.

Esercitazione su Apache Hive: dove utilizzare Apache Hive?

Apache Hive sfrutta entrambi i mondi, ovvero SQL Database System e struttura. Pertanto, è utilizzato da una vasta moltitudine di aziende. Viene utilizzato principalmente per il data warehousing in cui è possibile eseguire analisi e data mining che non richiedono l'elaborazione in tempo reale. Alcuni dei campi in cui è possibile utilizzare Apache Hive sono i seguenti:

  • Data Warehousing
  • Analisi ad hoc

Come si dice, non puoi battere le mani con una sola mano, ovvero non puoi risolvere ogni problema con un singolo strumento. Pertanto, puoi accoppiare Hive con altri strumenti per utilizzarlo in molti altri domini. Ad esempio, Tableau e Apache Hive possono essere utilizzati per la visualizzazione dei dati, l'integrazione di Apache Tez con Hive fornirà funzionalità di elaborazione in tempo reale, ecc.
Andando avanti in questo blog Apache Hive Tutorial, diamo un'occhiata a un caso di studio della NASA in cui scoprirai come Hive ha risolto il problema che gli scienziati della NASA stavano affrontando durante la valutazione dei modelli climatici.

Hive Tutorial: case study della NASA

Un modello climatico è una rappresentazione matematica dei sistemi climatici basata su vari fattori che influenzano il clima della Terra. Fondamentalmente, descrive l'interazione di vari fattori del clima come oceano, sole, atmosfera, eccfornire una panoramica delle dinamiche del sistema climatico. Viene utilizzato per proiettare le condizioni climatiche simulando i cambiamenti climatici in base a fattori che influenzano il clima. Il Jet Propulsion Laboratory della NASA ha sviluppato un sistema di valutazione del modello climatico regionale (RCMES) per l'analisi e la valutazione del modello di output climatico rispetto ai dati di telerilevamento presenti in vari repository esterni.

L'RCMES (Regional Climate Model Evaluation System) ha due componenti:

  • RCMED (Database di valutazione del modello climatico regionale):

È un database cloud scalabile che carica i dati di telerilevamento e di rianalisi relativi al clima utilizzando estrattori come gli estrattori Apache OODT, Apache Tika, ecc. Infine, trasforma i dati come il modello del punto dati che è della forma (latitudine , longitudine, ora, valore, altezza) e lo memorizza nel mio database SQL. Il cliente può recuperare i dati presenti in RCMED eseguendo query Spazio / Tempo. La descrizione di tali domande non è rilevante per noi ora.

  • RCMET (Regional Climate Model Evaluation Toolkit):

Fornisce all'utente la possibilità di confrontare i dati di riferimento presenti in RCMED con i dati di output del modello climatico recuperati da altre fonti per eseguire diversi tipi di analisi e valutazione. È possibile fare riferimento all'immagine riportata di seguito per comprendere l'architettura di RCMES.

I dati di riferimento nell'RCMED provengono dal telerilevamento satellitare, in base ai diversi parametri richiesti per la valutazione del modello climatico. Ad esempio: AIRS (Atmospheric Infrared Sounder) fornisce parametri come temperatura dell'aria superficiale, temperatura e Geopotenziale, TRMM (Tropical Rainfall Measurement Mission) fornisce precipitazioni mensili, ecc.

Problemi affrontati dalla NASA utilizzando il sistema di database MySQL:

  • Dopo aver caricato il database MySQL con 6 miliardi di tuple del modulo (latitudine, longitudine, ora, valore del punto dati, altezza), il sistema si è bloccato come mostrato nell'immagine sopra.
  • Anche dopo aver diviso l'intera tabella in sottoinsiemi più piccoli, il sistema ha generato un enorme overhead durante l'elaborazione dei dati.

Quindi, avevano bisogno di una soluzione scalabile in grado di archiviare ed elaborare questa enorme quantità di dati con capacità di query di tipo SQL. Infine, hanno deciso di utilizzare Apache Hive per superare i problemi sopra indicati.

In che modo Apache Hive può risolvere il problema?

Ora, vediamo, quali sono quelle caratteristiche che hanno convinto il team JPL della NASA a includere Apache Hive come parte integrante della loro strategia di soluzione:

  • Poiché Apache Hive viene eseguito su Hadoop, è scalabile e può elaborare i dati in modo distribuito e parallelo.
  • Fornisce Hive Query Language che è simile a SQL e quindi facile da imparare.

Distribuzione di Hive:

L'immagine seguente spiega RCMES Architect con l'integrazione di Apache Hive:

Figura : Hive Tutorial - Architettura RCMES con Apache Hive

L'immagine sopra mostra la distribuzione di apache hive in RCMES. I seguenti passaggi sono stati presi dal team della NASA durante la distribuzione di Apache Hive:

  • Hanno installato Hive utilizzando Cloudera e Apache Hadoop come mostrato nell'immagine sopra.
  • Hanno utilizzato Apache Sqoop per importare i dati nell'Hive dal database MySQL.
  • Il wrapper OODT di Apache è stato implementato per eseguire query su Hive e recuperare i dati su RCMET.

Osservazioni iniziali di benchmarking con Hive:

  • Inizialmente hanno caricato 2,5 miliardi di punti dati in una singola tabella ed hanno eseguito una query di conteggio. Per esempio, Alveare> selezionare count (datapoint_id) da dataPoint. Ci sono voluti 5-6 minuti per contare tutti i record (15-17 minuti per tutti i 6,8 miliardi di record).
  • La fase di riduzione è stata rapida, ma la fase della mappa ha richiesto il 95% del tempo di elaborazione totale. Stavano usando sei ( 4x quad-core ) sistemi con 24 GB di RAM (circa) in ciascuno dei sistemi.
  • Anche dopo aver aggiunto più macchine, cambiato la dimensione del blocco HDFS (64 MB, 128 MB, 256 MB) e alterato molte altre variabili di configurazione (io.ordinare.factor, io.ordinare.mb), non hanno ottenuto molto successo nel ridurre il tempo per completare il conteggio.

Contributi dai membri della comunità Hive:

Infine, i membri della comunità di Hive sono venuti in soccorso e hanno fornito varie informazioni per risolvere i problemi con le loro attuali implementazioni di Hive:

  • Hanno detto che la velocità di lettura di HDFS è approssimativamente 60 MB / s paragonato a 1 GB / s in caso di disco locale, a seconda della capacità di rete e del carico di lavoro su NameNode.
  • I membri lo hanno suggerito 16 mappatori sarà richiesto nel loro sistema corrente per corrispondere alle prestazioni di I / O di un'attività locale non Hadoop.
  • Hanno anche suggerito di ridurre il dimensione divisa per ogni mappatore per aumentare il numerodimappatori e quindi, fornendo più parallelismo.
  • Infine, i membri della comunità hanno detto loro di farlo conteggio usi (1) invece di fare riferimento a contare ( datapoint_id) . Questo perché in caso di conteggio (1) non è presente una colonna di riferimento e quindi non avviene alcuna decompressione e deserializzazione durante l'esecuzione del conteggio.

Infine, la NASA è stata in grado di sintonizzare il proprio cluster Hive in base alle loro aspettative tenendo conto di tutti i suggerimenti forniti dai membri della comunità Hive. Pertanto, sono stati in grado di interrogare miliardi di righe in soli 15 secondi utilizzando le configurazioni di sistema sopra menzionate.

Esercitazione su Apache Hive: architettura Hive e suoi componenti

L'immagine seguente descrive l'architettura Hive e il flusso in cui viene inviata una queryAlvearee infine elaborato utilizzando il framework MapReduce:

Figura : Hive Tutorial - Hive Architecture

Come mostrato nell'immagine sopra, l'architettura Hive può essere classificata nei seguenti componenti:

  • Clienti Hive: Hive supporta applicazioni scritte in molti linguaggi come Java, C ++, Python ecc. Utilizzando i driver JDBC, Thrift e ODBC. Quindi si può sempre scrivere un'applicazione client hive scritta in una lingua a propria scelta.
  • Servizi Hive: Apache Hive fornisce vari servizi come CLI, interfaccia Web ecc. Per eseguire query. Esploreremo ciascuno di essi a breve in questo blog tutorial di Hive.
  • Framework di elaborazione e gestione delle risorse: Internamente,Hive usa il framework Hadoop MapReduce come motore di fatto per eseguire le query. è un argomento separato in sé e quindi non viene discusso qui.
  • Archiviazione distribuita: Poiché Hive è installato su Hadoop, utilizza l'HDFS sottostante per l'archiviazione distribuita. Puoi fare riferimento a Blog HDFS per saperne di più.

Ora, esploriamo i primi due componenti principali nell'architettura Hive:

sovraccarico di funzioni c ++

1. Client Hive:

Apache Hive supporta diversi tipi di applicazioni client per l'esecuzione di query su Hive. Questi clienti possono essere classificati in tre tipi:

  • Clienti parsimoniosi: Poiché il server Hive è basato su Apache Thrift, può soddisfare le richieste di tutti quei linguaggi di programmazione che supportano Thrift.
  • Client JDBC: Hive consente alle applicazioni Java di connettersi ad esso utilizzando il driver JDBC definito nella classe org.apache.hadoop.hive.jdbc.HiveDriver.
  • Client ODBC: Il driver ODBC Hive consente alle applicazioni che supportano il protocollo ODBC di connettersi a Hive. (Come il driver JDBC, il driver ODBC utilizza Thrift per comunicare con il server Hive.)

2. Servizi Hive:

Hive fornisce molti servizi come mostrato nell'immagine sopra. Diamo uno sguardo a ciascuno di essi:

  • Hive CLI (Command Line Interface): Questa è la shell predefinita fornita da Hive in cui è possibile eseguire direttamente le query e i comandi di Hive.
  • Interfacce Web Apache Hive: Oltre all'interfaccia della riga di comando, Hive fornisce anche una GUI basata sul Web per l'esecuzione di query e comandi Hive.
  • Server Hive: Il server Hive è basato su Apache Thrift e, pertanto, è anche denominato Thrift Server che consente a diversi client di inviare richieste a Hive e recuperare il risultato finale.
  • Driver Apache Hive: È responsabile della ricezione delle query inviate tramite la CLI, l'interfaccia utente Web, le interfacce Thrift, ODBC o JDBC da un client. Quindi, il driver passa la query al compilatore dove avviene l'analisi, il controllo del tipo e l'analisi semantica con l'aiuto dello schema presente nel metastore. Nella fase successiva, viene generato un piano logico ottimizzato sotto forma di un DAG (grafico aciclico diretto) di attività di riduzione della mappa e attività HDFS. Infine, il motore di esecuzione esegue queste attività nell'ordine delle loro dipendenze, utilizzando Hadoop.
  • Metastore: Puoi pensare a metastorecome archivio centrale per l'archiviazione di tutte le informazioni sui metadati di Hive. I metadati di Hive includono vari tipi di informazioni come la struttura delle tabelle e le partizioniinsieme alla colonna, al tipo di colonna, al serializzatore e al deserializzatore necessari per l'operazione di lettura / scrittura sui dati presenti in HDFS. Il metastoresi compone di due unità fondamentali:
    • Un servizio che fornisce metastoreaccesso ad altrirServizi di alveare.
    • Memoria su disco per i metadati che è separata dalla memoria HDFS.

Vediamo ora di comprendere i diversi modi di implementare il metastore Hivenella sezione successiva di questo tutorial su Hive.

Esercitazione su Apache Hive: configurazione metastore

Metastore memorizza le informazioni sui metadati utilizzando RDBMS e un livello ORM (Object Relational Model) open source chiamato Data Nucleus che converte la rappresentazione dell'oggetto in schema relazionale e viceversa. Il motivo per scegliere RDBMS invece di HDFS è ottenere una bassa latenza. Possiamo implementare metastore nelle seguenti tre configurazioni:

1. Metastore incorporato:

Sia il servizio metastore che il servizio Hive vengono eseguiti nella stessa JVM per impostazione predefinita utilizzando un'istanza di database Derby incorporata in cui i metadati sono archiviati nel disco locale. Questa è chiamata configurazione metastore incorporata. In questo caso, solo un utente alla volta può connettersi al database del metastore. Se avvii una seconda istanza del driver Hive, riceverai un errore. Ciò è utile per i test unitari, ma non per le soluzioni pratiche.

2. Metastore locale:

Questa configurazione ci consente di avere più sessioni Hive, ovvero più utenti possono utilizzare il database del metastore contemporaneamente. Ciò si ottiene utilizzando qualsiasi database conforme a JDBC come MySQL che viene eseguito in una JVM separata o in una macchina diversa da quella del servizio Hive e del servizio metastore in esecuzione nella stessa JVM come mostrato sopra. In generale, la scelta più diffusa è implementare un server MySQL come database del metastore.

3. Metastore remoto:

Nella configurazione del metastore remoto, il servizio metastore viene eseguito sulla propria JVM separata e non nella JVM del servizio Hive. Altri processi comunicano con il server metastore utilizzando le API di Thrift Network. In questo caso, puoi avere uno o più server metastore per fornire maggiore disponibilità.Il vantaggio principale dell'utilizzo del metastore remoto è che non è necessario condividere le credenziali di accesso JDBC con ogni utente Hive per accedere al database del metastore.

Esercitazione su Apache Hive: modello di dati

I dati in Hive possono essere classificati in tre tipi a livello granulare:

  • tavolo
  • Partizione
  • Secchio

Tavoli:

Le tabelle in Hive sono le stesse delle tabelle presenti in un database relazionale. È possibile eseguire operazioni di filtro, progetto, unione e unione su di essi. Esistono due tipi di tabelle in Hive:

1. Tabella gestita:

Comando:

CREATE TABLE (column1 data_type, column2 data_type)

LOAD DATA INPATH INTO table managed_table

Come suggerisce il nome (tabella gestita), Hive è responsabile della gestione dei dati di una tabella gestita. In altre parole, ciò che intendevo dire, 'Hive gestisce i dati', è che se carichi i dati da un file presente in HDFS in un Hive Tabella gestita e emetti un comando DROP su di esso, la tabella insieme ai suoi metadati verrà eliminata. Quindi, i dati che appartengono al drop managed_table non esistono più da nessuna parte in HDFS e non puoi recuperarlo in alcun modo. Fondamentalmente, stai spostando i dati quando esegui il comando LOAD dal percorso del file HDFS alla directory del warehouse di Hive.

Nota: Il percorso predefinito della directory warehouse è impostato su / user / hive / warehouse. I dati di una tabella Hive risiedono in warehouse_directory / nome_tabella (HDFS). È inoltre possibile specificare il percorso della directory warehouse nel parametro di configurazione hive.metastore.warehouse.dir presente in hive-site.xml.

2. Tavolo esterno:

Comando:

CREATE EXTERNAL TABLE (column1 data_type, column2 data_type) LOCATION ''

CARICARE I DATI INPATH '' NELLA TABELLA

Per tavolo esterno , Hive non è responsabile della gestione dei dati. In questo caso, quando esegui il comando LOAD, Hive sposta i dati nella sua directory warehouse. Quindi, Hive crea le informazioni sui metadati per la tabella esterna. Ora, se esegui un comando DROP sul file tavolo esterno , verranno eliminate solo le informazioni sui metadati relative alla tabella esterna. Pertanto, è ancora possibile recuperare i dati di quella tabella molto esterna dalla directory warehouse utilizzando i comandi HDFS.

Partizioni:

Comando:

CREATE TABLE nome_tabella (column1 data_type, column2 data_type) PARTITIONED BY (partition1 data_type, partition2 data_type e hellip.)

Hive organizza le tabelle in partizioni per raggruppare insieme tipi di dati simili in base a una colonna o una chiave di partizione. Ogni tabella può avere una o più chiavi di partizione per identificare una partizione particolare. Questo ci consente di avere una query più veloce su sezioni di dati.

Nota: Ricorda, l'errore più comune commesso durante la creazione di partizioni è specificare un nome di colonna esistente come colonna di partizione. Durante questa operazione, riceverai un errore: 'Errore nell'analisi semantica: colonna ripetuta nelle colonne di partizionamento'.

Cerchiamo di capire la partizione prendendo un esempio in cui ho una tabella student_details contenente le informazioni sugli studenti di alcune università di ingegneria come student_id, nome, dipartimento, anno, ecc. Ora, se eseguo il partizionamento in base alla colonna del dipartimento, le informazioni di tutti gli studenti appartenenti a un particolare reparto verranno archiviati insieme in quella stessa partizione. Fisicamente, una partizione non è altro che una sottodirectory nella directory della tabella.

Supponiamo di avere i dati per tre dipartimenti nella nostra tabella student_details: CSE, ECE e Civil. Pertanto, avremo tre partizioni in totale per ciascuno dei reparti, come mostrato nell'immagine sottostante. Inoltre, per ogni reparto avremo tutti i dati relativi a quel reparto che risiedono in una sottodirectory separata nella directory della tabella Hive. Ad esempio, tutti i dati degli studenti relativi ai reparti CSE saranno archiviati in user / hive / warehouse / student_details / dept. = CSE. Quindi, le domande riguardanti gli studenti CSE dovrebbero solo esaminare i dati presenti nella partizione CSE. Ciò rende il partizionamento molto utile in quanto riduce la latenza delle query solo mediante la scansione pertinente dati partizionati invece dell'intero set di dati. In effetti, nelle implementazioni del mondo reale, dovrai gestire centinaia di TB di dati. Quindi, immagina di scansionare questa enorme quantità di dati per qualche query dove 95% i dati scansionati da te non erano pertinenti alla tua query.

Ti consiglio di consultare il blog su Comandi dell'alveare dove troverai diversi modi per implementare le partizioni con un esempio.

Secchi:

Comandi:

CREATE TABLE table_name PARTITIONED BY (partition1 data_type, partition2 data_type, & hellip.) RAGGRUPPATA DA (column_name1, column_name2,…) SORTED BY (column_name [ASC | DESC],…)] IN NUM_buckets BUCKETS

Ora puoi dividere ogni partizione o la tabella non partizionata in Bucket in base alla funzione hash di una colonna nella tabella. In realtà, ogni bucket è solo un file nella directory della partizione o nella directory della tabella (tabella non partizionata). Pertanto, se hai scelto di dividere le partizioni in n bucket, avrai n file in ciascuna directory delle partizioni. Ad esempio, puoi vedere l'immagine sopra in cui abbiamo suddiviso ogni partizione in 2 bucket. Pertanto, ogni partizione, ad esempio CSE, avrà due file in cui ognuno di essi memorizzerà i dati dello studente CSE.

In che modo Hive distribuisce le righe in bucket?

Bene, Hive determina il numero di bucket per una riga utilizzando la formula: hash_function (bucket_column) modulo (num_of_buckets) . Ecco, hash_function dipende dal tipo di dati della colonna. Ad esempio, se esegui il bucket della tabella sulla base di una colonna, diciamo user_id, del tipo di dati INT, la funzione hash sarà: hash_function (user_id ) = valore intero di user_id . Supponiamo di aver creato due bucket, quindi Hive determinerà le righe che andranno al bucket 1 in ciascuna partizione calcolando: (valore di user_id) modulo (2). Pertanto, in questo caso, le righe con user_id che termina con una cifra intera pari risiedono nello stesso bucket corrispondente a ciascuna partizione. La funzione hash_ per altri tipi di dati è un po 'complessa da calcolare e infatti, per una stringa non è nemmeno umanamente riconoscibile.

Nota: Se stai utilizzando Apache Hive 0.x o 1.x, devi emettere il comando - set hive.enforce.bucketing = true dal tuo terminale Hive prima di eseguire il bucket. Ciò ti consentirà di avere il numero corretto di riduttori durante l'utilizzo della clausola cluster by per il bucket di una colonna. Se non lo hai fatto, potresti scoprire che il numero di file che sono stati generati nella directory della tua tabella non è uguale al numero di bucket. In alternativa, puoi anche impostare il numero di riduttori uguale al numero di bucket utilizzando set mapred.reduce.task = num_bucket.

Perché abbiamo bisogno di secchi?

Esistono due ragioni principali per eseguire il bucket in una partizione:

  • PER mappa side join richiede che i dati appartenenti a una chiave di join univoca siano presenti nella stessa partizione. Ma per quanto riguarda quei casi in cui la tua chiave di partizione è diversa dall'unione? Pertanto, in questi casi è possibile eseguire un join laterale della mappa eseguendo il bucket della tabella utilizzando la chiave di join.
  • Il bucket rende il processo di campionamento più efficiente e, quindi, ci consente di ridurre il tempo di query.

Vorrei concludere questo blog tutorial di Hive qui. Sono abbastanza sicuro che dopo aver letto questo blog tutorial di Hive, avresti realizzato la semplicità di Apache Hive. Da allora, avete imparato tutti i fondamenti di Hive, è giunto il momento di fare esperienza pratica con Apache Hive. Quindi, controlla il prossimo blog in questa serie di blog tutorial Hive che è sull'installazione di Hive e inizia a lavorare su Apache Hive.

c vs c ++ vs java

Ora che hai compreso Apache Hive e le sue caratteristiche, controlla il da Edureka, una società di formazione online affidabile con una rete di oltre 250.000 studenti soddisfatti sparsi in tutto il mondo. Il corso di formazione per la certificazione Edureka Big Data Hadoop aiuta gli studenti a diventare esperti in HDFS, Yarn, MapReduce, Pig, Hive, HBase, Oozie, Flume e Sqoop utilizzando casi d'uso in tempo reale nel settore Retail, Social Media, Aviation, Tourism, Finance.

Hai domande per noi? Per favore menzionalo nella sezione commenti e ti risponderemo.