2014-09-26 13 views
6

Ehi ragazzi stavo usando hive jdbc ma dopo quello sono venuto a sapere che c'è hive metastore java api (here) con cui è possibile connettersi nuovamente all'alveare e manipolare banca dati alvearequal è la differenza tra hive jdbc client e hive metastore java api

ma mi chiedevo che cosa è esattamente la differenza tra questi due modi

Scusate se chiesto niente ovvio, ma ogni informazione sarà molto apprezzato

+0

Anche io voglio capire la differenza. – Bector

risposta

6

per quanto ho capito ci sono 2 modi per connettersi a alveare

  1. utilizzando il server metastore alveare, che collega quindi in background per un db relazionale come MySQL per la manifestazione dello schema. Funziona sulla porta 9083, generalmente.
  2. alveare del server JDBC, chiamato HiveServer2, che viene eseguito sulla porta 10001, in genere ...

Ora, nelle edizioni precedenti di alveare, hiveserver2 usato per essere non così stabile e in effetti è multi-threading era anche limitato. Le cose sono probabilmente migliorate in quell'arena, immagino.

Quindi per JDBC api - sì, ti permetterebbe di comunicare usando JDBC e sql.

Per la connettività metastore, sembrano esserci 2 funzioni.

  1. effettivamente eseguire query SQL - DML
  2. per eseguire operazioni DDL.

DDL -

per DDL, le API metastore tornare utile, org.apache.hadoop.hive.metastore.HiveMetaStoreClient HiveMetaStoreClient classe può essere utilizzato a tale scopo

DML -

ciò che ho trovato utile a questo proposito è org.apache.hadoop.hive.ql.Driver https://hive.apache.org/javadocs/r0.13.1/api/ql/org/apache/hadoop/hive/ql/Driver.htmlhive.ql.Driver classe Questa classe ha un metodo chiamato run() che consente di eseguire un'istruzione SQL e ottenere il restituire. per es. puoi fare il seguente

Driver driver = new Driver(hiveConf); 
HiveMetaStoreClient client = new HiveMetaStoreClient(hiveConf); 
SessionState.start(new CliSessionState(hiveConf)); 
driver.run("select * from employee); 
// DDL example 
client.dropTable(db, table); 
+0

bella spiegazione – saching

1

metastore nel alveare come indica il nome è un negozio per i metadati di hive db. Questo archivio è in genere un RDBMS. metastore api supporta l'interazione con RDBMS per armeggiare/modificare i metadati e non l'hive db/data effettivo. Per un utilizzo normale potresti non volerlo mai/doverli utilizzare.Penso che questi siano pensati per le persone che lavorano alla creazione di toolset lavorare con il metastore e non per il normale utilizzo quotidiano.

Problemi correlati