Questo post sul blog è stato pubblicato su Hortonworks.com prima della fusione con Cloudera. Alcuni collegamenti, risorse o riferimenti potrebbero non essere più accurati.
I computer stanno diventando più intelligenti e noi no.
–Tim Berners Lee, sviluppatore web
Google, Amazon e Netflix ci hanno condizionato. Come consumatori, ci aspettiamo applicazioni intelligenti in grado di prevedere, suggerire e anticipare ogni nostra mossa. Vogliamo che esaminino le milioni di possibilità e ne suggeriscano solo alcune adatte alle nostre esigenze. Vogliamo applicazioni che ci portino in un viaggio personalizzato attraverso un mondo di infinite possibilità.
Questi viaggi personalizzati richiedono ai sistemi di archiviare e dare un senso a enormi volumi di dati in un lasso di tempo accettabile. Questo è stato il forte di Hadoop sin dal primo giorno.
La realizzazione del percorso richiede anche l'integrazione diretta delle applicazioni con l'analisi approfondita. Questa rimane una sfida poiché la maggior parte dei sistemi operativi funziona al di fuori di Hadoop, collocando i dati operativi e le analisi in silos separati.
Tecnologie come Apache Hadoop YARN e Apache Slider stanno iniziando ad abbattere questi silos. YARN offre controlli di isolamento delle risorse Hadoop che consentono di analizzare in modo approfondito i dati delle applicazioni sul posto fornendo risposte in un lasso di tempo accettabile. E Apache Slider semplifica l'implementazione di sistemi operativi di lunga durata in Hadoop.
YARN è il centro architettonico di Hadoop che consente a più motori di elaborazione dati come SQL interattivo, streaming in tempo reale, scienza dei dati ed elaborazione batch di gestire i dati archiviati in un'unica piattaforma, sbloccando un approccio completamente nuovo all'analisi. Ciò fornisce una perfetta integrazione dei sistemi operativi e analitici e una base su cui l'azienda può costruire una Modern Data Architecture (MDA).
Lo stato dell'arte in Hadoop
Oggi è possibile fondere insieme operazioni e analisi in Hadoop, e infatti vediamo che molti dei nostri clienti lo fanno.
I pezzi che ti servono sono già in Hadoop:
- Apache HBase è il database NoSQL per Hadoop ed è ottimo per gli aggiornamenti rapidi e l'accesso ai dati a bassa latenza.
- Apache Phoenix (pioniere di Salesforce) è una skin SQL per i dati in HBase. Phoenix sta già studiando l'integrazione con gestori di transazioni come Tephra (di Cask).
- Apache Hive è il motore SQL de facto per Hadoop che fornisce l'analisi SQL più approfondita e supporta modelli di query sia batch che interattivi. Vedi il nostro recente post Stinger.Next per progressi come Hive LLAP.
Vediamo i nostri clienti che utilizzano queste parti oggi per creare applicazioni con analisi approfondite, ad esempio un modello molto comune che vediamo include:
- Utilizzo di HBase come archivio dati operativo online per aggiornamenti rapidi su dati importanti come la partizione corrente per l'ora, il giorno ecc.
- Esecuzione di query operative direttamente su HBase utilizzando Apache Phoenix.
- Invecchiamento dei dati nelle tabelle da HBase a Hive utilizzando schemi ETL standard.
- Esecuzione di analisi SQL approfondite utilizzando Hive
Funziona ma crea una serie di complessità per gli sviluppatori. Ad esempio:
- Quale interfaccia SQL utilizzo e quando? Uso Hive che offre SQL profondo ma TPS basso? O uso Phoenix con TPS elevato e SQL di base? O li uso entrambi?
- Se utilizzo entrambi, come faccio a condividere i dati tra Hive e HBase?
- Come faccio a ottimizzare il mio cluster in modo da poter co-localizzare con successo HBase e Hive mentre soddisfo i miei SLA?
Queste domande suggeriscono che è necessaria un'integrazione più profonda per semplificare la creazione di applicazioni con analisi approfondite su Hadoop.
HBase e Hive:meglio insieme
Quali opportunità esistono per una più profonda integrazione? Attualmente, i clienti stanno mettendo insieme soluzioni che sfruttano HBase, Phoenix, Hive ecc. per creare un sistema a circuito chiuso su misura per dati operativi e analisi SQL. Riteniamo che ci sia un'opportunità per fornire un'integrazione pronta all'uso con facilità d'uso e funzionalità aggiuntive come transazioni, failover tra datacenter e così via.
Hive, HBase e Phoenix hanno tutti una comunità di sviluppatori molto attiva e sono utilizzati nella produzione in innumerevoli organizzazioni. Si tratta di capacità operative solide e comprovate che possono essere la base e il futuro dell'elaborazione delle transazioni su Hadoop.
Quindi, utilizzando lo stesso approccio della riuscita iniziativa Stinger, Hortonworks cerca di investire ulteriormente in questi progetti chiave e creare slancio invece di abbandonarli e ricominciare da capo. Abbiamo in programma di investire in miglioramenti che promuovono un'esperienza operativa e analitica integrata tramite Hive e HBase strettamente integrati. Questo affronta casi d'uso reali e interessanti in un modo che preserva gli investimenti e genera valore reale per i clienti.
Vediamo quattro aree di sviluppo principali per aiutare a realizzare la visione delle applicazioni intelligenti:
1. Un livello SQL unificato con Hive
Gli sviluppatori che creano applicazioni SQL non dovrebbero dover scegliere tra diverse soluzioni SQL, ognuna con i propri punti di forza e di debolezza. Immaginiamo un livello SQL unificato, abilitato dal supporto di Hive per SQL:2011, che utilizzi in modo trasparente il motore appropriato in base al modello di accesso alla query.
Questa combinazione fornisce un singolo dialetto SQL e un singolo connettore. Data architect e DBA possono determinare dove archiviare i dati in base ai modelli di utilizzo senza gravare sulle applicazioni degli utenti la necessità di connettersi a più sistemi.
2. Migliorare HBase come archivio operativo
HBase sta maturando rapidamente come negozio operativo e sarà in grado di affrontare carichi di lavoro sempre più impegnativi. Nell'ultimo anno, HBase ha aggiunto un'interfaccia SQL, indicizzazione secondaria e alta disponibilità. Queste funzionalità continueranno a maturare e, inoltre, HBase aggiungerà funzionalità aggiuntive di livello aziendale come transazioni multi-tabella, cross-datacenter e altro ancora.
Progetti come Omid (Yahoo), Tephra (
3. Catalogo di metadati condivisi e Transaction Manager
I dati creati in HBase dovrebbero essere automaticamente visibili in Hive e viceversa. Questa capacità rende la condivisione dei dati tra online e analitica completamente banale. Un gestore delle transazioni condiviso consente alla nuova funzione ACID di Hive e alle transazioni HBase multi-tabella di lavorare insieme senza problemi.
4. Supporto per carichi di lavoro misti abilitato per YARN
Oggi i clienti in genere distribuiscono HBase e Hive in cluster separati. Lo sviluppo di un sistema di analisi a circuito chiuso richiede un'efficace combinazione di carichi di lavoro operativi e analitici in modo multi-tenant. Con YARN possiamo creare in modo efficace un unico sistema sfruttando l'isolamento delle risorse e le primitive di gestione del carico di lavoro in YARN per supportare diverse forme di accesso ai dati. Slider ne fa uso quando distribuisce HBase in YARN, mentre Hive LLAP e Tez sono applicazioni YARN native, semplificando così il processo di esecuzione di un sistema analitico a circuito chiuso secondo uno SLA prevedibile.
Conclusione
Le aziende utilizzano tecnologie già esistenti disponibili in HDP come Apache HBase, Apache Hive, Apache Phoenix ecc. per gestire aggiornamenti rapidi dei dati e delle analisi correnti su una vasta gamma di set di dati, tutti archiviati in HDFS per effettuare un sistema di analisi a circuito chiuso . Ci auguriamo di sfruttare gli stessi modelli di integrazione per fornire un'esperienza senza interruzioni ai clienti, migliorando Apache HBase e Apache Hive, meglio insieme, piuttosto che creare nuove tecnologie che gli utenti possano comprendere e utilizzare.