昨天QQ群里提了一个hadoop运行效率分配的问题,总结一下,写个文章。集群使用hadoop-1.0.3

有些hadoop集群在运行的时候,不完全是绝对平均的分配,不过需要尽可能平均的分配任务,避免某一台或者某几台服务器任务过重,其他服务器无事可做。这个,一方面是需要用到balancer,一个就是机架感知了。
通常,balancer是自动启动的。而机架感知则需要单独配置和编写脚本。不过,机架感知,不是说是感知哪个服务器坏了,是根据机架位置的拓扑结构来选取服务器进行任务的权重分配。
机架感知需要自己写一个脚本,然后放到hadoop的core-site.xml配置文件中,用namenode和jobtracker进行调用。
python代码摘自竹叶青的博客
#!/usr/bin/python
#-*-coding:UTF-8 -*-
import sys

rack = {"hadoop-node-31":"rack1",
                                "hadoop-node-32":"rack1",
                                "hadoop-node-33":"rack1",
                                "hadoop-node-34":"rack1",
                                "hadoop-node-49":"rack2",
                                "hadoop-node-50":"rack2",
                                "hadoop-node-51":"rack2",
                                "hadoop-node-52":"rack2",
                                "hadoop-node-53":"rack2",
                                "hadoop-node-54":"rack2",
                                "192.168.1.31":"rack1",
                                "192.168.1.32":"rack1",
                                "192.168.1.33":"rack1",
                                "192.168.1.34":"rack1",
                                "192.168.1.49":"rack2",
                                "192.168.1.50":"rack2",
                                "192.168.1.51":"rack2",
                                "192.168.1.52":"rack2",
                                "192.168.1.53":"rack2",
                                "192.168.1.54":"rack2",
                                }

if __name__=="__main__":
        print "/" + rack.get(sys.argv[1],"rack0")

按照老赵的博客,由于hadoop没有明确的说明机架感知是感知IP还是感知主机名,所以就都写上了。然后将脚本赋予可执行权限chmod +x RackAware.py,并放到bin/目录下。
然后打开conf/core-site.html
放入一下代码
<property>
        <name>topology.script.file.name</name>
        <value>/opt/modules/hadoop/hadoop-1.0.3/bin/RackAware.py</value>
<!--机架感知脚本路径-->
    </property>
    <property>
        <name>topology.script.number.args</name>
        <value>20</value>
<!--机架服务器数量,由于我写了20个,所以这里写20-->
    </property>
然后重启hadoop的namenode和jobtracker,可以在logs里看下namenode和jobtracker的日志,看到机架感知功能已经启用了。
namenode日志
2012-06-08 14:42:19,174 INFO org.apache.hadoop.hdfs.StateChange: BLOCK* NameSystem.registerDatanode: node registration from 192.168.1.49:50010 storage DS-1155827498-192.168.1.49-50010-1338289368956
2012-06-08 14:42:19,204 INFO org.apache.hadoop.net.NetworkTopology: Adding a new node: /rack2/192.168.1.49:50010
2012-06-08 14:42:19,205 INFO org.apache.hadoop.hdfs.StateChange: BLOCK* NameSystem.registerDatanode: node registration from 192.168.1.53:50010 storage DS-1773813988-192.168.1.53-50010-1338289405131
2012-06-08 14:42:19,226 INFO org.apache.hadoop.net.NetworkTopology: Adding a new node: /rack2/192.168.1.53:50010
2012-06-08 14:42:19,226 INFO org.apache.hadoop.hdfs.StateChange: BLOCK* NameSystem.registerDatanode: node registration from 192.168.1.34:50010 storage DS-2024494948-127.0.0.1-50010-1338289438983
2012-06-08 14:42:19,242 INFO org.apache.hadoop.net.NetworkTopology: Adding a new node: /rack1/192.168.1.34:50010
2012-06-08 14:42:19,242 INFO org.apache.hadoop.hdfs.StateChange: BLOCK* NameSystem.registerDatanode: node registration from 192.168.1.54:50010 storage DS-767528606-192.168.1.54-50010-1338289412267

......

2012-06-08 14:42:49,492 INFO org.apache.hadoop.hdfs.StateChange: STATE* Network topology has 2 racks and 10 datanodes
2012-06-08 14:42:49,492 INFO org.apache.hadoop.hdfs.StateChange: STATE* UnderReplicatedBlocks has 0 blocks
2012-06-08 14:42:49,642 INFO org.apache.hadoop.hdfs.server.namenode.FSNamesystem: ReplicateQueue QueueProcessingStatistics: First cycle completed 0 blocks in 0 msec
2012-06-08 14:42:49,642 INFO org.apache.hadoop.hdfs.server.namenode.FSNamesystem: ReplicateQueue QueueProcessingStatistics: Queue flush completed 0 blocks in 0 msec processing time, 0 msec clock time, 1 cycles

