в чем разница между клиентом hive jdbc и Java api Hive metastore
Эй, ребята, я использовал hive jdbc, но после этого я узнал, что есть hive metastore java api (здесь), С помощью которого вы можете снова подключиться к hive и управлять базой данных hive
но мне было интересно, в чем именно разница между этими двумя способами
Извините, если спросили что-нибудь очевидное, но любая информация будет высоко оценена
2 ответов
насколько я понимаю, есть 2 способа подключения к улью
- использование сервера Hive metastore, который затем подключается в фоновом режиме к реляционной БД, такой как mysql для проявления схемы. Это работает на порту 9083, как правило.
- hive JDBC server, называемый HiveServer2, который работает на порту 10001, как правило...
теперь, в более ранних версиях hive, hiveserver2 раньше был не таким стабильным, и на самом деле это многопоточная поддержка также была ограниченный. Думаю, в этой области дела пошли лучше.
поэтому для JDBC api-да, это позволит вам общаться с помощью JDBC и sql.
хранилища подключения, есть 2 Особенности.
- для фактического запуска SQL-запросов-DML
- для выполнения операций 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.Для нормального использования, вы можете никогда не придется использовать эти.Я думаю, что они предназначены для людей, работающих над созданием инструментов для работы с хранилищем, а не для нормального ежедневного использования.