1. HBase-Übersicht 1.1 Was ist HBase? HBase ist eine auf HDFS basierende NoSQL-Datenbank für verteilte Datenspeicherung mit hoher Zuverlässigkeit, hoher Leistung, Spaltenspeicherung, Skalierbarkeit und Lesen und Schreiben in Echtzeit. Hbase kann riesige Datenmengen speichern, weist in den späteren Phasen eine hohe Abfrageleistung auf und kann bei Abfragen von Hunderten Millionen Datenelementen in Sekundenschnelle Ergebnisse zurückgeben. 1.2 Eigenschaften von HBase-Tabellen 1. Groß
2. Kein Modus
3. Spaltenorientiert
4. Spärlich
5. Mehrere Versionen von Daten
6. Einzelner Datentyp
1.3 Logische Ansicht der HBase-Tabelle 2. HBase-Clusterstruktur 1. Kunde
2. Tierpfleger Der Client benötigt einen ZK-Cluster, um HBase-Tabellendaten zu betreiben Wirkung
3. HMaster Es ist der Chef des gesamten HBase-Clusters Wirkung
4. HRegionServer Es ist der jüngere Bruder des integrierten HBase-Clusters Wirkung
5. Region Es ist die kleinste Einheit des verteilten Speichers in der gesamten HBase-Tabelle. Die Daten werden auf HDFS-Basis gespeichert. 3. Installation und Bereitstellung des HBase-Clusters Voraussetzungen
1. Laden Sie das entsprechende Installationspaket herunter
2. Planen Sie das Installationsverzeichnis
3. Laden Sie das Installationspaket auf den Server hoch 4. Entpacken Sie das Installationspaket in das angegebene Planungsverzeichnis
5. Benennen Sie das Dekomprimierungsverzeichnis um
6. Ändern Sie die Konfigurationsdatei Sie müssen das Hadoop-Installationsverzeichnis in den Ordner /etc/hadoop legen
Sie müssen die beiden oben genannten Hadoop-Konfigurationsdateien in den Ordner conf im Hbase-Installationsverzeichnis kopieren. 1. vim hbase-env.sh #Java-Umgebungsvariablen konfigurieren export JAVA_HOME=/export/servers/jdk #Geben Sie an, dass der HBase-Cluster von einem externen ZK-Cluster verwaltet wird, und verwenden Sie nicht den integrierten ZK-Cluster-Export HBASE_MANAGES_ZK = false 2. vim hbase-site.xml <!-- Geben Sie den Pfad an, unter dem HBase auf HDFS gespeichert ist --> <Eigenschaft> <name>hbase.rootdir</name> <Wert>hdfs://node1:9000/hbase</Wert> </Eigenschaft> <!-- Geben Sie an, dass HBase verteilt ist --> <Eigenschaft> <name>hbase.cluster.distributed</name> <Wert>wahr</Wert> </Eigenschaft> <!-- Geben Sie die Adresse von zk an. Trennen Sie mehrere Adressen mit „,“ --> <Eigenschaft> <name>hbase.zookeeper.quorum</name> <Wert>Knoten1:2181,Knoten2:2181,Knoten3:2181</Wert> </Eigenschaft> 3. vim Regionserver #Geben Sie an, welche Knoten HRegionServer sind Knoten2 Knoten3 4. vim Backup-Master #Geben Sie an, welche Knoten Standby-Hmaster sind Knoten2 7. Konfigurieren Sie die HBase-Umgebungsvariablen vim /etc/profil export HBASE_HOME=/export/servers/hbase export PATH=$PATH:$HBASE_HOME/bin 8. Verteilen Sie Hbase-Verzeichnisse und Umgebungsvariablen scp -r hbase node2:/export/servers scp -r hbase node3:/export/servers scp /etc/Profil Knoten2:/etc scp /etc/Profil Knoten3:/etc 9. Machen Sie die Umgebungsvariablen aller HBase-Knoten wirksam Auf allen Knoten ausführen
4. Starten und stoppen Sie den HBase-Cluster 1. Starten Sie den HBase-Cluster Starten Sie zuerst die ZK- und Hadoop-Cluster Dann durch hbase/bin start-hbase.sh
2. Stoppen Sie den HBase-Cluster Über hbase/bin stop-hbase.sh Webverwaltungsschnittstelle für HBase-Cluster 1. Nach dem Start des HBase-Clusters Zugriffsadresse HMaster-Hostname: 16010 5. Hbase-Shell-Befehlszeilenoperation hbase/bin/hbase shell Geben Sie den Befehlsvorgang für den Hbase-Shell-Client ein 1. Erstellen Sie eine Tabelle Erstellen Sie „t_user_info“, „base_info“, „extra_info“. erstelle 't1', {NAME => 'f1'}, {NAME => 'f2'}, {NAME => 'f3'} 2. Überprüfen Sie, welche Tabellen vorhanden sind Liste Ähnlich wie sql:show tables in mysql table 3. Zeigen Sie die Beschreibungsinformationen der Tabelle an beschreibe 't_user_info' 4. Tabelleneigenschaften ändern #Ändern Sie die maximale Anzahl von Versionen der Spaltenfamilie alter 't_user_info', NAME => 'base_info', VERSIONS => 3 5. Daten zur Tabelle hinzufügen setze 't_user_info','00001','base_info:name','zhangsan' setze 't_user_info','00001','base_info:age','30' setze 't_user_info','00001','base_info:address','beijing' setze 't_user_info','00001','extra_info:Schule','shanghai' setze 't_user_info','00002','base_info:name','lisi' 6. Tabellendaten abfragen //Abfrage gemäß den Bedingungen get 't_user_info','00001' erhalte 't_user_info','00001', {COLUMN => 'base_info'} erhalte 't_user_info','00001', {COLUMN => 'base_info:name'} Holen Sie sich 't_user_info', '00001', {TIMERANGE => [1544243300660,1544243362660]} Holen Sie sich 't_user_info', '00001', {COLUMN => 'base_info:age',VERSIONS =>3} //Vollständiger Tabellenabfrage-Scan 't_user_info' 7. Löschung von Daten lösche 't_user_info','00001','base_info:name' lösche alles 't_user_info','00001' 8. Tabelle löschen deaktiviere 't_user_info' 't_user_info' löschen 6. Das interne Prinzip von hbase
7. HBase-Adressierungsmechanismus RegionServer suchen
-ROOT-Tabelle
.META.-Tabelle
Kontaktieren Sie den Regionserver, um Zieldaten abzufragen Der Regionserver lokalisiert die Region, in der sich die Zieldaten befinden, und stellt eine Abfrageanforderung Die Region wird zuerst im Memstore durchsucht und zurückgegeben, wenn sie übereinstimmt Wenn es nicht im Memstore gefunden wird, durchsucht es die Store-Datei (es kann viele Store-Dateien durchsuchen – Bloomfilter). Der Bloomfilter kann schnell zurückgeben, ob sich der abgefragte Rowkey in dieser Store-Datei befindet, aber es treten auch Fehler auf. Wenn es „nein“ zurückgibt, darf es nicht da sein. Wenn es „ja“ zurückgibt, darf es nicht da sein. 8. Erweiterte Hbase-Anwendungen Erstellen einer Tabelle BLOOMFILTER ist standardmäßig der Row Bloom-Filter
VSRSIONS verwendet standardmäßig 1 Datenversion
KOMPRESSION Der Standardwert ist KEINE Komprimierung
disable_all 'toplist.*' disable_all unterstützt reguläre Ausdrücke und listet die aktuell passenden Tabellen auf. drop_all ist das gleiche Vorabpartitionierung von HBase-Tabellen – manuelle Partitionierung Eine Möglichkeit, das Schreiben im Stapel zu beschleunigen, besteht darin, im Voraus einige leere Regionen zu erstellen. Wenn Daten in HBase geschrieben werden, wird die Datenlast innerhalb des Clusters entsprechend der Regionenpartitionierung ausgeglichen. Reduzieren Sie die automatische Partitionierung, wenn die Daten die Storefile-Größe erreichen Zeitaufwand, und es gibt noch einen weiteren Vorteil: Durch das vernünftige Design des Zeilenschlüssels können die gleichzeitigen Anforderungen der einzelnen Regionen gleichmäßig verteilt werden (tendenziell einheitlich), um die E/A-Effizienz zu maximieren. Zeilenschlüsseldesign Halten Sie die Anzahl der Spaltenfamilien so gering wie möglich, normalerweise 2-3 Zeilenschlüssel
Es wird empfohlen, das höchste Bit des Zeilenschlüssels als Hash-Feld zu verwenden, das vom Programm zufällig generiert wird, und das niedrigste Bit als Zeitfeld. Dadurch wird die Wahrscheinlichkeit einer gleichmäßigen Datenverteilung in jedem RegionServer erhöht, um einen Lastenausgleich zu erreichen. (Schild) Rowkey-Widerspruch
Hotspot-Auflösung
Sie können Long.Max_Value - Zeitstempel verwenden, um ihn an das Ende des Schlüssels anzuhängen, z. B. [Schlüssel][Reverse_Timestamp]. Der neueste Wert von [Schlüssel] kann durch Scannen von [Schlüssel] ermittelt werden, um den ersten Datensatz von [Schlüssel] zu erhalten, da der Zeilenschlüssel in HBase geordnet ist und der erste Datensatz die zuletzt eingegebenen Daten sind. Zusammenfassen Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Wenn Sie mehr darüber erfahren möchten, schauen Sie sich bitte die folgenden Links an Das könnte Sie auch interessieren:
|
<<: Zusammenfassung verschiedener MySQL-Installationsmethoden und Konfigurationsprobleme
>>: So vereinfachen Sie Redux mit Redux Toolkit
Inhaltsverzeichnis Auf dem Server läuft Jupyter N...
Hier ist der MySQL-Treiber mysql.data.dll Beachte...
Serverstatusanalyse CPU-Details des Linux-Servers...
Hintergrund: Vor langer Zeit (2017.6.5, der Artik...
Fügen Sie zunächst den Code unter dem Effektdiagr...
JavaScript kann viele tolle Dinge. Dieser Artikel...
Definition und Verwendung Mithilfe von @media-Abf...
Das HTML-Spezifikationsdokument führt das Crossor...
In diesem Artikel wird der spezifische Prozess zu...
1. Starten Sie den Docker-Container Starten Sie m...
MySQL-Version: MySQL Community Server 5.7.17, ins...
Vorwort In der Datenbank sind einige Datentabelle...
So installieren Sie Tomcat-8.5.39 auf CentOS 7.6....
Async Hooks ist eine neue Funktion von Node8. Sie...
Die in HTML häufig verwendeten Escape-Zeichen wer...