Путь интеграции Космического Hive

HadoopHadoopBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В далекой галактике существует外星ная исследовательская база, посвященная изучению тайм宇宙а. Одна из ведущих исследователей, ксенобиолог Зара, получила задачу анализировать огромные объемы данных, собранных с различных небесных тел. Однако огромный объем и сложность данных делают сложным процессинг и извлечение ценных инсайтов с использованием традиционных методов.

Цель Зары - использовать мощь Hadoop Hive, мощного инструмента для хранения данных, для эффективного хранения, обработки и анализа астрономических данных. Создав Hive на кластере Hadoop базы, она надеется выявить скрытые паттерны и связи, которые могут shedding light на происхождение и эволюцию небесных тел, в конечном итоге продвигая наше понимание Вселенной.

Установка Hive

В этом шаге мы установим Apache Hive на нашем кластере Hadoop, что позволит нам обрабатывать и анализировать астрономические данные с использованием запросов, похожих на SQL.

Сначала перейдите в пользователя hadoop, выполнив следующую команду в терминале:

su - hadoop

Затем загрузите последнюю стабильную версию Apache Hive с официального сайта:

wget https://downloads.apache.org/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz

Распакуйте загруженный архив:

tar -xzf apache-hive-3.1.3-bin.tar.gz

Далее задайте переменную окружения HIVE_HOME, добавив следующую строку в файл ~/.bashrc:

echo 'export HIVE_HOME=/home/hadoop/apache-hive-3.1.3-bin' >> ~/.bashrc
export HIVE_HOME=/home/hadoop/apache-hive-3.1.3-bin

Настройте Hive для работы с кластером Hadoop, создав файл hive-site.xml в директории $HIVE_HOME/conf с следующим содержанием:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:derby:;databaseName=/home/hadoop/metastore_db;create=true</value>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>org.apache.derby.jdbc.EmbeddedDriver</value>
  </property>
  <property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/user/hive/warehouse</value>
  </property>
</configuration>

Этот файл конфигурации настраивает metastore Hive, который хранит метаданные для таблиц и разделов Hive.

Наконец, инициализируйте метаданные с помощью следующей команды:

$HIVE_HOME/bin/schematool -dbType derby -initSchema

Создание таблицы Hive

В этом шаге мы создадим таблицу Hive для хранения астрономических данных, собранных с различных небесных тел.

  1. Запустите Hive shell, выполнив следующую команду:
$HIVE_HOME/bin/hive
  1. Создайте новую базу данных под названием astronomy:
CREATE DATABASE astronomy;
  1. Используйте базу данных astronomy:
USE astronomy;
  1. Создайте новую таблицу под названием celestial_bodies со следующей схемой:
CREATE TABLE celestial_bodies (
  id INT,
  name STRING,
  type STRING,
  distance DOUBLE,
  mass DOUBLE,
  radius DOUBLE
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;

Эта таблица будет хранить информацию о различных небесных телах, включая их ID, имя, тип (например, звезда, планета, астероид), расстояние до Земли, массу и радиус.

  1. Загрузите некоторые примеры данных в таблицу celestial_bodies из локального файла:
LOAD DATA LOCAL INPATH '/home/hadoop/celestial_data.csv' OVERWRITE INTO TABLE celestial_bodies;

Советы: Симуляция под названием celestial_data.csv уже существует по пути /home/hadoop/

  1. Выйдите из Hive shell:
EXIT;

Запросы к таблице Hive

В этом шаге мы выполним несколько запросов, похожих на SQL, к таблице celestial_bodies, чтобы проанализировать астрономические данные.

  1. Запустите Hive shell, если он еще не запущен:
$HIVE_HOME/bin/hive
  1. Используйте базу данных astronomy:
USE astronomy;
  1. Получите количество небесных тел в таблице:
SELECT COUNT(*) FROM celestial_bodies;
  1. Найдите небесные тела с массой больше 1.0:
SELECT name, type, mass FROM celestial_bodies WHERE mass > 1.0;
  1. Получите среднее расстояние планет от Земли:
SELECT AVG(distance) FROM celestial_bodies WHERE type = 'Planet';
  1. Выйдите из Hive shell:
EXIT;

Не стесняйтесь экспериментировать с более сложными запросами в соответствии с вашими требованиями анализа.

Резюме

В этом лабораторном занятии мы изучили процесс настройки Apache Hive на кластере Hadoop и использование его для хранения и анализа астрономических данных. Мы узнали, как установить Hive, создать базу данных и таблицу Hive, загрузить данные в таблицу и выполнить запросы, похожие на SQL, для извлечения ценных инсайтов из данных.

利用 Hive 的强大功能,外星生物学家 Zara 现在可以高效地处理和分析外星研究基地收集的大量天体数据。对这些数据执行复杂查询和聚合的能力将使她能够发现隐藏的模式和关系,有可能带来关于天体起源和演化的突破性发现。

这个实验不仅提供了 Hive 设置和数据分析的实践经验,还突出了 Hadoop 生态系统在处理大规模数据处理任务方面的多功能性和可扩展性。随着我们继续探索宇宙的奥秘,像 Hive 这样的工具将在揭示浩瀚天体数据中隐藏的秘密方面发挥关键作用。