в чем разница между клиентом hive jdbc и Java api Hive metastore

Эй, ребята, я использовал hive jdbc, но после этого я узнал, что есть hive metastore java api (здесь), С помощью которого вы можете снова подключиться к hive и управлять базой данных hive

но мне было интересно, в чем именно разница между этими двумя способами

Извините, если спросили что-нибудь очевидное, но любая информация будет высоко оценена

2 ответов


насколько я понимаю, есть 2 способа подключения к улью

  1. использование сервера Hive metastore, который затем подключается в фоновом режиме к реляционной БД, такой как mysql для проявления схемы. Это работает на порту 9083, как правило.
  2. hive JDBC server, называемый HiveServer2, который работает на порту 10001, как правило...

теперь, в более ранних версиях hive, hiveserver2 раньше был не таким стабильным, и на самом деле это многопоточная поддержка также была ограниченный. Думаю, в этой области дела пошли лучше.

поэтому для JDBC api-да, это позволит вам общаться с помощью JDBC и sql.

хранилища подключения, есть 2 Особенности.

  1. для фактического запуска SQL-запросов-DML
  2. для выполнения операций DDL.

DDL -

для DDL пригодятся API метастор, org.апаш.платформа Hadoop.улей.метастор.HiveMetaStoreClient HiveMetaStoreClient класс может быть использован для этой цели

DML -

что я нашел полезным в этом отношении является орг.апаш.платформа Hadoop.улей.КЖ.Драйвер https://hive.apache.org/javadocs/r0.13.1/api/ql/org/apache/hadoop/hive/ql/Driver.html улей.КЖ.Водитель!--26--> класс Этот класс имеет метод run() что позволяет выполнить инструкцию SQL и получить результат обратно. например, вы можете сделать следующее

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

metastore в hive, как указывает имя, является хранилищем метаданных hive db. Этот магазин обычно является СУБД. Api metastore поддерживает взаимодействие с СУБД для обработки / настройки метаданных, а не фактических данных/данных hive.Для нормального использования, вы можете никогда не придется использовать эти.Я думаю, что они предназначены для людей, работающих над созданием инструментов для работы с хранилищем, а не для нормального ежедневного использования.