Hadoop 机架(集群拓扑)设置
本文通过MetaWeblog自动发布,原文及更新链接:https://extendswind.top/posts/technical/hadoop_rack_awareness
Hadoop会通过集群的拓扑(节点在交换机的连接形式)优化文件的存储,降低跨交换机的数据通信,使副本跨交换机以保证数据安全。
但Hadoop没有默认的集群拓扑识别机制,需要使用额外的java类或脚本两种形式设置。
官网上给了集群拓扑的基本说明(!(Rack Awareness)[https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/RackAwareness.html]),给出来的那两段脚本看得有点懵,就自己试了一下,写了个更简单的。
其实只是Hadoop会调用脚本,将多个Datanode的ip作为输入,每次最多输入的ip数设置在net.topology.script.number.args,将输入的ip转换成/rack-num的形式(以/开头的字符串),用标准输出流(如Python的print)输出结果。
具体操作
编写脚本
下面的脚本在输入
192.168.3.1
192.168.3.4
时,会输出
/rack1
/rack4
#!/bin/python3
import sys
# 第一个参数是脚本路径,直接pop掉
sys.argv.pop(0)
# 0-3 rack0
# 4-7 rack1
# 8-11 rack2
# ...
# 其它的参数里每个参数都是一个ip,此处直接取ip的最后一位除以4作为Racknum
# 实践上可以读文件确定ip的对应关系
for ip in sys.argv:
hostNum = int(ip.split(".")[3])
print("/rack" + str(int(hostNum/4)))
设置配置参数
<property>
<name>net.topology.script.file.name</name>
<value>/home/sparkl/hadoop/etc/hadoop/topology.py</value>
</property>
重启集群即可
验证结果
以下命令能够直接获取某一个文件的分布状态,以及总的rack数量:
hdfs fsck /readme.md -files -blocks -racks
貌似没有直接以树状的形式输出集群拓扑的命令,namenode的日志中能看到datanode在连接时的拓扑位置。
Hadoop 机架(集群拓扑)设置的更多相关文章
- Hadoop - Ambari集群管理剖析
1.Overview Ambari是Apache推出的一个集中管理Hadoop的集群的一个平台,可以快速帮助搭建Hadoop及相关以来组件的平台,管理集群方便.这篇博客记录Ambari的相关问题和注意 ...
- hadoop的集群安装
hadoop的集群安装 1.安装JDK,解压jar,配置环境变量 1.1.解压jar tar -zxvf jdk-7u79-linux-x64.tar.gz -C /opt/install //将jd ...
- 基于Hadoop分布式集群YARN模式下的TensorFlowOnSpark平台搭建
1. 介绍 在过去几年中,神经网络已经有了很壮观的进展,现在他们几乎已经是图像识别和自动翻译领域中最强者[1].为了从海量数据中获得洞察力,需要部署分布式深度学习.现有的DL框架通常需要为深度学习设置 ...
- Hadoop分布式集群搭建hadoop2.6+Ubuntu16.04
前段时间搭建Hadoop分布式集群,踩了不少坑,网上很多资料都写得不够详细,对于新手来说搭建起来会遇到很多问题.以下是自己根据搭建Hadoop分布式集群的经验希望给新手一些帮助.当然,建议先把HDFS ...
- Hadoop分布式集群搭建
layout: "post" title: "Hadoop分布式集群搭建" date: "2017-08-17 10:23" catalog ...
- Hadoop基础-Hadoop的集群管理之服役和退役
Hadoop基础-Hadoop的集群管理之服役和退役 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在实际生产环境中,如果是上千万规模的集群,难免一个一个月会有那么几台服务器出点故 ...
- 一脸懵逼学习Hadoop分布式集群HA模式部署(七台机器跑集群)
1)集群规划:主机名 IP 安装的软件 运行的进程master 192.168.199.130 jdk.hadoop ...
- 基于zookeeper的高可用Hadoop HA集群安装
(1)hadoop2.7.1源码编译 http://aperise.iteye.com/blog/2246856 (2)hadoop2.7.1安装准备 http://aperise.iteye.com ...
- Hadoop+HBase 集群搭建
Hadoop+HBase 集群搭建 1. 环境准备 说明:本次集群搭建使用系统版本Centos 7.5 ,软件版本 V3.1.1. 1.1 配置说明 本次集群搭建共三台机器,具体说明下: 主机名 IP ...
随机推荐
- Git提交代码解决方案
最近做项目不再用小乌龟了,开始用git,便做了记录如下,后期可以看看自己是怎么使用的 下载安装就不说了,直接进入使用环节. 1.使用规则 git pull origin master 和 gi ...
- UI5-技术篇-Hybrid App-3-jsbin百度地图
今天研究了下如何在SAPUI5中加载百度地图,现将相关过程进行备注. 1.实现思路 1.1了解百度地图相关应用过程 A.百度地图申请应用AK:http://lbsyun.baidu.com/apico ...
- FreeRTOS二值信号量
API函数 #if( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) #define xSemaphoreCreateBinary() xQueueGenericCre ...
- IOS模拟器调试ANE
来源:http://www.tuicool.com/articles/AFRJzi 利用iOS模拟器来检测和调试AIR应用程序补充篇 Air3.4来了 除去可以直接往模拟器里面部署应用,还可以往真机里 ...
- c#使用正则表达式处理字符串
正则表达式可以灵活而高效的处理文本,可以通过匹配快速分析大量的文本找到特定的字符串. 可以验证字符串是否符合某种预定义的格式,可以提取,编辑,替换或删除文本子字符串. 现在如下特定的字符串: stri ...
- SAP官网发布的react教程
大家学习React的时候,用的是什么教程呢?Jerry当时用的阮一峰博客上的入门教程,因为React使用的JSX语法并不是所有的浏览器都支持,所以还得使用browser.js在浏览器端将JSX转换成J ...
- 无法将文件“E:\NetWorkPace\Permission\packages\EntityFramework.6.1.1\lib\net45\EntityFramework.xml”复制到“bin\EntityFramework.xml”。对路径“bin\EntityFramework.xml”的访问被拒绝。
无法将文件“E:\NetWorkPace\Permission\packages\EntityFramework.6.1.1\lib\net45\EntityFramework.xml”复制到“bin ...
- Python——数据类型公用功能
1.索引 表示从哪里开始取值. 支持类型 str 列表 dict 不支持类型 int bool a= '1234567' print(a[1:])#指从哪开始读取,1为从1号元素开始.默认为0 pri ...
- 1206 BBS注册
目录 昨日内容 BBS项目 1.项目开发流程 2.表设计 用户表 个人站点表 文章标签表 文章分类表 文章表 文章的点赞点踩表 文章的评论表 项目 昨日内容 昨日内容 基于django中间件实现功能的 ...
- mysql-proxy读写分离笔记
1.MySQL的安装与配置 --省略 版本:Server version: 5.6.35 1.1 系统版本: [root@centos7-67 package]# lsb_release -a LSB ...