Поиск…


замечания

  • Улей - это инструмент хранилища данных, построенный на вершине Hadoop .
  • Он предоставляет SQL-подобный язык для запроса данных.
  • Мы можем запускать почти все SQL-запросы в Hive, с той лишь разницей, что он запускает работу по сокращению карты на бэкэнд для получения результата из Hadoop Cluster. Из-за этого улей иногда занимает больше времени, чтобы получить результат.

Пример подсчета слов в улье

Файл Docs (входной файл)

У Мэри был маленький ягненок

его шерсть была белой, как снег

и везде, куда Мария пошла

ягненок обязательно поехал.

Уличный запрос

CREATE TABLE FILES (line STRING);

LOAD DATA INPATH 'docs' OVERWRITE INTO TABLE FILES;

CREATE TABLE word_counts AS
SELECT word, count(1) AS count FROM
(SELECT explode(split(line, ' ')) AS word FROM FILES) w
GROUP BY word
ORDER BY word;

Вывод таблицы word_counts в Hive

Мэри, 2

было, 1

а, 1

мало, 1

баранина, 2

его, 1

флис, 1

была, 2

белый, 1

а, 1

снег, 1

и, 1

везде, 1

что, 1

пошел, 1

, 1

Конечно, 1

к, 1

идти, 1

Установка Hive (linux)

Начните с загрузки последней стабильной версии с https://hive.apache.org/downloads.html

-> Теперь распакуйте файл с помощью

$ tar -xvf hive-2.xy-bin.tar.gz

-> Создать каталог в каталоге / usr / local / with

$ sudo mkdir / usr / local / hive

-> Переместить файл в корень с помощью

$ mv ~ / Downloads / hive-2.xy / usr / local / hive

-> Редактировать переменные среды для hadoop и hive в .bashrc

$ gedit ~ / .bashrc

как это

экспорт HIVE_HOME = / usr / local / hive / apache-hive-2.0.1-bin /

export PATH = $ PATH: $ HIVE_HOME / bin

export CLASSPATH = $ CLASSPATH: / usr / local / Hadoop / lib / * :.

export CLASSPATH = $ CLASSPATH: /usr/local/hive/apache-hive-2.0.1-bin/lib/* :.

-> Теперь, запустите hasoop, если он еще не запущен. И убедитесь, что он запущен, и он не находится в безопасном режиме.

$ hadoop fs -mkdir / пользователь / улей / склад

Каталог «склад» - это место для хранения таблицы или данных, относящихся к улью.

$ hadoop fs -mkdir / tmp

Временной каталог «tmp» является временным местом хранения промежуточного результата обработки.

-> Установить разрешения для чтения / записи в этих папках.

$ hadoop fs -chmod g + w / пользователь / улей / склад

$ hadoop fs -chmod g + w / user / tmp

-> Теперь активируйте HIVE с помощью этой команды в консоли

$ hive

Установка улья с использованием внешнего метастора в Linux

Предпосылки:

  1. Java 7
  2. Hadoop (см. Здесь для установки Hadoop)
  3. Сервер и клиент Mysql

Монтаж:

Шаг 1: Загрузите последний архив из Hive с страницы загрузки .

Шаг 2: Извлеките загруженный tarball ( Предположение: tarball загружается в $ HOME )

tar -xvf /home/username/apache-hive-x.y.z-bin.tar.gz

Шаг 3: Обновите файл окружения ( ~/.bashrc )

export HIVE_HOME=/home/username/apache-hive-x.y.z-bin
export PATH=$HIVE_HOME/bin:$PATH

введите файл, чтобы установить новые переменные среды.

source ~/.bashrc

Шаг 4: Загрузите соединитель JDBC для MySQL из здесь и извлечь его.

tar -xvf mysql-connector-java-a.b.c.tar.gz

mysql-connector-java-abcjar каталог содержит jar-файл mysql-connector-java-abcjar . Скопируйте его в lib $HIVE_HOME

cp mysql-connector-java-a.b.c.jar $HIVE_HOME/lib/

Конфигурация:

Создайте файл конфигурации hive-site.xml $HIVE_HOME/conf/ и добавьте следующие свойства, связанные с метасторе.

<configuration>
   <property>
      <name>javax.jdo.option.ConnectionURL</name>
      <value>jdbc:mysql://localhost/hive_meta</value>
      <description>JDBC connect string for a JDBC metastore</description>
   </property> 
   
   <property>
      <name>javax.jdo.option.ConnectionDriverName</name>    
      <value>com.mysql.jdbc.Driver</value>
      <description>Driver class name for a JDBC metastore</description>
   </property> 
   
   <property>
       <name>javax.jdo.option.ConnectionUserName</name> 
       <value>mysqluser</value>
       <description>username to use against metastore database</description>
   </property> 
   
   <property>
       <name>javax.jdo.option.ConnectionPassword</name> 
       <value>mysqlpass</value>
       <description>password to use against metastore database</description>
   </property> 

   <property>
       <name>datanucleus.autoCreateSchema</name>
       <value>false</value> 
   </property> 

   <property>
       <name>datanucleus.fixedDatastore</name>
       <value>true</value>
   </property>
</configuration>

Обновите значения MySQL «имя пользователя» и «пароль» соответственно в свойствах.

Создайте схему Metastore:

Скрипты схемы метастабильности доступны в разделе $HIVE_HOME/scripts/metastore/upgrade/mysql/

Войдите в MySQL и введите схему,

mysql -u username -ppassword

mysql> create database hive_meta;
mysql> use hive_meta;
mysql> source hive-schema-x.y.z.mysql.sql;
mysql> exit;

Запуск Metastore:

hive --service metastore

Чтобы запустить его в фоновом режиме,

nohup hive --service metastore &

Запуск HiveServer2: (используйте, если необходимо)

hiveserver2

Чтобы запустить его в фоновом режиме,

nohup hiveserver2 metastore &

Примечание. Эти исполняемые файлы доступны в разделе $HIVE_HOME/bin/

Подключение:

Используйте hive , beeline или Hue для соединения с Hive.

Hive CLI устарел, рекомендуется использовать Beeline или Hue.

Дополнительные конфигурации для оттенков:

Обновите это значение в $HUE_HOME/desktop/conf/hue.ini

[beeswax] 
    hive_conf_dir=/home/username/apache-hive-x.y.z-bin/conf


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow