Perché utilizzare HBase
una scelta migliore rispetto all'utilizzo di Cassandra
con Hadoop
?Perché HBase è una scelta migliore di Cassandra con Hadoop?
Qualcuno può fornire una spiegazione dettagliata al riguardo?
Grazie
Perché utilizzare HBase
una scelta migliore rispetto all'utilizzo di Cassandra
con Hadoop
?Perché HBase è una scelta migliore di Cassandra con Hadoop?
Qualcuno può fornire una spiegazione dettagliata al riguardo?
Grazie
non credo che uno dei due è meglio degli altri, non è solo uno o l'altro. Si tratta di sistemi molto diversi, ciascuno con i suoi punti di forza e di debolezza, quindi dipende davvero dai casi d'uso. Possono sicuramente essere utilizzati in complemento l'un l'altro nella stessa infrastruttura.
Per spiegare meglio la differenza mi piacerebbe prendere in prestito un'immagine da Cassandra: the Definitive Guide, dove vanno oltre il teorema CAP. Quello che dicono è fondamentalmente per qualsiasi sistema distribuito, devi trovare un equilibrio tra consistenza, disponibilità e tolleranza di partizione, e puoi solo realisticamente soddisfare 2 di queste proprietà. Da che si può vedere che:
Quando si tratta di Hadoop, HBase è costruito sulla base di HDFS, che lo rende abbastanza comodo da usare se si dispone già di uno stack Hadoop. È supportato anche da Cloudera, che è una distribuzione aziendale standard per Hadoop.
Ma Cassandra ha anche più integrazione con Hadoop, ovvero Datastax Brisk che sta guadagnando popolarità. Ora puoi anche eseguire lo streaming nativo dei dati dall'output di un lavoro Hadoop in un cluster Cassandra utilizzando un formato di output fornito da Cassandra (BulkOutputFormat
per esempio), non siamo più al punto in cui Cassandra era solo un progetto autonomo.
Nella mia esperienza, ho trovato che Cassandra è impressionante per letture casuali, e non tanto per le scansioni
di mettere un po 'di colore alla foto, sono stato utilizzando sia al mio lavoro nel stessa infrastruttura, e HBase ha uno scopo ben diverso da quello di Cassandra. Ho usato Cassandra principalmente per ricerche molto veloci in tempo reale, mentre ho usato HBase di più per pesanti lavori batch ETL con requisiti di latenza più bassi.
Questa è una domanda che sarebbe veramente degna di un post sul blog, quindi invece di andare avanti e avanti vorrei indirizzarvi a an article che riassume molte delle differenze tra i due sistemi di chiavi. La linea di fondo è che non esiste una soluzione IMHO di livello superiore e dovresti davvero pensare ai tuoi casi d'uso per vedere quale sistema è più adatto.
Dobbiamo confrontare i pro & con entrambi i database e prendere una decisione protetta in base ai requisiti aziendali.
Cassandra
Pro:
Contro:
HBase
Pro:
Contro:
Dai un'occhiata alla article 1, article 2 e questo presentation per ulteriori dettagli.
Come può MySql avere disponibilità nel diagramma? Come viene definita la disponibilità? Non ha senso per me, penso che devi scegliere tra C o A, non tutti 2. http://codahale.com/you-cant-sacrifice-partition-tolerance/ – user1944408
@ user1944408 Ovviamente in ogni sistema c'è un senso di compromesso, questo è semplicemente per illustrare le dipendenze scorrevoli. Non puoi ottenere il 100% di una proprietà pur mantenendo il 100% di un'altra proprietà, devi fare alcuni compromessi. Il tuo articolo fa presupporre la tolleranza delle partizioni, quindi ovviamente non puoi avere coerenza e disponibilità con questa ipotesi. Come presi dallo stesso libro, i sistemi sulla linea CA possono essere ad esempio commit a 2 fasi per le transazioni distribuite, quindi il sistema si bloccherebbe quando si verifica una partizione di rete. –
Ciò significa che non sono disponibili quando si verifica la partizione, giusto? Ma lo stesso vale per HBase, quindi significherebbe che HBase è CA. Penso che i database possano essere CP o AP ma non CA. Quale proprietà del database della CA non è contenuta nel database CP? Puoi darmi un esempio? Se si verifica una partizione qual è la differenza tra HBase e MySql? – user1944408