Video: Hive commands using command line interface 2025
Den første Hive-klienten er Hive-kommandolinjegrensesnittet (CLI). For å mestre de finere punktene i Hive CLI-klienten, kan det bidra til å gjennomgå den (noe opptatt) Hive-arkitekturen.
I den andre figuren er arkitekturen strømlinjeformet for kun å fokusere på komponentene som kreves når du kjører CLI.
Dette er komponentene i Hive som trengs når du kjører CLI på en Hadoop-klynge. Her kjører du Hive i lokal modus, som bruker lokal lagring, i stedet for HDFS, for dine data.
For å kjøre Hive CLI, utfører du kommandoen hive og spesifiser CLI som tjenesten du vil kjøre. I den følgende oppføringen kan du se kommandoen som kreves, samt noen av våre første HiveQL-setninger. (En trinnkommentar med bruk av A-B-C-modellen er inkludert i oppføringen for å rette oppmerksomheten til nøkkelkommandoene.)
(A) $ $ HIVE_HOME / bin hive - service cli (B) hive> sett hive. cli. skrive ut. nåværende. db = true; (C) hive (standard)> CREATE DATABASE ourfirstdatabase; OK Tid tatt: 3.756 sekunder (D) bikup (standard)> BRUK vår første database; OK Tid tatt: 0. 039 sekunder (E) Hive (vår første database)> CREATE TABLE our_first_table (> Fornavn STRING,> LastName STRING,> EmployeeId INT); OK Tid tatt: 0. 043 sekunder hive (vår første database)> avslutte; (F) $ ls / home / biadmin / Hive / warehouse / ourfirstdatabase. db our_first_table
Den første kommandoen (se trinn A) starter Hive CLI ved hjelp av $ HIVE_HOME miljøvariabelen. Alternativet Cli-kommandolinje-ledelsen styrer Hive-systemet for å starte kommandolinjegrensesnittet, selv om du kunne ha valgt andre servere.
Neste, i trinn B, forteller du Hive CLI å skrive ut din nåværende arbeidsdatabase slik at du vet hvor du befinner deg i navneområdet. (Denne setningen vil være fornuftig etter at vi har forklart hvordan du bruker neste kommando, så hold fast.)
I trinn C bruker du HiveQLs dataspråkspråk (DDL) for å lage din første database. (Husk at databaser i Hive er rett og slett navneområder der bestemte tabeller er plassert, fordi et sett med tabeller kan betraktes som en database eller et skjema, kan du ha brukt termen SCHEMA i stedet for DATABASE for å oppnå det samme resultatet.).
Nærmere bestemt bruker du DDL for å fortelle systemet å opprette en database som heter ourfirstdatabase og deretter for å gjøre denne databasen til standard for påfølgende HiveQL DDL-kommandoer ved hjelp av USE-kommandoen i trinn D. I trinn E lager du først bord og gi det (ganske passende) navnet our_first_table.
(Til nå har du kanskje trodd at det ser ut som SQL, med kanskje noen få mindre forskjeller i syntaks, avhengig av hvilken RDBMS du er vant til - og du ville ha vært riktig.) Den siste kommandoen, i Trinn F, utfører en katalogoppføring over den valgte katalogen Hive-lagerboken, slik at du kan se at our_first_table faktisk er lagret på disken.
Du setter bikuben. metastore. lager. dir-variabel for å peke på den lokale katalogen / hjemme / biadmin / Hive / lager i din virtuelle Linux-maskin, i stedet for å bruke HDFS som du ville ha på en riktig Hadoop-klynge.
Når du har opprettet et bord, er det interessant å se tabellens metadata. I produksjonsmiljøer kan du ha dusinvis av bord eller mer, så det er nyttig å kunne vurdere tabellstrukturen fra tid til annen. Du c en bruker en HiveQL-kommando for å gjøre dette ved hjelp av Hive CLI, men Hive Web Interface (HWI) Server gir et nyttig grensesnitt for denne typen operasjon.
Bruk av HWI-serveren i stedet for CLI kan også være sikrere. Det må gjøres omhyggelig ved bruk av CLI i produksjonsmiljøer fordi maskinen som kjører CLI må ha tilgang til hele Hadoop-klyngen.
Derfor installerer systemadministratorer vanligvis verktøy som det sikre skjulet (ssh) for å gi kontrollert og sikker tilgang til maskinen som kjører CLI, samt å levere nettverkskryptering. Men når HWI-serveren er ansatt, kan en bruker bare få tilgang til Hive-data tillatt av HWI-serveren via sin nettleser.
