栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

使用Mac版Docker搭建Hadoop集群(运行yarn与总结坑点)

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用Mac版Docker搭建Hadoop集群(运行yarn与总结坑点)

上一篇文章介绍了启动HDFS,并且在浏览器访问,接下来启动yarn并尝试提交任务使其执行。在hadoop2节点上启动yarn,因为yarn-site.xml中写的yarn.resourcemanager.hostname属性值是hadoop2。

sbin/start-yarn.sh

然后jps查看hadoop2上的进程:

发现ResourceManager启动成功。然后运行单词统计任务:

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.2.jar wordcount /wcinput /wcoutput

这里的wcoutput同样不能事先存在。因为这里使用的是集群模式,所以输出路径wcoutput前带上/,表示在HDFS的根路径。运行成功后可以在根路径下的output目录中看到结果。相应的文件真实存储路径依然在usr/lib/hadoop/data/dfs/data/current/BP-2060838795-172.17.0.4-1651994494825/current/finalized/subdir0/subdir0:

 

如果执行任务报错:The auxService:mapreduce_shuffle does not exist,应确保yarn-site.xml的如下配置正确:

  
    yarn.nodemanager.aux-services
    mapreduce_shuffle
  

笔者因为services写成了service,找错误原因找了很久。如果还不行,再在yarn-site.xml中加上如下内容:

  
    yarn.nodemanager.aux-services.mapreduce_shuffle.class
    org.apache.hadoop.mapred.ShuffleHandler
  

如果报错:Please check whether your etc/hadoop/mapred-site.xml contains the below configuration,则在mapred-site.xml加上如下内容:


    yarn.app.mapreduce.am.env
HADOOP_MAPRED_HOME=/usr/lib/hadoop


    mapreduce.map.env
HADOOP_MAPRED_HOME=/usr/lib/hadoop


    mapreduce.reduce.env
HADOOP_MAPRED_HOME=/usr/lib/hadoop

其中的HADOOP_MAPRED_HOME就是环境变量$HADOOP_HOME。如果报错:Retrying connect to server xxxx,这是一直连不上某个节点的现象,建议检查各节点的ssh是否开启且能否免密登录。实在不行然后再在yarn-site.xml中添加如下配置:


    yarn.resourcemanager.address
    resourcemanager节点ip或主机名:8032
  
  
    yarn.resourcemanager.scheduler.address
    resourcemanager节点ip或主机名:8030
  
  
    yarn.resourcemanager.resource-tracker.address
    resourcemanager节点ip或主机名:8031
 

如果还报resourcemanager连不上,建议参考以下第二点重启yarn集群。

其它问题,总结如下:

1. 如果浏览器访问不到相应端口,解决方法一是运行容器时没有进行端口映射(Mac主机无法ping同docker容器,这是由Mac版的docker决定的,因此一定运行容器时要加上端口映射),二是相应的xml配置文件中的主机名换成实际的容器ip地址

2. 如果发现namenode少了一个或者nodemanager等节点有问题,需要重启集群,需要注意删掉各节点hadoop安装路径下的data和logs目录(顺便把有关错误日志也可一起删除),保险起见在/tmp下的文件也一并删掉,防止一些进程杀不死。清理干净后,执行hdfs namenode -format格式化namenode,然后依次启动hdfs和yarn。

3. 如果想重启单个节点,可以使用如下命令:

hdfs --daemon start/stop namenode/datanode/secondarynamenode
yarn --daemon start/stop resourcemanager/nodemanager

4. 前台浏览器无法删除文件/创建目录,报权限不足,可在core-site.xml添加如下配置:

 
    hadoop.http.staticuser.user
    root
 

上述配置表示浏览器登录的用户为root。

5. 上述集群搭建方案使用了docker容器,不存在网上说了很多的防火墙的问题。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/868251.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号