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

时间:2018-11-04 10:55:22

标签: docker hadoop hive docker-compose cloudera

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

我有以下配置:

Dockerfile

FROM cloudera/quickstart:latest

Docker Compose文件

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

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

1 个答案:

答案 0 :(得分:1)

我发现的解决方案是将脚本/user/bin/docker-quickstart的内容复制到新的Shell脚本entrypoint.sh中。然后,我直接在entrypoint.sh中添加了Create表和Insert语句。

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

最后,我在docker compose文件而不是quickstart脚本中运行命令entrypoint.sh