首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker & Hive - Windows上的端口50070端口权限被拒绝

Docker & Hive - Windows上的端口50070端口权限被拒绝
EN

Stack Overflow用户
提问于 2021-10-08 12:42:30
回答 1查看 103关注 0票数 0

我想设置一个本地配置单元服务器,并找到以下存储库:

https://github.com/big-data-europe/docker-hive

这是我使用的yaml文件。

代码语言:javascript
复制
version: "3"

services:
  namenode:
    image: bde2020/hadoop-namenode:2.0.0-hadoop2.7.4-java8
    volumes:
      - namenode:/hadoop/dfs/name
    environment:
      - CLUSTER_NAME=test
    env_file:
      - ./hadoop-hive.env
    ports:
      - "50070:50070"
  datanode:
    image: bde2020/hadoop-datanode:2.0.0-hadoop2.7.4-java8
    volumes:
      - datanode:/hadoop/dfs/data
    env_file:
      - ./hadoop-hive.env
    environment:
      SERVICE_PRECONDITION: "namenode:50070"
    ports:
      - "50075:50075"
  hive-server:
    image: bde2020/hive:2.3.2-postgresql-metastore
    env_file:
      - ./hadoop-hive.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:
      - ./hadoop-hive.env
    command: /opt/hive/bin/hive --service metastore
    environment:
      SERVICE_PRECONDITION: "namenode:50070 datanode:50075 hive-metastore-postgresql:5432"
    ports:
      - "9083:9083"
  hive-metastore-postgresql:
    image: bde2020/hive-metastore-postgresql:2.3.0
  presto-coordinator:
    image: shawnzhu/prestodb:0.181
    ports:
      - "8080:8080"

volumes:
  namenode:
  datanode:

错误:

代码语言:javascript
复制
Error starting userland proxy: Bind for 0.0.0.0:50075: unexpected error Permission denied

>50000的端口在windows上被阻止,我在公司的pc上没有管理员权限,所以我尝试像这样映射端口:

代码语言:javascript
复制
ports:
  - "40070:50070"

environment:
  SERVICE_PRECONDITION: "namenode:40070 datanode:40075 hive-metastore-postgresql:5432"

这将让我启动Container,但容器似乎无法通信。

代码语言:javascript
复制
hive-metastore_1             | [1/100] check for namenode:40070...
hive-metastore_1             | [1/100] namenode:40070 is not available yet
hive-metastore_1             | [1/100] try in 5s once again ...
956a5237dbe2_docker-hive_datanode_1 | [4/100] check for namenode:40070...
956a5237dbe2_docker-hive_datanode_1 | [4/100] namenode:40070 is not available yet

我尝试更改两个端口:

代码语言:javascript
复制
ports:
  - "40070:40070"

这是行不通的,因为有些IP似乎是硬编码的:

代码语言:javascript
复制
ded7410db1b9_docker-hive_namenode_1 | 21/10/08 12:39:05 INFO hdfs.DFSUtil: Starting Web-server for hdfs at: http://0.0.0.0:50070
ded7410db1b9_docker-hive_namenode_1 | 21/10/08 12:39:05 INFO http.HttpServer2: Jetty bound to port 50070

有谁知道怎么让它运行起来吗?

EN

回答 1

Stack Overflow用户

发布于 2021-10-08 13:47:53

具有以下功能:

代码语言:javascript
复制
    ports:
      - "40070:50070"

您所要做的就是将流量从主机端口40070定向到容器端口50070。

因此,要从主机访问"namenode“,例如:

localhost:40070

并访问compose网络中的"namenode“:

namenode:50070

使用BDE的服务前提反复检查容器和端口,以查看服务是否正在运行,然后再设置自己的服务,以确保一切都已准备就绪。您没有更改容器上运行的端口,因此您的容器仍然应该通过端口50070进行通信。

您错误地将前提条件更改为扫描您的主机端口40070,而它应该查找内部网络容器端口50070,而不考虑主机端口。

将其更改为以下内容:

代码语言:javascript
复制
    ports:
      - "40070:50070"
    
    environment:
      SERVICE_PRECONDITION: "namenode:50070 datanode:50075 hive-metastore-postgresql:5432"

您可以使用提供的环境变量文件更改Hive等设备上的操作端口,但您不需要这样做。将主机端口40070暴露给容器端口50070不会影响对接服务的操作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69496030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档