Что такое драйвер JDBC и почему он важен для распределенной работы в Hive

Big Data, JDBC, Hive, драйвер, приложение, Java, SQL, hadoop hive, обучение arenadata hadoop, курсы nosql, обучение nosql, mongodb nosql, курсы nosql в Москве, hbase курсы, курсы по mongodb, курс разработчиков arenadata db

В прошлый раз мы говорили про особенности работы с основными join-операциями в Hive. Сегодня поговорим про использование JDBC-драйвера при работе в распределенной Big Data платформе Apache Hive. Читайте далее про особенности использования этого драйвера при работе в распределенной среде Hive.

Использование драйвера JDBC в распределенной СУБД Apache Hive

Драйвер JDBC (Java Data Base Connectivity) — это кроссплатформенный (независящий от платформы) стандарт взаимодействия Java-приложений с различными СУБД (в том числе и реляционными). JDBC-драйвер играет роль моста между СУБД и Java-приложением (в том числе написанным с помощью Java-модулей в различных языках программирования. Например, существует Java-модуль для Python, именуемый Jyton). При работе с базой данных Hive драйвер JDBC используется для соединения с ней и отправления SQL-запросов (диалект HiveQL также учитывается драйвером) из Java-приложения в эту СУБД. Этот драйвер позволяет получать соединение со средой Hive по специальному URL (Uniform Resource Locator). В качестве URL коннектор JDBC принимает адрес сервера и порт (обычно 4 цифры), по которому он принимает все запросы.

Big Data, JDBC, Hive, драйвер, приложение, Java, SQL, hadoop hive, обучение arenadata hadoop, курсы nosql, обучение nosql, mongodb nosql, курсы nosql в Москве, hbase курсы, курсы по mongodb, курс разработчиков arenadata db
Структура взаимодействия Hive и Java-приложения через JDBC-драйвер

Особенности использования драйвера JDBC при работе с Hive: несколько практических примеров

Для того, чтобы начать настройку работы Java-приложения с Apache Hive, необходимо объявить переменную с названием JDBC-драйвера Hive (для разных СУБД JDBC-драйвера отличаются) и зарегистрировать этот драйвер. За регистрацию драйвера в Java-приложении отвечает метод Class.forName(). Следующий код на языке Java отвечает за регистрацию JDBC-драйвера Hive в Java-приложении [1]:

private static String driverName = "org.apache.hadoop.hive.jdbc.HiveDriver";  
         public static void main(String[] args) throws SQLException
          {  
   //Регистрация драйвера
              Class.forName(driverName);
}

После регистрации драйвера в Java-приложении необходимо настроить соединение приложения с сервером Hive. Для этого необходимо создать экземпляр класса Connection и вызвать метод getConnection() у класса DriverManager, который в качестве параметра принимает URL-адрес сервера (а также порт, по которому он работает) и базы данных Hive [1]:

Connection con = DriverManager.getConnection("jdbc:hive://localhost:10000/userdb", "", "");

После установления соединения с Hive приложение может отправлять запросы на Hive-сервер. Для этого необходимо создать экземпляр класса Statement для создания среды отправления SQL-запросов из приложения на сервер, а затем с помощью результирующей коллекции ResultSet получать данные с помощью метода executeQuery(), который в качестве параметра принимает необходимый SQL-запрос [1]:

//Создание среды отправления SQL-запросов
Statement stmt = con.createStatement();
//Получение коллекции с данными    
Resultset res = stmt.executeQuery(" SELECT * FROM employee WHERE salary>30000; ");

Для того, чтобы вывести все результаты на экран, используется цикл while c условием передвижения курсора по результирующей коллекции (за это отвечает метод next() класса ResultSet) [1]:

//Передвижение курсора после каждой итерации
while (res.next()){        
System.out.println(res.getInt(1) + " " + res.getString(2) + " " + res.getDouble(3) + " " + res.getString(4) + " " + res.getString(5));
}

Таким образом, благодаря поддержке механизма JDBC, Hive имеет возможность работы с Java-приложениями в реальном времени, что может существенно упрощать задачу при разработке корпоративных и web-приложений для анализа данных в распределенной среде. Например, в рамках ETL-конвейера Apache NiFi, что мы рассматриваем здесь.

Больше подробностей про применение Apache Hive в проектах анализа больших данных вы узнаете на практических курсах по NoSQL в нашем лицензированном учебном центре обучения и повышения квалификации ИТ-специалистов в Москве:

Я даю свое согласие на обработку персональных данных и соглашаюсь с политикой конфиденциальности.

Источники

  1. https://data-flair.training/blog/hiveql-select-statement/

Добавить комментарий

Поиск по сайту