Зачем использовать MySQL в Hive как Metastore:
- По умолчанию Hive поставляется с базой данных derby в качестве метастаза.
- База данных Derby может поддерживать только одного активного пользователя одновременно
- Дерби не рекомендуется в производственной среде
Таким образом, решение здесь
- Используйте MYSQL в качестве мета-хранилища на сервере для одновременного подключения нескольких пользователей к Hive.
- MYSQL — лучший выбор для автономного метастаза
Шаги по установке и настройке базы данных MySQL в Hive на Hadoop
Шаг 1) На этом шаге мы собираемся выполнить две задачи
- Установка mysql-сервера
- Проверка mysql-сервера и его процесса
- Используя команду sudo apt-get install mysql-server, мы можем скачать mysql server
Установите MySQL, как показано на скриншоте
- После успешной установки MySQL будет работать, как показано на снимке экрана ниже
Шаг 2) Установка MySQL Java Connector. Это для Java-зависимостей и цели соединения
Шаг 3) Создание программной ссылки для коннектора в каталоге Hive lib . Это для мягкой связи между Java и MySql.
Шаг 4) Настройка хранилища MySql в Hive
- Введите MySql –u root –p и пароль
- Здесь –u обозначает имя пользователя root, p обозначает пароль
- После ввода вышеуказанной команды, пользователь должен ввести действительный пароль и затем нажать Enter
- Затем он перейдет в режим оболочки MySql
Шаг 5) Создание имени пользователя и пароля для MySql, предоставление привилегий.
Мы должны выполнить команды, как показано ниже,
mysql> CREATE USER 'hiveuser'@'%' IDENTIFIED BY 'hivepassword'; mysql> GRANT all on *.* to 'hiveuser'@localhost identified by 'hivepassword'; mysql> flush privileges;
Шаг 6) Настройка hive-site.xml
- После шага 5 назначьте имя пользователя и пароль для базы данных MySQL и предоставьте привилегии.
- Here we will configure some properties in Hive to get a connection with MySQL database.
From the above screenshot, we observe the following. Here we are defining 4 properties that could be necessary to establish MYSQL as Meta store in Hive
These are as follows:
- This property is for connection URL purpose. Here we are defining ConnectionURL in this property. It acts as JDBC connection and its representing metastore location as well
- This property is for Connection driver name. Here mysql.jdbc.Driver is the respected value we have to mention in the value tag
- This property used for defining Connection User name. In this, we defined «hiveguru» as user name
- This property used for mentioning Connection Password. In this, we defined password as user password.
Once the properties placed in hive –site.xml we have to manually save (Ctrl+S) and close the file. After closing this file, we have to create Hive table and check the table details in MySQL storage.
Place this code in hive-site.xml
hive-site.xml
<configuration> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost/metastore?createDatabaseIfNotExist=true</value> <description>metadata is stored in a MySQL server</description> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> <description>MySQL JDBC driver class</description> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>hiveuser</value> <description>user name for connecting to mysql server</description> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>hivepassword</value> <description>password for connecting to mysql server</description> </property> </configuration>
Step7) Create table «guru99» in Hive.
From the above screenshot, we can observe the following
- Creation of table name»guru99″ with two column names
- The columns names mentioned with its data type as one is integer, and another one is of string type
In the next step, we are going to check whether it is stored in MySql or not
Step 8) Entering into MySql shell mode
From the above screenshot, we can observe the following
- Сначала мы должны использовать базу данных как «использовать metastore»
- Как только он выберет мета-хранилище, мы можем проверить присутствующие в нем таблицы, используя команду «show» tables, как показано на скриншоте
- Какие бы таблицы ни создавались в Hive, метаданные соответствуют тем таблицам, которые хранятся в TBLS в базе данных MySQL.
- «Таблица Guur99» создается в Hive, поэтому соответствующие метаданные хранятся в MySQL под TBLS.
Шаг 9) Проверка, представляет ли созданная таблица MySQL или нет
Введя select * from TBLS, он отобразит таблицы, которые мы создали в режиме оболочки Hive.
На скриншоте выше мы можем наблюдать следующие вещи:
- Имя таблицы «guru99», созданной в Hive, может отображаться в режиме оболочки MySQL.
- Помимо этого, он также предоставит информацию, такую как время создания таблицы, время доступа и другие свойства, как показано на снимке экрана выше.