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:

  1. Java 7
  2. Hadoop (Informationen zur Installation von Hadoop finden Sie hier )
  3. 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


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow