使用数据初始化 Cloudera Hive Docker 容器

Initialize Cloudera Hive Docker Container With Data

我 运行 Docker 容器中的 Cloudera 套件使用此处描述的图像:https://hub.docker.com/r/cloudera/quickstart/

我有以下配置:

Docker文件

FROM cloudera/quickstart:latest

Docker 撰写文件

version: '3.1'
services:

  db-hive:
    container_name: mobydq-test-db-hive
    image: mobydq-test-db-hive
    restart: always
    build:
      context: .
      dockerfile: ./db-hive/Dockerfile
    expose:
      - 10000
    networks:
      - default
    hostname: quickstart.cloudera
    privileged: true
    tty: true
    command: ["/usr/bin/docker-quickstart"]

networks:
  default:
    external:
      name: mobydq-network

当容器启动时,我希望它自动创建一个新数据库 table 并用数据填充它。最好的方法是什么?

我找到的解决方案是将脚本 /user/bin/docker-quickstart 的内容复制到新的 shell 脚本 entrypoint.sh 中。然后我直接在 entrypoint.sh.

中添加了 Create table 和 Insert 语句

此处示例:https://github.com/ubisoft/mobydq/blob/master/test/db-cloudera/init/entrypoint.sh

最后,我 运行 docker 撰写文件中的命令 entrypoint.sh 而不是快速启动脚本。