У меня есть следующая настройка для локального Hive-сервера с Hadoop:
версия: "3"
Сервисы:
узел имени:
изображение: bde2020/hadoop-namenode:2.0.0-hadoop3.2.1-java8
container_name: имяузел
перезапуск: всегда
порты:
- 9870:9870
- 9000:9000
тома:
- ./hdfs/namenode:/hadoop/dfs/имя
среда:
- CLUSTER_NAME=тест
env_file:
- ./hadoop.env
узел данных:
изображение: bde2020/hadoop-datanode:2.0.0-hadoop3.2.1-java8
имя_контейнера: узел данных
перезапуск: всегда
тома:
- ./hdfs/datanode:/hadoop/dfs/данные
среда:
SERVICE_PRECONDITION: "узел имени: 9870"
env_file:
- ./hadoop.env
улей-сервер:
изображение: bde2020/hive:2.3.2-postgresql-metastore
container_name: сервер-улей
тома:
- ./сотрудник:/сотрудник
env_file:
- ./hadoop-hive.env
среда:
HIVE_CORE_CONF_javax_jdo_option_ConnectionURL: "jdbc:postgresql://hive-metastore/metastore"
SERVICE_PRECONDITION: "hive-metastore:9083"
порты:
- "10000:10000"
улей-метахранилище:
изображение: bde2020/hive:2.3.2-postgresql-metastore
env_file:
- ./hadoop-hive.env
команда: /opt/hive/bin/hive --service хранилище метаданных
среда:
SERVICE_PRECONDITION: "namenode: 9000 namenode: 9870 hive-metastore-postgresql: 5432"
порты:
- "9083:9083"
hive-metastore-postgresql:
изображение: bde2020/hive-metastore-postgresql:2.3.0
престо-координатор:
изображение: шонжу/престодб:0.181
порты:
- "8080:8080"
я начинаю все с docker-compose, и он отлично работает
. я вхожу в улей-сервер
контейнер.
docker exec -it hive-сервер /bin/bash
я бегу улей -f employee_table.sql
для создания схемы в Hive.
Затем я сохраняю небольшой .csv в Hadoop:
hadoop fs -put employee.csv hdfs://namenode:9000/user/hive/warehouse/testdb.db/employee
Это также работает, и после запуска докер-компоновать вниз
Я перезапускаю службы, и все данные, которые я вставлял ранее, исчезают. Я не совсем понимаю это, я даже вижу файлы в следующем подкаталоге:
hdfs\datanode\current\BP-267128047-172.27.0.7-1633966854402\current\finalized\subdir0\subdir0
Что я здесь делаю неправильно? Что-то не так с моими томами? Порты?