Sök…


Anmärkningar

  • Hive är ett datalagerverktyg byggt på toppen av Hadoop .
  • Det tillhandahåller ett SQL-liknande språk för frågedata.
  • Vi kan köra nästan alla SQL-frågor i Hive, den enda skillnaden är att det kör ett kartminskande jobb i backend för att hämta resultat från Hadoop Cluster. På grund av detta Hive tar ibland mer tid att hämta resultatuppsättningen.

Exempel på ordräkning i Hive

Dokumentfil (Input File)

Mary hade ett litet lamm

dess fleece var vit som snö

och överallt där Mary åkte

lammet var säkert att gå.

Hivefråga

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;

Output från word_counts-tabellen i Hive

Mary, 2

haft, en

a, 1

lite, en

lamm, 2

dess, ett

fleece, en

var, 2

vit, en

som, ett

snö, en

och, en

överallt, en

att, en

åkte, en

den, en

säker, en

till, en

go, en

Installation av Hive (linux)

Börja med att ladda ner den senaste stabila versionen från https://hive.apache.org/downloads.html

-> Lossa nu filen med

$ tar -xvf hive-2.xy-bin.tar.gz

-> Skapa en katalog i / usr / local / med

$ sudo mkdir / usr / local / bikupa

-> Flytta filen till rot med

$ mv ~ / Nedladdningar / hive-2.xy / usr / local / hive

-> Redigera miljövariabler för hadoop och hive i .bashrc

$ gedit ~ / .bashrc

så här

exportera HIVE_HOME = / usr / local / hive / apache-hive-2.0.1-bin /

export PATH = $ PATH: $ HIVE_HOME / bin

export CLASSPATH = $ CLASSPATH: / usr / local / Hadoop / lib / *:.

exporter CLASSPATH = $ CLASSPATH: /usr/local/hive/apache-hive-2.0.1-bin/lib/* :.

-> Nu börja hadoop om den inte redan körs. Och se till att den körs och att den inte är i säkert läge.

$ hadoop fs -mkdir / user / hive / warehouse

Katalogen "lager" är platsen för att lagra tabellen eller data relaterade till bikupan.

$ hadoop fs -mkdir / tmp

Den temporära katalogen "tmp" är den tillfälliga platsen för att lagra det mellanliggande resultatet av behandlingen.

-> Ställ in behörigheter för läsning / skrivning i dessa mappar.

$ hadoop fs -chmod g + w / användare / bikupa / lager

$ hadoop fs -chmod g + w / user / tmp

-> Avfyra nu HIVE med detta kommando i konsolen

$ bikupa

Hiveinstallation med extern metastore i Linux

Förutsättningar:

  1. Java 7
  2. Hadoop (se här för Hadoop installation)
  3. Mysql Server och Client

Installation:

Steg 1: Ladda ner den senaste Hive-tarbollen från nedladdningssidan .

Steg 2: Extrahera den nedladdade tarballen ( Antagande: Tarballen laddas ner i $ HOME )

tar -xvf /home/username/apache-hive-x.y.z-bin.tar.gz

Steg 3: Uppdatera miljöfilen ( ~/.bashrc )

export HIVE_HOME=/home/username/apache-hive-x.y.z-bin
export PATH=$HIVE_HOME/bin:$PATH

källa till filen för att ställa in nya miljövariabler.

source ~/.bashrc

Steg 4: Ladda ner JDBC-kontakten för mysql härifrån och extrahera den.

tar -xvf mysql-connector-java-a.b.c.tar.gz

Den extraherade katalogen innehåller anslutningsburkfilen mysql-connector-java-abcjar . Kopiera den till lib$HIVE_HOME

cp mysql-connector-java-a.b.c.jar $HIVE_HOME/lib/

Konfiguration:

Skapa hive-site.xml under $HIVE_HOME/conf/ katalog och lägg till följande metastore relaterade egenskaper.

<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>

Uppdatera värdena för MySQL "användarnamn" och "lösenord" i enlighet därmed i egenskaperna.

Skapa Metastore-schema:

Skript för metastore-scheman är tillgängliga under $HIVE_HOME/scripts/metastore/upgrade/mysql/

Logga in på MySQL och källa till schemat,

mysql -u username -ppassword

mysql> create database hive_meta;
mysql> use hive_meta;
mysql> source hive-schema-x.y.z.mysql.sql;
mysql> exit;

Starta Metastore:

hive --service metastore

För att köra det i bakgrunden,

nohup hive --service metastore &

Starta HiveServer2: (Använd vid behov)

hiveserver2

För att köra det i bakgrunden,

nohup hiveserver2 metastore &

Obs: Dessa körbara filer är tillgängliga under $HIVE_HOME/bin/

Ansluta:

Användning antingen hive , beeline eller nyans för att ansluta till Hive.

Hive CLI avskrivs, med hjälp av Beeline eller Hue rekommenderas.

Ytterligare konfigurationer för nyans:

Uppdatera detta värde i $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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow