机架感知脚本

使用python3编写机架感知脚本,报存到topology.py,给予执行权限

import sys
import os DEFAULT_RACK="/default-rack"
HADOOP_CONF_DIR = os.environ['HADOOP_CONF_DIR']
FILE="topology.data" host_rack={}
for line in open(os.path.join(HADOOP_CONF_DIR, FILE)):
(host, rack) = line.split()
host_rack[host] = rack
#获取命令行的输入
for host in sys.argv[1:]:
if host in host_rack:
print(host_rack[host])
else:
print(DEFAULT_RACK)

  

topology.data文件内容如下:
[root@test ~ ::]#cat /data3/hadoop/hadoop/etc/hadoop/topology.data
192.168.4.46 /dn1/rack
192.168.4.47 /dn2/rack

执行脚本

[root@test script_py ::]#python topology.py 192.168.4.46 192.168.4.47 192.168.4.48
/dn1/rack
/dn2/rack
/default-rack

shell编写脚本,报存到topology.sh,给予执行权限。

#!/bin/bash
#HADOOP_CONF=/tmp
while [ $# -gt 0 ] ;
do
nodeArg=$1
#文件内容输入到标准输入流
exec<${HADOOP_CONF_DIR}/topology.data
result=""
while read line
do
#把输入的每一行定义为数组
ar=( $line )
if [ "${ar[0]}" = "$nodeArg" ] #||[ "${ar[1]}" = "$nodeArg" ]
then
result="${ar[1]}"
fi
done
shift
if [ -z "$result" ]
then
echo "/default-rack"
else
echo "$result"
fi
done

  

执行脚本:

[root@test ~ ::]#bash topology.sh 192.168.4.46 192.168.4.47 192.168.4.48
/dn1/rack
/dn2/rack
/default-rack

配置core-site.xml文件

<property>
<name>topology.script.file.name</name>
<value>${HADOOP_CONF_DIR}/topology.sh</value>
</property>

  

Hadoop hadoop 机架感知配置的更多相关文章

  1. 【Hadoop】Hadoop 机架感知配置、原理

    Hadoop机架感知 1.背景 Hadoop在设计时考虑到数据的安全与高效,数据文件默认在HDFS上存放三份,存储策略为本地一份, 同机架内其它某一节点上一份,不同机架的某一节点上一份. 这样如果本地 ...

  2. 深入理解hadoop之机架感知

    深入理解hadoop之机架感知 机架感知 hadoop的replication为3,机架感知的策略为: 第一个block副本放在和client所在的datanode里(如果client不在集群范围内, ...

  3. hadoop配置机架感知

    接着上一篇来说.上篇说了hadoop网络拓扑的构成及其相应的网络位置转换方式,本篇主要讲通过两种方式来配置机架感知.一种是通过配置一个脚本来进行映射:另一种是通过实现DNSToSwitchMappin ...

  4. 【转载】Hadoop机架感知

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

  5. hadoop机架感知

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

  6. 【原创】Hadoop机架感知对性能调优的理解

    Hadoop作为大数据处理的典型平台,在海量数据处理过程中,其主要限制因素是节点之间的数据传输速率.因为集群的带宽有限,而有限的带宽资源却承担着大量的刚性带宽需求,例如Shuffle阶段的数据传输不可 ...

  7. hadoop之 hadoop 机架感知

    1.背景 Hadoop在设计时考虑到数据的安全与高效,数据文件默认在HDFS上存放三份,存储策略为本地一份,同机架内其它某一节点上一份,不同机架的某一节点上一份.这样如果本地数据损坏,节点可以从同一机 ...

  8. 第十三章 hadoop机架感知

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

  9. Hadoop--Hadoop的机架感知

    Hadoop的机架感知 Hadoop有一个“机架感知”特性.管理员可以手工定义每个slave数据节点的机架号.为什么要做这么麻烦的事情?有两个原因:防止数据丢失和提高网络性能.     为了防止数据丢 ...

随机推荐

  1. 在js中把json中的 key去掉双引号的方法

    方法一: //数据格式是这样的: var data = '[{"id":30348079,"name":"表1","score&q ...

  2. iOS ANE植入流程

    来源:http://www.adsmogo.com/help/iosANE 一.iOS ANE植入流程 Step 1:创建Flex工程 1.1 启动Flash Builder 4.6.0, 选择“Fi ...

  3. 使用gulp构建项目

    gulp.js作为一个前端构建工具,类似于webpack.Grountjs.rollupjs,不过相对于其他几种打包工具,gulp的使用更轻量,配置更简单,打包速度更快,今天不说他们几个的区别,也不说 ...

  4. Zabbix-报警之微信(Wechat alert)告警

    1.前言 Zabbix告警发送是监控系统的重要功能之一.Zabbix可以通过多种方式把告警信息发送到指定人,常用的有邮件,短信报警方式,但是越来越多的企业开始使用zabbix结合微信作为主要的告警方式 ...

  5. JavaScript基础,Cookies,Sessions

    php和JavaScript,掌握JavaScript基础,自定义函数,流程控制语句,事件,调用JavaScript脚本,在PHP中使用JavaScript. JavaScript是网景公司开发的,是 ...

  6. 数据库事务和锁(三)——INNODB_LOCKS, INNODB_LOCK_WAITS, INNODB_TRX表的简单介绍

    INNODB_LOCKS, INNODB_LOCK_WAITS, INNODB_TRX是MYSQL中事务和锁相关的表.通常我们遇到事务超时或锁相关问题时,直接运行下面SQL语句即可进行简单检查: -- ...

  7. IDEA实用教程(七)—— IDEA的断点调试

    IDEA实用教程(七)-- IDEA的断点调试 23/100 发布文章 qq_41684621 六. IDEA的断点调试 打断点 在行号的右侧点击鼠标左键,出现红色圆形图标,说明已经被打上断点 Deb ...

  8. go cache

    go 编译, 或是安装库的时候,产生的日志量很大 go env 删除掉这个log.txt文件,系统空间瞬间就够了

  9. vue 标签页以及标签页赋值

    背景: 使用vue增加了标签页,点击不同标签页传给后端的值不一样,用来做区分,如图: vue代码如下: 使用 form.PageA   form.PageB ,后端接收到的值 first.second ...

  10. [Apio2010]patrol 巡逻

    1912: [Apio2010]patrol 巡逻 Time Limit: 4 Sec  Memory Limit: 64 MBSubmit: 2541  Solved: 1288[Submit][S ...