Dieser Blogbeitrag wurde vor der Fusion mit Cloudera auf Hortonworks.com veröffentlicht. Einige Links, Ressourcen oder Referenzen sind möglicherweise nicht mehr korrekt.
Computer werden immer intelligenter und wir nicht.
–Tim Berners Lee, Webentwickler
Google, Amazon und Netflix haben uns konditioniert. Als Verbraucher erwarten wir intelligente Anwendungen, die jede unserer Bewegungen vorhersagen, vorschlagen und antizipieren. Wir möchten, dass sie die Millionen von Möglichkeiten sichten und nur ein paar vorschlagen, die unseren Bedürfnissen entsprechen. Wir möchten Anwendungen, die uns auf eine personalisierte Reise durch eine Welt endloser Möglichkeiten mitnehmen.
Diese personalisierten Reisen erfordern Systeme, die riesige Datenmengen in akzeptabler Zeit speichern und sinnvoll verarbeiten können. Das ist seit dem ersten Tag die Stärke von Hadoop.
Die Bereitstellung der Reise erfordert auch Anwendungen, die direkt in Deep Analytics integriert werden können. Dies bleibt eine Herausforderung, da die meisten Betriebssysteme außerhalb von Hadoop ausgeführt werden und Betriebsdaten und Analysen in separaten Silos speichern.
Technologien wie Apache Hadoop YARN und Apache Slider beginnen, diese Silos aufzubrechen. YARN bietet Hadoop-Ressourcenisolationskontrollen, die es ermöglichen, Anwendungsdaten vor Ort gründlich zu analysieren und gleichzeitig Antworten in einem akzeptablen Zeitrahmen bereitzustellen. Und Apache Slider macht es einfach, langlaufende Betriebssysteme in Hadoop bereitzustellen.
YARN ist das architektonische Zentrum von Hadoop, das es mehreren Datenverarbeitungs-Engines wie interaktivem SQL, Echtzeit-Streaming, Data Science und Batch-Verarbeitung ermöglicht, auf einer einzigen Plattform gespeicherte Daten zu verarbeiten und so einen völlig neuen Analyseansatz zu erschließen. Dies bietet eine nahtlose Integration von Betriebs- und Analysesystemen und eine Grundlage, auf der das Unternehmen eine moderne Datenarchitektur (MDA) aufbauen kann.
Der Stand der Technik in Hadoop
Es ist heute möglich, Betrieb und Analyse in Hadoop miteinander zu verschmelzen, und tatsächlich sehen wir viele unserer Kunden, die dies tun.
Die Teile, die Sie benötigen, sind bereits in Hadoop enthalten:
- Apache HBase ist die NoSQL-Datenbank für Hadoop und eignet sich hervorragend für schnelle Aktualisierungen und Datenzugriff mit geringer Latenz.
- Apache Phoenix (von Salesforce entwickelt) ist ein SQL-Skin für Daten in HBase. Phoenix untersucht bereits die Integration mit Transaktionsmanagern wie Tephra (von Cask).
- Apache Hive ist die De-facto-SQL-Engine für Hadoop, die die umfassendsten SQL-Analysen bietet und sowohl Batch- als auch interaktive Abfragemuster unterstützt. Weitere Informationen zu Fortschritten wie Hive LLAP finden Sie in unserem aktuellen Stinger.Next-Beitrag.
Wir sehen, dass unsere Kunden diese Teile heute verwenden, um Anwendungen mit umfassender Analyse zu erstellen. Ein sehr häufiges Muster, das wir sehen, ist beispielsweise Folgendes:
- Verwendung von HBase als Online-Betriebsdatenspeicher für schnelle Aktualisierungen heißer Daten wie aktuelle Partition für Stunde, Tag usw.
- Durchführen von betrieblichen Abfragen direkt an HBase mit Apache Phoenix.
- Alterungsdaten in HBase-zu-Hive-Tabellen unter Verwendung von Standard-ETL-Mustern.
- Durchführen tiefer SQL-Analysen mit Hive
Das funktioniert, schafft aber eine Reihe von Komplexitäten für Entwickler. Zum Beispiel:
- Welche SQL-Schnittstelle verwende ich wann? Verwende ich Hive, das Deep SQL, aber niedrige TPS bietet? Oder verwende ich Phoenix mit hohem TPS und einfachem SQL? Oder verwende ich beides?
- Wie teile ich Daten zwischen Hive und HBase, wenn ich beide verwende?
- Wie optimiere ich meinen Cluster so, dass ich HBase und Hive erfolgreich zusammenstellen kann, während ich meine SLAs erfülle?
Diese Fragen deuten darauf hin, dass eine tiefere Integration erforderlich ist, um die Erstellung von Anwendungen mit Deep Analytics auf Hadoop zu vereinfachen.
HBase und Hive:Besser zusammen
Welche Möglichkeiten zur vertieften Integration gibt es? Derzeit stellen Kunden Lösungen zusammen, die HBase, Phoenix, Hive usw. nutzen, um ein maßgeschneidertes Closed-Loop-System aufzubauen für Betriebsdaten und SQL-Analysen. Wir glauben, dass es eine Möglichkeit gibt, eine sofort einsatzbereite Integration mit Benutzerfreundlichkeit und zusätzlichen Funktionen wie Transaktionen, Cross-Datacenter-Failover usw. bereitzustellen.
Hive, HBase und Phoenix haben alle eine sehr aktive Entwicklergemeinschaft und werden in unzähligen Organisationen in der Produktion eingesetzt. Dies sind solide, bewährte Betriebsfähigkeiten, die die Grundlage und Zukunft der Transaktionsverarbeitung auf Hadoop sein können.
Mit dem gleichen Ansatz wie die erfolgreiche Stinger-Initiative versucht Hortonworks also, weiter in diese Kernprojekte zu investieren und Dynamik aufzubauen, anstatt sie aufzugeben und neu zu beginnen. Wir planen, in Verbesserungen zu investieren, die eine integrierte operative und analytische Erfahrung über ein eng integriertes Hive und HBase fördern. Dies adressiert echte und interessante Anwendungsfälle auf eine Weise, die Investitionen schützt und einen echten Mehrwert für Kunden schafft.
Wir sehen vier Hauptentwicklungsbereiche, um die Vision intelligenter Anwendungen zu verwirklichen:
1. Ein einheitlicher SQL-Layer mit Hive
Entwickler, die SQL-Anwendungen erstellen, sollten sich nicht zwischen verschiedenen SQL-Lösungen entscheiden müssen, von denen jede ihre eigenen Stärken und Schwächen hat. Wir stellen uns eine einheitliche SQL-Ebene vor, die durch die Unterstützung von Hive für SQL:2011 ermöglicht wird und die basierend auf dem Abfragezugriffsmuster transparent die entsprechende Engine verwendet.
Diese Kombination bietet einen einzigen SQL-Dialekt und einen einzigen Konnektor. Datenarchitekten und DBAs können basierend auf Nutzungsmustern bestimmen, wo Daten gespeichert werden sollen, ohne Benutzeranwendungen mit der Notwendigkeit zu belasten, sich mit mehreren Systemen zu verbinden.
2. Verbesserung von HBase als Betriebsspeicher
HBase reift schnell als operativer Speicher heran und wird in der Lage sein, immer anspruchsvollere Workloads zu bewältigen. Im vergangenen Jahr hat HBase eine SQL-Schnittstelle, Sekundärindizierung und Hochverfügbarkeit hinzugefügt. Diese Funktionen werden weiter ausgereift, und zusätzlich wird HBase zusätzliche Funktionen der Enterprise-Klasse hinzufügen, wie z. B. Multi-Table-, rechenzentrumsübergreifende Transaktionen und mehr.
Projekte wie Omid (Yahoo), Tephra (
3. Shared Metadata Catalog und Transaction Manager
In HBase erstellte Daten sollten automatisch in Hive sichtbar sein und umgekehrt. Diese Fähigkeit macht den Datenaustausch zwischen Online und Analytik völlig trivial. Ein gemeinsam genutzter Transaktionsmanager ermöglicht die nahtlose Zusammenarbeit der neuen ACID-Funktion von Hive und HBase-Transaktionen mit mehreren Tabellen.
4. YARN-fähige Unterstützung für gemischte Arbeitslasten
Heutzutage stellen Kunden HBase und Hive in der Regel in separaten Clustern bereit. Die Entwicklung eines Closed-Loop-Analytics-Systems erfordert eine effektive Kombination von betrieblichen und analytischen Workloads auf mandantenfähige Weise. Mit YARN können wir effektiv ein einzelnes System erstellen, indem wir Ressourcenisolation und Workload-Management-Primitive in YARN nutzen, um verschiedene Formen des Zugriffs auf Daten zu unterstützen. Slider nutzt diese, wenn es HBase in YARN bereitstellt, während Hive LLAP und Tez native YARN-Anwendungen sind, wodurch der Prozess der Ausführung eines Closed-Loop-Analysesystems gemäß einer vorhersagbaren SLA vereinfacht wird.
Schlussfolgerung
Unternehmen nutzen bereits vorhandene Technologien, die in HDP verfügbar sind, wie Apache HBase, Apache Hive, Apache Phoenix usw., um mit schnellen Aktualisierungen aktueller Daten und Analysen über eine Vielzahl von Datensätzen fertig zu werden, die alle in HDFS gespeichert sind, um ein Closed-Loop-Analysesystem zu bewirken . Wir hoffen, die gleichen Integrationsmuster nutzen zu können, um Kunden ein nahtloses Erlebnis zu bieten, indem wir Apache HBase und Apache Hive besser machen – besser zusammen, anstatt neue Technologien für Benutzer zu verstehen und zu nutzen.