Я настроил три контейнера, объединенных в сеть, поскольку хотел бы использовать Hadoop и Hive с PostgreSQL. Вы можете получить доступ к настройке Docker через https://github.com/jcool12/hadoop-docker/tree/main/hivepost, чтобы загрузить файлы folders/ для его запуска. Контейнер Hadoop работает, контейнер PostgreSQL работает, но контейнер Hive при запуске выдает такую ошибку:
Waiting for PostgreSQL to start...
/entrypoint.sh: line 4: pg_isready: command not found
Контейнер PostgreSQL работает и выглядит нормально, но я все еще сталкиваюсь с этой ошибкой:
/entrypoint.sh: line 4: pg_isready: command not found.
Я установил клиент PostgreSQL в /hive/Dockerfile и изменил entrypoint.sh, но ошибка не устранена. Не могли бы вы помочь мне решить эту проблему?





Кажется, ваша существующая установка действительно работает для меня. Но, возможно, вы могли бы рассмотреть возможность переноса проверки готовности в Docker Compose, обновив свой docker-compose.yml следующим образом:
version: '3.8'
services:
postgres:
image: postgres:13
environment:
- POSTGRES_DB=hive
- POSTGRES_USER=hiveuser
- POSTGRES_PASSWORD=hivepassword
healthcheck:
test: ["CMD-SHELL", "pg_isready -d hive -U hiveuser"]
interval: 5s
timeout: 5s
retries: 5
hive:
build: ./hive
depends_on:
postgres:
condition: service_healthy
Для ясности я сохранил только самое важное.
healthcheck в сервис postgres, который использует pg_isready и помечает контейнер как работоспособный только тогда, когда он готов принимать соединения.depends_on для службы hive, чтобы она запускалась только после того, как postgres будет помечено как исправное.Затем вы можете удалить команду pg_isready из файла entrypoint.sh.
Вы можете изучить официальные образы докеров Hive, в них есть способы запустить Hive с Hadoop с Postgres прямо из коробки.
https://hive.apache.org/development/quickstart/ найдите POSTGRES_LOCAL_PATH здесь
Должно быть, у меня возникла проблема с кешированием, хотя я установил сборку докера без кеширования. В любом случае, я очистил все контейнеры, изображения и сборку Docker Desktop, и это устранило эту ошибку, поэтому вы ее не заметили. Несмотря на это, ваша информация была полезна, поэтому спасибо.