V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
shakeit
V2EX  ›  Docker

[docker]本地配置好了 hosts,也生效了,但是怎么通过 hostname 没办法访问到 namenode/datanode?

  •  
  •   shakeit · 190 天前 · 702 次点击
    这是一个创建于 190 天前的主题,其中的信息可能已经有所发展或是发生改变。

    docker compose 部署了一个单节点的 hadoop 集群,各个节点启动都正常,通过 localhost:9870 也访问得到 web ui,通过客户端上传文件显示也正常,但是要下载该文件就会失败,因为这个地址 datanode 是一个 id ,访问不到导致的。 我在本地 hosts 文件将 hostname 配置了一下,通过 cmd ping 显示已经正常解析成 127.0.0.1 了,但是就是访问不到,查了半天想了半天以我的知识储备这道理是通的啊,但是就是访问不到。实在是菜 以下是配置: docker-compose.yaml

    version: "2"
    services:
       namenode:
          image: apache/hadoop:3
          hostname: namenode
          command: ["hdfs", "namenode"]
          ports:
            - 8020:8020
            - 9870:9870
          env_file:
            - ./config
          environment:
              ENSURE_NAMENODE_DIR: "/opt/hadoop/name"
          networks:
            - hadoop
       datanode:
          image: apache/hadoop:3
          hostname: datanode
          depends_on:
            - namenode
          command: ["hdfs", "datanode"]
          ports:
            - 9864:9864
            - 9865:9865
            - 9866:9866
          env_file:
            - ./config
          networks:
            - hadoop
       resourcemanager:
          image: apache/hadoop:3
          hostname: resourcemanager
          command: ["yarn", "resourcemanager"]
          ports:
             - 8088:8088
             - 19888:19888
             - 19890:19890
          env_file:
            - ./config
          volumes:
            - ./test.sh:/opt/test.sh
          networks:
            - hadoop
       nodemanager:
          image: apache/hadoop:3
          command: ["yarn", "nodemanager"]
          env_file:
            - ./config
          ports:
            - 8040:8040
          networks:
            - hadoop
    
    networks:
      hadoop:
        driver: bridge
    

    hosts

    # Hadoop
    127.0.0.1 namenode
    127.0.0.1 datanode
    

    还有就是配置成我本机 ip 也不行,请帮我解惑,谢谢了

    4 条回复    2024-06-18 13:59:22 +08:00
    tpxcer
        1
    tpxcer  
       190 天前
    你竟然用虚拟机搞。。。斯~~~
    0o0O0o0O0o
        2
    0o0O0o0O0o  
       190 天前
    前段时间遇到类似问题。排查下来返现是我的 sing-tun 配置只 bypass 了默认的 172.17.0.1/16 ,而 docker compose 里 bridge network 会新建一个 interface ,就可能是 172.21.0.1/16 。所以我把从 172.16.0.0/12 都进加进去就正常了
    - https://en.wikipedia.org/wiki/Reserved_IP_addresses#IPv4
    - https://sing-box.sagernet.org/configuration/inbound/tun/#inet4_route_exclude_address

    所以你可以排查看看是不是宿主机上运行了什么特别的东西
    shakeit
        3
    shakeit  
    OP
       190 天前
    @tpxcer :)
    shakeit
        4
    shakeit  
    OP
       190 天前
    @0o0O0o0O0o 是我 v2ray 影响的,谢谢老哥
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6041 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 01:53 · PVG 09:53 · LAX 17:53 · JFK 20:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.