hive Tutorial
Erste Schritte mit Bienenstock
Suche…
Bemerkungen
- Hive ist ein Data Warehouse-Tool, das auf Hadoop basiert.
- Es bietet eine SQL-ähnliche Sprache zum Abfragen von Daten.
- Wir können fast alle SQL-Abfragen in Hive ausführen. Der einzige Unterschied besteht darin, dass im Backend ein Map-Reduction-Job ausgeführt wird, um das Ergebnis vom Hadoop-Cluster abzurufen. Aus diesem Grund benötigt Hive manchmal mehr Zeit, um die Ergebnismenge abzurufen.
Word Count Beispiel in Hive
Docs-Datei (Eingabedatei)
Mary hatte ein kleines Lamm
sein Vlies war schneeweiß
und überall wohin Mary ging
das Lamm würde sicher gehen.
Hive-Abfrage
CREATE TABLE FILES (line STRING);
LOAD DATA INPATH 'docs' OVERWRITE INTO TABLE FILES;
CREATE TABLE word_counts AS
SELECT word, count(1) AS count FROM
(SELECT explode(split(line, ' ')) AS word FROM FILES) w
GROUP BY word
ORDER BY word;
Ausgabe der word_counts Tabelle in Hive
Mary, 2
hatte, 1
a, 1
wenig, 1
Lamm, 2
seine, 1
Vlies, 1
war 2
weiß, 1
als, 1
Schnee, 1
und 1
überall 1
dass 1
ging, 1
die, 1
sicher, 1
bis 1
geh, 1
Installation von Hive (Linux)
Laden Sie zunächst die neueste stabile Version von https://hive.apache.org/downloads.html herunter
-> Entpacken Sie jetzt die Datei mit
$ tar -xvf hive-2.xy-bin.tar.gz
-> Erstellen Sie ein Verzeichnis in / usr / local / with
$ sudo mkdir / usr / local / hive
-> Verschieben Sie die Datei mit zu root
$ mv ~ / downloads / hive-2.xy / usr / local / hive
-> Bearbeiten Sie die Umgebungsvariablen für hadoop und bienenstock in .bashrc
$ gedit ~ / .bashrc
so was
export HIVE_HOME = / usr / local / hive / apache-hive-2.0.1-bin /
export PATH = $ PATH: $ HIVE_HOME / bin
export CLASSPATH = $ CLASSPATH: / usr / local / Hadoop / lib / * :.
export CLASSPATH = $ CLASSPATH: /usr/local/hive/apache-hive-2.0.1-bin/lib/* :.
-> Starten Sie hadoop, falls es noch nicht läuft. Stellen Sie sicher, dass es läuft und sich nicht im abgesicherten Modus befindet.
$ hadoop fs -mkdir / user / hive / warehouse
Das Verzeichnis "Warehouse" ist der Ort, an dem die Tabelle oder Daten gespeichert werden, die sich auf hive beziehen.
$ hadoop fs -mkdir / tmp
Das temporäre Verzeichnis „tmp“ ist der temporäre Speicherort für das Zwischenergebnis der Verarbeitung.
-> Legen Sie die Berechtigungen zum Lesen / Schreiben für diese Ordner fest.
$ hadoop fs -chmod g + w / user / hive / warehouse
$ hadoop fs -chmod g + w / user / tmp
-> Starten Sie HIVE mit diesem Befehl in der Konsole
$ Bienenstock
Hive-Installation mit externem Metastore unter Linux
Voraussetzungen:
- Java 7
- Hadoop (Informationen zur Installation von Hadoop finden Sie hier )
- Mein Server und Client
Installation:
Schritt 1: Laden Sie das neueste Hive-Archiv von der Downloadseite herunter .
Schritt 2: Extrahieren Sie das heruntergeladene Archiv ( Annahme: Das Archiv wird in $ HOME heruntergeladen )
tar -xvf /home/username/apache-hive-x.y.z-bin.tar.gz
Schritt 3: Aktualisieren Sie die Umgebungsdatei ( ~/.bashrc
)
export HIVE_HOME=/home/username/apache-hive-x.y.z-bin
export PATH=$HIVE_HOME/bin:$PATH
Quelldatei die Datei, um die neuen Umgebungsvariablen festzulegen.
source ~/.bashrc
Schritt 4: Laden Sie den JDBC-Connector für MySQL von hier herunter und extrahieren Sie ihn.
tar -xvf mysql-connector-java-a.b.c.tar.gz
Das extrahierte Verzeichnis enthält die Connector-JAR-Datei mysql-connector-java-abcjar
. Kopieren Sie es in der lib
von $HIVE_HOME
cp mysql-connector-java-a.b.c.jar $HIVE_HOME/lib/
Aufbau:
Erstellen Sie die Hive-Konfigurationsdatei hive-site.xml
im hive-site.xml
$HIVE_HOME/conf/
und fügen Sie die folgenden Eigenschaften für den Metastore hinzu.
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost/hive_meta</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>mysqluser</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>mysqlpass</value>
<description>password to use against metastore database</description>
</property>
<property>
<name>datanucleus.autoCreateSchema</name>
<value>false</value>
</property>
<property>
<name>datanucleus.fixedDatastore</name>
<value>true</value>
</property>
</configuration>
Aktualisieren Sie die Werte von "Benutzername" und "Kennwort" von MySQL entsprechend in den Eigenschaften.
Erstellen Sie das Metastore-Schema:
Die Metastore-Schemaskripts stehen unter $HIVE_HOME/scripts/metastore/upgrade/mysql/
Melden Sie sich bei MySQL an und beschaffen Sie das Schema.
mysql -u username -ppassword
mysql> create database hive_meta;
mysql> use hive_meta;
mysql> source hive-schema-x.y.z.mysql.sql;
mysql> exit;
Metastore starten:
hive --service metastore
Um es im Hintergrund auszuführen,
nohup hive --service metastore &
HiveServer2 starten: (ggf. verwenden)
hiveserver2
Um es im Hintergrund auszuführen,
nohup hiveserver2 metastore &
Hinweis: Diese ausführbaren Dateien sind unter $HIVE_HOME/bin/
verfügbar.
Verbinden:
Verwenden Sie entweder hive
, beeline
oder hue , um eine Verbindung mit hive herzustellen.
Hive-CLI ist veraltet, es wird empfohlen, Beeline oder Hue zu verwenden.
Zusätzliche Konfigurationen für Farbton:
Aktualisieren Sie diesen Wert in $HUE_HOME/desktop/conf/hue.ini
[beeswax]
hive_conf_dir=/home/username/apache-hive-x.y.z-bin/conf