基于docker-compose的hive搭建

docker-compose.yml

这个文件是参考big-data-europe配置之前博客中hadoop配置文件的基础上增加几个服务,另外把配置文件名字都改成env.env
注意新的hadoop版本中端口和之前的不一样:

Namenode ports: 50470 --> 9871, 50070 --> 9870, 8020 --> 9820
Secondary NN ports: 50091 --> 9869, 50090 --> 9868
Datanode ports: 50020 --> 9867, 50010 --> 9866, 50475 --> 9865, 50075 --> 9864
  hive-server:
    image: bde2020/hive:2.3.2-postgresql-metastore
    env_file:
      - ./env.env
    environment:
      HIVE_CORE_CONF_javax_jdo_option_ConnectionURL: "jdbc:postgresql://hive-metastore/metastore"
      SERVICE_PRECONDITION: "hive-metastore:9083"
    ports:
      - "10000:10000"

  hive-metastore:
    image: bde2020/hive:2.3.2-postgresql-metastore
    env_file:
      - ./env.env
    command: /opt/hive/bin/hive --service metastore
    environment:
      SERVICE_PRECONDITION: "namenode:9870 datanode:9864 hive-metastore-postgresql:5432"
    ports:
      - "9083:9083"

  hive-metastore-postgresql:
    image: bde2020/hive-metastore-postgresql:2.3.0
    ports:
      - "5432:5432"

  presto-coordinator:
    image: shawnzhu/prestodb:0.181
    ports:
      - "8080:8080"

整合后的docker-compose.yml如下

version: "3"

networks:
  default:
    driver: bridge
    
services:
  namenode:
    image: bde2020/hadoop-namenode
    container_name: namenode
    ports:
      - 9870:9870
      - 9000:9000
    environment:
      - CLUSTER_NAME=Qbit
    env_file:
      - ./env.env

  datanode:
    image: bde2020/hadoop-datanode
    container_name: datanode
    depends_on:
      - namenode
    ports:
      - 9864:9864
    environment:
      SERVICE_PRECONDITION: "namenode:9870"
    links:
      - "namenode:namenode"
    env_file:
      - ./env.env
  
  resourcemanager:
    image: bde2020/hadoop-resourcemanager
    container_name: resourcemanager
    ports:
      - 8088:8088
    links:
      - "namenode:namenode"
      - "datanode:datanode"
    depends_on:
      - namenode
      - datanode
    environment:
      SERVICE_PRECONDITION: "namenode:9000 namenode:9870 datanode:9864"
    env_file:
      - ./env.env

  nodemanager:
    image: bde2020/hadoop-nodemanager
    container_name: nodemanager
    links:
      - "namenode:namenode"
      - "datanode:datanode"
      - "resourcemanager:resourcemanager"
    depends_on:
      - namenode
      - datanode
      - resourcemanager
    environment:
      SERVICE_PRECONDITION: "namenode:9000 namenode:9870 datanode:9864 resourcemanager:8088"
    env_file:
      - ./env.env
  
  historyserver:
    image: bde2020/hadoop-historyserver
    container_name: historyserver
    links:
      - "namenode:namenode"
      - "datanode:datanode"
      - "resourcemanager:resourcemanager"
    depends_on:
      - namenode
      - datanode
      - resourcemanager
    environment:
      SERVICE_PRECONDITION: "namenode:9000 namenode:9870 datanode:9864 resourcemanager:8088"
    env_file:
      - ./env.env
      
  hive-metastore-postgresql:
    image: bde2020/hive-metastore-postgresql:2.3.0
    container_name: hive-metastore-postgresql
    ports:
      - "5432:5432"
      
  hive-metastore:
    image: bde2020/hive:2.3.2-postgresql-metastore
    container_name: hive-metastore
    env_file:
      - ./env.env
    command: /opt/hive/bin/hive --service metastore
    links:
      - "namenode:namenode"
      - "datanode:datanode"
      - "hive-metastore-postgresql:hive-metastore-postgresql"
    depends_on:
      - namenode
      - datanode
      - hive-metastore-postgresql
    environment:
      SERVICE_PRECONDITION: "namenode:9870 datanode:9864 hive-metastore-postgresql:5432"
    ports:
      - "9083:9083"
  
  hive-server:
    image: bde2020/hive:2.3.2-postgresql-metastore
    container_name: hive-server
    env_file:
      - ./env.env
    links:
      - "hive-metastore:hive-metastore"
      - "hive-metastore-postgresql:hive-metastore-postgresql"
    depends_on:
      - hive-metastore
      - hive-metastore-postgresql
    environment:
      SERVICE_PRECONDITION: "hive-metastore:9083 hive-metastore-postgresql:5432"
    ports:
      - "10000:10000"
      
  presto:
    image: shawnzhu/prestodb:0.181
    container_name: presto
    ports:
      - "8080:8080"

env.env

这个文件是参考了big-data-europe配置之前博客的handoop.env这个配置文件的基础上增加了HIVE_SITE_CONF开头的几项,另外把这个配置文件的名字改成了env.env

HIVE_SITE_CONF_javax_jdo_option_ConnectionURL=jdbc:postgresql://hive-metastore-postgresql:5432/metastore
HIVE_SITE_CONF_javax_jdo_option_ConnectionDriverName=org.postgresql.Driver
HIVE_SITE_CONF_javax_jdo_option_ConnectionUserName=hive
HIVE_SITE_CONF_javax_jdo_option_ConnectionPassword=hive
HIVE_SITE_CONF_datanucleus_autoCreateSchema=false
HIVE_SITE_CONF_hive_metastore_uris=thrift://hive-metastore:9083
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值