jobtracker 日志
2012-06-08 14:50:42,728 INFO org.apache.hadoop.net.NetworkTopology: Adding a new node: /rack2/hadoop-node-52
2012-06-08 14:50:42,731 INFO org.apache.hadoop.mapred.JobTracker: Adding tracker tracker_hadoop-node-52:localhost.localdomain/127.0.0.1:33999 to host hadoop-node-52
2012-06-08 14:50:42,753 INFO org.apache.hadoop.net.NetworkTopology: Adding a new node: /rack1/hadoop-node-34
2012-06-08 14:50:42,754 INFO org.apache.hadoop.mapred.JobTracker: Adding tracker tracker_hadoop-node-34:localhost.localdomain/127.0.0.1:37025 to host hadoop-node-34
2012-06-08 14:50:42,773 INFO org.apache.hadoop.net.NetworkTopology: Adding a new node: /rack2/hadoop-node-51

Hadoop配置机架感知(python脚本)相关推荐

  1. Hadoop配置机架感知

    配置机架感知 core-site.xml cat $HADOOP_HOME/etc/hadoop/core-site.xml <property> <name>net.topo ...

  2. hadoop 配置机架感知

    假如设备链接层次分3层,第一层交换机d1下面连多个交换机rk1,rk2,rk3,rk4,-. 每个交换机对应一个机架. d1(rk1(hs11,hs12,-),rk2(hs21,hs22,-), rk ...

  3. Hadoop之——机架感知配置

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/51935169 1.背景 Hadoop在设计时考虑到数据的安全与高效,数据文件默认在 ...

  4. Hadoop之机架感知

    在分布式集群下,由于机架的的槽位和交换机网口数量的限制,使得集群上的机器不得不跨越机架,通常一个大型的集群会跨越很多机架.一般情况机架内机器的通讯会快于跨机架机器之间的通讯,并且机架之间机器的网络通信 ...

  5. pycharm python 模板配置_pycharm设置python脚本模板

    PyCharm PyCharm是一个有名的Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试.语法高亮.Project管理.代码跳转.智能提示.自动完成 ...

  6. Hadoop机架感知配置及配置问题解决

    Hadoop在搭建集群的时候,集群的网络拓扑都是默认在同一个机架下的.以/default-rack为一个机架,如下格式. Rack: /default-rack 192.168.71.100:5001 ...

  7. Hadoop机架感知

    背景 分布式的集群通常包含非常多的机器,由于受到机架槽位和交换机网口的限制,通常大型的分布式集群都会跨好几个机架,由多个机架上的机器共同组成一个分布式集群.机架内的机器之间的网络速度通常都会高于跨机架 ...

  8. HDFS机架感知概念及配置实现

    一.机架感知是什么? 告诉 Hadoop 集群中哪台机器属于哪个机架 二.那么怎么告诉呢? Hadoop 对机架的感知并非是自适应的,亦即,hadoop 集群分辨 某台 slave 机器是属于哪个 r ...

  9. 【转】hadoop机架感知

    原文链接 http://www.cnblogs.com/ggjucheng/archive/2013/01/03/2843015.html 背景 分布式的集群通常包含非常多的机器,由于受到机架槽位和交 ...

最新文章

  1. 网站优化如何摆脱竞争对手,将排名做到首页?
  2. mysql移植海思_海思Hi3518EV200(5)图像sensor驱动开发
  3. php静态分析工具window,window_SpeedPHP框架核心调试工具,在日常的编程开发当中,开发 - phpStudy...
  4. 【HDU - 6016】Count the Sheep (思维,类似二分图)
  5. xhprof windows下安装和使用(转载)
  6. 简述arm linux内核启动流程,Linux内核启动过程和Bootloader(总述)
  7. log4j 禁止类输出日志_springboot日志详解
  8. WebView的使用之Android与JS通过WebView互调方法
  9. ktv收银管理系统服务器,KTV收银管理软件
  10. 2019计算机四级网络工程师大纲,计算机四级《网络工程师》考试大纲
  11. java netbean_java NetBean创建及各菜单项相对应的窗体及布局教程.pdf
  12. Windows10专业版重装系统教程
  13. 2021年西式面点师(初级)考试平台及西式面点师(初级)模拟考试
  14. spring boot整合微信支付
  15. python画双折线图-python双折线图
  16. python识别图像中的物体_OpenCV+Python 指定物体识别
  17. ehcache 官网下载页面
  18. 洛谷——P1238 走迷宫
  19. 用什么软件工具可以一键添加马赛克同时虚化边框背景呢?
  20. 建模厉器E-RWin

热门文章

  1. 通达信版弘历软件指标_通达信弘历趋势王指标
  2. putty 连接虚拟机_使用Putty连接虚拟机
  3. vueform表单文件上传_峰哥说技术系列-8.Spring Boot文件上传(Form表单和Ajax方式)
  4. 当前时间转换的秒数_C++ 日期 amp; 时间
  5. 计算机网络专业教学模式,计算机网络技术专业教学模式改革探索
  6. Linu解决oracle连接不稳定
  7. 看看 JDK 8 给我们带来什么
  8. ajax技术实战-张晨光-专题视频课程
  9. 怎么让e-charts折线图只有6个刻度_简单6步,打开图表定制之门
  10. Json Schema快速入门