docker上的hadoop无法访问站点

3hvapo4f  于 2021-06-01  发布在  Hadoop
关注(0)|答案(1)|浏览(685)

我试着在windows10系列上使用hadoop和docker工具箱。所以我遵循了这个设置:https://linoxide.com/cluster/setup-single-node-hadoop-cluster-docker/
下载图像-->确定。
运行容器-->确定。

$ docker run -it sequenceiq/hadoop-docker:2.7.1 /etc/bootstrap.sh -bash/
Starting sshd:                                             [  OK  ]
18/11/16 10:38:22 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Starting namenodes on [c13feb9767ac]
c13feb9767ac: starting namenode, logging to /usr/local/hadoop/logs/hadoop-root-namenode-c13feb9767ac.out
localhost: starting datanode, logging to /usr/local/hadoop/logs/hadoop-root- datanode-c13feb9767ac.out
Starting secondary namenodes [0.0.0.0]
0.0.0.0: starting secondarynamenode, logging to /usr/local/hadoop/logs/hadoop-root-secondarynamenode-c13feb9767ac.out
18/11/16 10:40:34 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
starting yarn daemons
starting resourcemanager, logging to /usr/local/hadoop/logs/yarn--resourcemanager-c13feb9767ac.out
localhost: starting nodemanager, logging to /usr/local/hadoop/logs/yarn-root-nodemanager-c13feb9767ac.out

jps 命令-->正常。

bash-4.1# jps
119 NameNode
535 ResourceManager
200 DataNode
656 Jps
319 SecondaryNameNode
620 NodeManager

获取ip地址-->确定。

bash-4.1# ifconfig
...
inet addr:172.17.0.2
...

进入浏览器(谷歌ChromeV70)-->ko。
使用地址: 172.17.0.2:50070 错误:
无法访问此网站172.17.0.2回答时间太长。
你能帮我修一下吗?如果你需要更多的信息问我。
谢谢。
更新1: docker ps 结果:

c13feb9767ac      sequenceiq/hadoop-docker:2.7.1   "/etc/bootstrap.sh -…"   20 minutes ago      Up 20 minutes       2122/tcp, 8030-8033/tcp, 8040/tcp, 8042/tcp, 8088/tcp, 19888/tcp, 49707/tcp, 50010/tcp, 50020/tcp, 50070/tcp, 50075/tcp, 50090/tcp   xenodochial_euclid

更新2:
我打开了防火墙上的端口50070,但问题仍然存在。

piah890a

piah890a1#

至少,你需要暴露端口。 docker run -it -p 50070:50070 sequenceiq/hadoop-docker:2.7.1 然后,如果你想继续使用旧的docker工具箱(链接文章创建于2016年,在docker for windows存在之前),你不需要使用 ifconfig ,但是 docker-machine ip 从窗口,而不是容器
就我个人而言,我使用docker compose

version: "2"

services:
  namenode:
    image: bde2020/hadoop-namenode:1.1.0-hadoop2.7.1-java8
    container_name: namenode
    ports:
      - 8020:8020
      - 50070:50070
      # - 59050:59050
    volumes:
      - hadoop_namenode:/hadoop/dfs/name
    environment:
      - CLUSTER_NAME=test
    env_file:
      - ./hadoop.env
    networks:
      - hadoop

  datanode1:
    image: bde2020/hadoop-datanode:1.1.0-hadoop2.7.1-java8
    container_name: datanode1
    ports:
      - 50075:50075
    depends_on:
      - namenode
    volumes:
      - hadoop_datanode1:/hadoop/dfs/data
    env_file:
      - ./hadoop.env
    networks:
      - hadoop

volumes:
  hadoop_namenode:
  hadoop_datanode1:

networks:
  hadoop:

hadoop.env文件

CORE_CONF_fs_defaultFS=hdfs://namenode:8020
CORE_CONF_hadoop_http_staticuser_user=root

HDFS_CONF_dfs_replication=1
HDFS_CONF_dfs_webhdfs_enabled=true
HDFS_CONF_dfs_permissions_enabled=false

相关问题