hive Zelfstudie
Aan de slag met Hive
Zoeken…
Opmerkingen
- Hive is een datawarehouse-tool gebouwd bovenop Hadoop .
- Het biedt een SQL-achtige taal om gegevens op te vragen.
- We kunnen bijna alle SQL-query's in Hive uitvoeren, het enige verschil is dat het een taak voor het verminderen van kaarten in de backend uitvoert om het resultaat van Hadoop Cluster op te halen. Hierdoor neemt Hive soms meer tijd om de resultaatset op te halen.
Voorbeeld van Word Count in Hive
Documentenbestand (invoerbestand)
Mary had een kleine lam
zijn vacht was wit als sneeuw
en overal waar Maria ging
het lam was zeker te gaan.
Bijenkorfvraag
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;
Uitvoer van de tabel word_counts in Hive
Mary, 2
had, 1
a, 1
kleine, 1
lam, 2
zijn, 1
fleece, 1
was 2
wit, 1
zoals 1
sneeuw, 1
en 1
overal, 1
dat 1
ging, 1
de 1
zeker, 1
tot 1
go, 1
Installatie van Hive (linux)
Begin met het downloaden van de nieuwste stabiele release van https://hive.apache.org/downloads.html
-> Pak het bestand nu uit met
$ tar -xvf hive-2.xy-bin.tar.gz
-> Maak een map in de / usr / local / met
$ sudo mkdir / usr / local / hive
-> Verplaats het bestand naar root met
$ mv ~ / Downloads / hive-2.xy / usr / local / hive
-> Bewerk omgevingsvariabelen voor hadoop en component in .bashrc
$ gedit ~ / .bashrc
soortgelijk
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/* :.
-> Start nu Hadoop als deze nog niet actief is. En zorg ervoor dat het actief is en niet in de veilige modus staat.
$ hadoop fs -mkdir / user / hive / warehouse
De map "magazijn" is de locatie voor het opslaan van de tabel of gegevens met betrekking tot component.
$ hadoop fs -mkdir / tmp
De tijdelijke map 'tmp' is de tijdelijke locatie om het tussenliggende verwerkingsresultaat op te slaan.
-> Stel machtigingen in voor lezen / schrijven in die mappen.
$ hadoop fs -chmod g + w / user / hive / warehouse
$ hadoop fs -chmod g + w / user / tmp
-> Start HIVE nu met dit commando in console
$ bijenkorf
Bijenkorfinstallatie met externe metastore in Linux
Vereisten:
- Java 7
- Hadoop (raadpleeg hier voor Hadoop-installatie)
- MySQL-server en -client
Installatie:
Stap 1: Download de nieuwste Hive tarball van de downloadpagina .
Stap 2: Pak de gedownloade tarball uit ( Veronderstelling: de tarball wordt gedownload in $ HOME )
tar -xvf /home/username/apache-hive-x.y.z-bin.tar.gz
Stap 3: werk het omgevingsbestand bij ( ~/.bashrc
)
export HIVE_HOME=/home/username/apache-hive-x.y.z-bin
export PATH=$HIVE_HOME/bin:$PATH
bron het bestand om de nieuwe omgevingsvariabelen in te stellen.
source ~/.bashrc
Stap 4: Download de JDBC-connector voor mysql van hier en pak het.
tar -xvf mysql-connector-java-a.b.c.tar.gz
De uitgepakte map bevat het connector jar-bestand mysql-connector-java-abcjar
. Kopiëren naar het lib
van $HIVE_HOME
cp mysql-connector-java-a.b.c.jar $HIVE_HOME/lib/
Configuratie:
Maak het hive-configuratiebestand hive-site.xml
onder $HIVE_HOME/conf/
directory en voeg de volgende metastore-gerelateerde eigenschappen toe.
<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>
Werk de waarden van MySQL "gebruikersnaam" en "wachtwoord" dienovereenkomstig bij in de eigenschappen.
Maak het Metastore-schema:
De metastore-schemascripts zijn beschikbaar onder $HIVE_HOME/scripts/metastore/upgrade/mysql/
Log in op MySQL en bron het 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
Om het op de achtergrond uit te voeren,
nohup hive --service metastore &
HiveServer2 starten: (gebruik indien nodig)
hiveserver2
Om het op de achtergrond uit te voeren,
nohup hiveserver2 metastore &
Opmerking: deze uitvoerbare bestanden zijn beschikbaar onder $HIVE_HOME/bin/
Aansluiten:
Gebruik hive
, beeline
of Hue om verbinding te maken met Hive.
Hive CLI is verouderd, het gebruik van Beeline of Hue wordt aanbevolen.
Aanvullende configuraties voor Hue:
Werk deze waarde bij in $HUE_HOME/desktop/conf/hue.ini
[beeswax]
hive_conf_dir=/home/username/apache-hive-x.y.z-bin/conf