hadoop 配置机架感知
假如设备链接层次分3层,第一层交换机d1下面连多个交换机rk1,rk2,rk3,rk4,…. 每个交换机对应一个机架。
d1(rk1(hs11,hs12,…),rk2(hs21,hs22,…), rk3(hs31,hs32,…),rk4(hs41,hs42,…),…)
可以用程序或脚本完成由host到设备的映射。比如,用python,生成一个topology.py:
然后在core-site.xml中配置
<property>
<name>topology.script.file.name</name>
<value>/home/hadoop/hadoop-1.1.2/conf/topology.py</value>
<description> The script name that should be invoked to resolve DNS names to
NetworkTopology names. Example: the script would take host.foo.bar as an
argument, and return /rack1 as the output.
</description>
</property>
python机架脚本:
[hadoop@hs11 conf]$ cat topology.py
#!/usr/bin/env python
”’
This script used by hadoop to determine network/rack topology. It
should be specified in hadoop-site.xml via topology.script.file.name
Property.
topology.script.file.name
/home/hadoop/hadoop-1.1.2/conf/topology.py
To generate dict:
for i in range(xx):
#print “\”hs%d\”:\”/rk%d/hs%d\”,”%(i,(i-1)/10,i)
print “\”hs%d\”:\”/rk%d\”,”%(i,(i-1)/10)
Andy 2013.7.23
”’
import sys
from string import join
DEFAULT_RACK = ‘/rk0′;
RACK_MAP = {
“hs11″:”/rk1″,
“hs12″:”/rk1″,
“hs13″:”/rk1″,
“hs14″:”/rk1″,
“hs15″:”/rk1″,
“hs16″:”/rk1″,
“hs17″:”/rk1″,
“hs18″:”/rk1″,
“hs19″:”/rk1″,
“hs20″:”/rk1″,
“hs21″:”/rk2″,
“hs22″:”/rk2″,
“hs23″:”/rk2″,
“hs24″:”/rk2″,
“hs25″:”/rk2″,
“hs26″:”/rk2″,
“hs27″:”/rk2″,
“hs28″:”/rk2″,
“hs29″:”/rk2″,
“hs30″:”/rk2″,
“hs31″:”/rk3″,
“hs32″:”/rk3″,
“hs33″:”/rk3″,
“hs34″:”/rk3″,
“hs35″:”/rk3″,
“hs36″:”/rk3″,
“hs37″:”/rk3″,
“hs38″:”/rk3″,
“hs39″:”/rk3″,
“hs40″:”/rk3″,
“hs41″:”/rk4″,
“hs42″:”/rk4″,
“hs43″:”/rk4″,
“hs44″:”/rk4″,
“hs45″:”/rk4″,
“hs46″:”/rk4″,
…
“10.10.20.11″:”/rk1″,
“10.10.20.12″:”/rk1″,
“10.10.20.13″:”/rk1″,
“10.10.20.14″:”/rk1″,
“10.10.20.15″:”/rk1″,
“10.10.20.16″:”/rk1″,
“10.10.20.17″:”/rk1″,
“10.10.20.18″:”/rk1″,
“10.10.20.19″:”/rk1″,
“10.10.20.20″:”/rk1″,
“10.10.20.21″:”/rk2″,
“10.10.20.22″:”/rk2″,
“10.10.20.23″:”/rk2″,
“10.10.20.24″:”/rk2″,
“10.10.20.25″:”/rk2″,
“10.10.20.26″:”/rk2″,
“10.10.20.27″:”/rk2″,
“10.10.20.28″:”/rk2″,
“10.10.20.29″:”/rk2″,
“10.10.20.30″:”/rk2″,
“10.10.20.31″:”/rk3″,
“10.10.20.32″:”/rk3″,
“10.10.20.33″:”/rk3″,
“10.10.20.34″:”/rk3″,
“10.10.20.35″:”/rk3″,
“10.10.20.36″:”/rk3″,
“10.10.20.37″:”/rk3″,
“10.10.20.38″:”/rk3″,
“10.10.20.39″:”/rk3″,
“10.10.20.40″:”/rk3″,
“10.10.20.41″:”/rk4″,
“10.10.20.42″:”/rk4″,
“10.10.20.43″:”/rk4″,
“10.10.20.44″:”/rk4″,
“10.10.20.45″:”/rk4″,
“10.10.20.46″:”/rk4″,
…
}
if len(sys.argv)==1:
print DEFAULT_RACK
else:
print join([RACK_MAP.get(i, DEFAULT_RACK) for i in sys.argv[1:]],” “)
原来这个程序我返回的是
“hs11″:”/rk1/hs11″,
结果执行mapreduce程序时报如下错误:
Launching Job 1 out of 1
Number of reduce tasks is set to 0 since there’s no reduce operator
Starting Job = job_201307241502_0003, Tracking URL = http://hs11:50030/jobdetails.jsp?jobid=job_201307241502_0003
Kill Command = /home/hadoop/hadoop-1.1.2/libexec/../bin/hadoop job -kill job_201307241502_0003
Hadoop job information for Stage-1: number of mappers: 0; number of reducers: 0
2013-07-24 18:38:11,854 Stage-1 map = 100%, reduce = 100%
Ended Job = job_201307241502_0003 with errors
Error during job, obtaining debugging information…
Job Tracking URL: http://hs11:50030/jobdetails.jsp?jobid=job_201307241502_0003
FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.MapRedTask
MapReduce Jobs Launched:
Job 0: HDFS Read: 0 HDFS Write: 0 FAIL
Total MapReduce CPU Time Spent: 0 msec
java.lang.NullPointerException
at org.apache.hadoop.mapred.JobTracker.resolveAndAddToTopology(JobTracker.java:2751)
at org.apache.hadoop.mapred.JobInProgress.createCache(JobInProgress.java:578)
at org.apache.hadoop.mapred.JobInProgress.initTasks(JobInProgress.java:750)
at org.apache.hadoop.mapred.JobTracker.initJob(JobTracker.java:3775)
at org.apache.hadoop.mapred.EagerTaskInitializationListener$InitJob.run(EagerTaskInitializationListener.java:90)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
hadoop 配置机架感知相关推荐
- Hadoop配置机架感知
配置机架感知 core-site.xml cat $HADOOP_HOME/etc/hadoop/core-site.xml <property> <name>net.topo ...
- Hadoop配置机架感知(python脚本)
昨天QQ群里提了一个hadoop运行效率分配的问题,总结一下,写个文章.集群使用hadoop-1.0.3 有些hadoop集群在运行的时候,不完全是绝对平均的分配,不过需要尽可能平均的分配任务,避免某 ...
- Hadoop之——机架感知配置
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/51935169 1.背景 Hadoop在设计时考虑到数据的安全与高效,数据文件默认在 ...
- Hadoop之机架感知
在分布式集群下,由于机架的的槽位和交换机网口数量的限制,使得集群上的机器不得不跨越机架,通常一个大型的集群会跨越很多机架.一般情况机架内机器的通讯会快于跨机架机器之间的通讯,并且机架之间机器的网络通信 ...
- Hadoop机架感知配置及配置问题解决
Hadoop在搭建集群的时候,集群的网络拓扑都是默认在同一个机架下的.以/default-rack为一个机架,如下格式. Rack: /default-rack 192.168.71.100:5001 ...
- Hadoop机架感知与balancer
版本:Apache Hadoop 1.0.3 Hadoop集群节点通常会跨很多个机架,增加节点的情况时有发生,而且很多时候节点的磁盘容量还不统一,有大有小,所以集群节点非常容易出现磁盘利用不平衡的情况 ...
- Hadoop机架感知
背景 分布式的集群通常包含非常多的机器,由于受到机架槽位和交换机网口的限制,通常大型的分布式集群都会跨好几个机架,由多个机架上的机器共同组成一个分布式集群.机架内的机器之间的网络速度通常都会高于跨机架 ...
- HDFS机架感知概念及配置实现
一.机架感知是什么? 告诉 Hadoop 集群中哪台机器属于哪个机架 二.那么怎么告诉呢? Hadoop 对机架的感知并非是自适应的,亦即,hadoop 集群分辨 某台 slave 机器是属于哪个 r ...
- hadoop之 hadoop 机架感知
1.背景 Hadoop在设计时考虑到数据的安全与高效,数据文件默认在HDFS上存放三份,存储策略为本地一份,同机架内其它某一节点上一份,不同机架的某一节点上一份.这样如果本地数据损坏,节点可以从同一机 ...
最新文章
- 【小白学PyTorch】10.pytorch常见运算详解
- Linux下l2tp客户端xl2tpd的安装配置
- 互联网1分钟 | 0920
- IDEA第一个mybatis程序 mybatis增删查改操作 mybatis的map模糊查询
- 手绘风格的数据可视化 (萌萌风)Sketchify,及其他可视化工具(商业风)
- [respberry pi3][suse] 配置docker
- 【再探backbone 02】集合-Collection
- 刷新tabpanel中的子项目内容
- Bailian4145 放弃考试 POJ2976 ZOJ3068 Dropping tests【二分法+01分数规划】
- oracle的约束什么作用,Oracle数据库知识之约束
- 大过年的,程序员在家改bug…
- 视频教程-OCJP认证考试复习课-其他
- 两年开发工作总结及未来展望
- SQL 存储过程使用
- requests 已过时,初探协程与异步 http 框架 httpx
- 眼球追踪技术在用户体验中的应用
- java.lang.NoSuchMethodError:javax.persistence.PersistenceContext.synchronization()Ljavax/persistence
- c primer plus 第五章编程练习
- ARM的强硬未能吓住高通,高通和中国芯片的远离导致ARM前景黯淡
- Pytorch(pip安装示例)
热门文章
- Several ports (8005, 8080, 8009) required by MyEclipse Tomcat v7.0 are already in use.
- 最易懂Spring循环依赖
- 电磁兼容整改100个小技巧
- 行泊一体与智能泊车两大产品重磅升级,纵目科技智驾战略全线推进
- 松下6轴程序模板 1:plc采用FP-XHC60T ,标准可带6轴程序
- NFT Insider #41:The Sandbox 与舒淇等多个香港合作伙伴达成合作,YGG筹资帮助菲律宾台风灾民
- 立哥版-无线电通讯简史
- 巨杉数据库首批入选广州数字金融协会,引领大湾区数字金融创新
- 替换 google cdn 提高网页加载速度
- table表格的删除、新增、修改