soweit ich es verstehen gibt 2 Möglichkeiten zu verbinden
- mit hive Metastore Server Hive, die dann zu einer relationalen db wie mysql für Schema-Manifestation im Hintergrund verbindet. Dies läuft allgemein auf Port 9083.
- hive jdbc Server, genannt HiveServer2, die auf Port 10001 läuft, in der Regel ...
, jetzt in den früheren Ausgaben von Bienenstock, in der Tat sein hiveserver2 verwendete nicht so stabil, und es ist Multi-Threading-Unterstützung war auch begrenzt. Die Dinge haben sich wahrscheinlich in dieser Arena verbessert, würde ich mir vorstellen.
Also für JDBC api - ja, es würde Sie kommunizieren lassen mit JDBC und sql.
Für die Metastorenkonnektivität scheint es 2 Merkmale zu geben.
- tatsächlich SQL-Abfragen laufen - DML
- DDL-Operationen durchzuführen.
DDL -
für DDL, die Metastore APIs kommen in praktisch, org.apache.hadoop.hive.metastore.HiveMetaStoreClient HiveMetaStoreClient Klasse kann zu diesem Zweck
DML verwendet werden -
Was ich in dieser Hinsicht nützlich gefunden habe, ist die 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 Klasse Diese Klasse hat eine Methode namens run()
, mit der Sie eine SQL-Anweisung ausführen und die Ergebnis zurück. für z.B. Sie können folgendes tun
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);
Auch ich möchte den Unterschied verstehen. – Bector