hadoop容器化

下载或构建hadoop docker镜像

下载hadoop docker镜像

$ docker pull krejcmat/hadoop-master:latest
$ docker pull krejcmat/hadoop-slave:latest

构建hadoop docker镜像

$ git clone https://github.com/krejcmat/hadoop-docker.git
$ cd hadoop-docker
$ ./build-image.sh hadoop-dnsmasq
$ docker images

REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
krejcmat/hadoop-slave     latest              81cddf669d42        42 minutes ago      670.9 MB
krejcmat/hadoop-master    latest              ed91c813b86f        42 minutes ago      670.9 MB
krejcmat/hadoop-base      latest              cae006d1c427        50 minutes ago      670.9 MB
krejcmat/hadoop-dnsmasq   latest              89f0052d964c        53 minutes ago      156.9 MB
philcryer/min-wheezy      latest              214c501b67fa        14 months ago       50.74 MB

其中,philcryer/min-wheezy, krejcmat/hadoop-dnsmasq, krejcmat/hadoop-base是临时产生的中间docker镜像,可以删除掉

$ docker rmi c4c4000322cf e148f587cc4f d196b785d987

运行hadoop容器集群

在git项目的目录下

$ ./start-container.sh latest 2

start master container...
start slave1 container...

检查集群成员

$ serf members

master.krejcmat.com  172.17.0.2:7946  alive
slave1.krejcmat.com  172.17.0.3:7946  alive
$ cd ~
$ ./configure-members.sh

Warning: Permanently added 'slave1.krejcmat.com,172.17.0.3' (ECDSA) to the list of known hosts.slaves
..........
$ ./start-hadoop.sh 
 #For stop Hadoop ./stop-hadoop.sh

Starting namenodes on [master.krejcmat.com]
..........
$ jps

342 NameNode
460 DataNode
1156 Jps
615 SecondaryNameNode
769 ResourceManager
862 NodeManager
$ hdfs dfsadmin -report

Name: 172.17.0.2:50010 (master.krejcmat.com)
Hostname: master.krejcmat.com
..........

通过web浏览器访问http://IP:8088 hadoop集群页面

### Hadoop 容器错误码及其解决方案 在处理Hadoop容器相关的错误时,了解常见的错误码以及相应的解决方法对于快速定位并解决问题至关重要。下面列举了一些典型的Hadoop容器错误情况及对应的解决方案。 #### 1. 容器启动失败 (Error Code: CONTAINER_LAUNCH_ERROR) 当遇到`CONTAINER_LAUNCH_ERROR`时,通常意味着YARN尝试启动的应用程序容器未能成功初始化。这可能是由于节点上的磁盘空间不足、权限设置不当或是环境变量配置不正确等原因造成的[^1]。 为了修复这类问题: - 检查日志文件中的具体报错信息。 - 确认各DataNode有足够的可用存储空间。 - 核实用户账户具有执行所需操作的适当权限。 - 查看是否存在冲突性的环境变量定义,并调整它们以适应当前的工作负载需求。 ```bash yarn logs -applicationId <app_id> ``` 此命令可以帮助获取应用程序的日志详情,从而进一步分析启动失败的原因。 #### 2. 资源超限被杀死 (Error Code: KILLED_BY_RESOURCE_MANAGER) 如果应用因为消耗过多内存或其他资源而被ResourceManager强制终止,则会收到此类错误通知。这种情况表明分配给该作业的资源不足以支撑其正常运行,或者存在潜在的编程逻辑缺陷导致不必要的高资源占用。 应对措施包括但不限于: - 减少单个Map/Reduce任务请求的最大内存量。 - 增加集群中总的RAM容量或减少并发任务数来平衡整体负荷。 - 对代码进行优化,比如通过改进算法效率降低对计算资源的需求。 #### 3. NodeManager无法联系到ApplicationMaster (Error Code: NM_CONNECTIVITY_ISSUE_WITH_AM) 这种情况下,NodeManager报告说它失去了与负责协调整个分布式进程的ApplicationMaster之间的通信连接。可能是因为网络波动引起短暂中断或者是AM本身出现了故障。 建议采取如下行动: - 排除任何可能导致网络不稳定的因素,如路由器重启等。 - 使用ping测试验证不同机器间的连通性状况。 - 若怀疑是软件层面的问题,则可以考虑重新部署ApplicationMaster实例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值