hadoop搭建以及问题

这周主要是搭建了hadoop的学习环境

  1. mac本地docker + hadoop 1 master 2slave 伪分布式集群

  2. mac本地docker hadoop 单机

  3. virtualbox centos7.2 搭建的hadoop单机

在搭建过程中遇到了很多问题所幸网上答案很多在这里先总结一下

问题

1. 无法上传

在搭建mac docker hadoop单机的时候暴露了容器的50010,50070,9000,8088,22端口,我用java去调用hdfs API的时候,如果是对文件夹的操作,没有问题。但是如果是上传下载文件,那么会出现访问不到的问题,经过分析,发现是namenode将本地的ip地址加50010端口返回给了我,所以我的请求地址是:

172.21.1.5:50010

这样会出问题,因为mac中不能去直接访问docker容器的IP, 你可以尝试 ping一下,是ping不通的。
查看了一下容器中的 hosts文件,发现我的主机名对应的ip地址为docker给容器分配的地址。 如果你在容器中暴露了50010端口,那么访问127.0.0.1:50010是可以访问的,这个时候可以通过修改容器中的
hostname : ip 来进行解决这个问题。 需要注意的是,如果是多结点的情况,该方案行不通。

解决方案: 修改容器中的 hosts 配置。
2 .虚拟机中端口暴露问题

部署在虚拟中的hadoop出现了9000端口无法访问的情况。

    netstat -ntl 查看端口开启

发现9000 8080端口都是开启的,但是监听地址是本地

    127.0.0.1 9000
    127.0.0.1 8088

解决方法就是 将hosts中对应的主机名的地址改为 0.0.0.0
或者将主机名地址改为 本机所在ip地址。
推荐改为ip地址,因为虚拟机中 单机hadoop 用了 0.0.0.0那么java调用api 也会默认去127.0.0.1:50010去操作datanode,这个时候会找不到datanode的。

ps 具体的Dockerfile 搭建过程,其实网上很多。
问题也都是差不多
总结一下我遇到的问题

  1. ssh无法访问,查看一下宿主机有没有ssh,查看远程机器有没有sshd服务,查看防火墙是否关闭。
  2. datanode开启不了,查看namenode 和datanode的集群id是否一样。
  3. start-all.sh启动不了,查看dfs文件夹,tmp文件夹的权限是否是root,可以曾经用root用户跑过hadoop,但是现在不是root用户
  4. 无法上传文件, 查看调用的ip是否能ping通。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值