0. 说明
HDFS 副本存放策略 && 配置机架感知
1. HDFS 的副本存放策略
HDFS 的副本存放策略是将一个副本存放在本地机架节点上,另外两个副本放在不同机架的不同节点上。
这样集群可在完全失去某一机架的情况下还能存活。同时,这种策略减少了机架间的数据传输,提高了写操作的效率,因为数据块只存放在两个不同的机架上,减少了读取数据时需要的网络传输总带宽。这样在一定程度上兼顾了数据安全和网络传输的开销。
2. 配置机架感知
rack | node | num |
1 | s101 | s102 | s103 | 1 |
2 | s104 | s105 | 2 |
验证副本放置策略:3副本
本地机架放一个 s102 | s103
离架放两个 s104 & s105
0. 将 s105 配置为 DataNode
# 修改 slaves
vi slaves # 添加 s105
s105
1. 打包源代码,将 jar 包发送到 /soft/hadoop/share/hadoop/common/lib 下,并同步
xsync.sh /soft/hadoop/share/hadoop/common/lib/myhadoop-1.0-SNAPSHOT.jar
2. 设置配置文件 core-site.xml ,添加
<property>
<name>net.topology.node.switch.mapping.impl</name>
<value>hadoop.hdfs.TestRack</value>
</property>
3. 同步配置文件
xsync.sh core-site.xml
4. 启动并查看 DataNode 启动日志
start-dfs.sh
5. 测试方法,查看 s101 的 DataNode 启动日志,查看 rack1 和 rack2 分配情况
cat /soft/hadoop/logs/hadoop-centos-namenode-s101.log
3. 代码编写
package hadoop.hdfs; import java.util.ArrayList;
import java.util.List; public class TestRack implements org.apache.hadoop.net.DNSToSwitchMapping { /**
* @param names 传入一个主机名或 ip 地址的列表
* @return 返回网络拓扑路径 /rack1/192.168.23.102
*/
public List<String> resolve(List<String> names) { List<String> list = new ArrayList<String>(); for (String name : names) {
// 如果参数是主机名
if (name.startsWith("s")) {
// 获取后缀
int suffix = Integer.parseInt(name.substring(1)); // 如果后缀是 101-103,则在 rack1 中
if (suffix < 104) {
String path = "/rack1/";
list.add(path);
} else {
String path = "/rack2/";
list.add(path);
} }
// 参数是 ip地址 192.168.23.101
else {
//获取后缀
int suffix = Integer.parseInt(name.split("\\.")[3]); // 如果后缀是 101-103,则在 rack1中
if (suffix < 104) {
String path = "/rack1/";
list.add(path);
} else {
String path = "/rack2/";
list.add(path);
}
}
}
return list; } public void reloadCachedMappings() { } public void reloadCachedMappings(List<String> names) { }
}
[HDFS_add_3] HDFS 机架感知的更多相关文章
-
hdfs 机架感知和复制因子的设置
dfs.replication 新更新的复制因子的参数对原来的文件不起作用. 譬如说,原来的复制因子是2,则原来文件上传的时候就只有两个副本. 现在把dfs.replication设置为3,重新启动h ...
-
HDFS机架感知功能原理(rack awareness)
转自:http://www.jianshu.com/p/372d25352d3a HDFS NameNode对文件块复制相关所有事物负责,它周期性接受来自于DataNode的HeartBeat和Blo ...
-
hadoop(三):hdfs 机架感知
client 向 Active NN 发送写请求时,NN为这些数据分配DN地址,HDFS文件块副本的放置对于系统整体的可靠性和性能有关键性影响.一个简单但非优化的副本放置策略是,把副本分别放在不同机架 ...
-
hdfs 机架感知
一.背景 分布式的集群通常包含非常多的机器,由于受到机架槽位和交换机网口的限制,通常大型的分布式集群都会跨好几个机架,由多个机架上的机器共同组成一个分布式集群.机架内的机器之间的网络速度通常都会高 ...
-
HDFS副本机制&;负载均衡&;机架感知&;访问方式&;健壮性&;删除恢复机制&;HDFS缺点
副本机制 1.副本摆放策略 第一副本:放置在上传文件的DataNode上:如果是集群外提交,则随机挑选一台磁盘不太慢.CPU不太忙的节点上:第二副本:放置在于第一个副本不同的机架的节点上:第三副本:与 ...
-
HDFS副本放置策略和机架感知
副本放置策略 的副本放置策略的基本思想是: 第一block在复制和client哪里node于(假设client它不是群集的范围内,则这第一个node是随机选取的.当然系统会尝试不选择哪些太满或者太忙的 ...
-
Hadoop(8)-HDFS的读写数据流程以及机架感知
1. HDFS的写数据流程 1.客户端通过fs模块向NameNode申请文件上传,NameNode检查请求是否合法,如用户权限,目标文件是否已存在,父目录是否存在等等 2.NameNode返回是否可以 ...
-
HDFS 02 - HDFS 的机制:副本机制、机架感知机制、负载均衡机制
目录 1 - HDFS 的副本机制 2 - HDFS 的机架感知机制 3 - HDFS 的负载均衡机制 参考资料 版权声明 1 - HDFS 的副本机制 HDFS 中的文件,在物理上都是以分块(blo ...
-
HDFS网络拓扑概念及机架感知(副本节点选择)
网络拓扑概念 在本地网络中,两个节点被称为“彼此近邻”是什么意思?在海量数据处理中,其主要限制因素是节点之间数据的传输速率——带宽很稀缺.这里将两个节点间的带宽作为距离的衡量标准. 节点距离:两个节点 ...
随机推荐
-
No.2 CAS之SPNEGO+LDAP认证配置
1.概述 本文先配置了SPNEGO认证,就是如果用户操作系统如果登陆了公司的Windows域,用户浏览器访问应用服务即可免登录. 然后如果不在域里的员工,用LDAP认证方式,输账号密码登陆. 参考文档 ...
-
CYQ.Data 轻量数据层之路 优雅V1.4 现世 附API帮助文档(九)
继上一版本V1.3版本发布到现在,时隔N天了:[V1.3版本开源见:CYQ.Data 轻量数据层之路 华丽V1.3版本 框架开源] N天的时间,根据各路网友的反映及自身的想法,继续修改优化着本框架,力 ...
-
node js 模块分类
核心模块 require('fs'); 核心模块是被编译成二进制代码 文件模块 require('../fs.js'); 对于加载模块时既没指出./ ../ /.../时,加载模块的搜索路径.如果'/ ...
-
Day One
站立式会议 站立式会议内容总结 442 今天完成:学习Android 三种常用的adapter的使用方法,实现主页的可折叠列表 遇到问题:在实现自定义Adapter时,调用出现错误.已解决. 明天计划 ...
-
如何对Backbone.Collection进行过滤操作
首先我想说的是这篇文章的题目起的很怪,因为我不知道起个什么名字比较好.渲染列表是我们应用中最常见的操作了吧,在运用Backbone的应用中,我们一般会把列表作为一个Collcetion,然后指定一个V ...
-
《A Tour of PostgreSQL Internals》学习笔记——系统表和数据类型
上周末学习了<A Tour of PostgreSQL Internals>的第一部分(View 1),今天我们继续打开书本,继续View 2 部分. View 2 Postgresql的 ...
-
freetds相关
什么是FreeTDS 简单的说FreeTDS是一个程序库,可以实现在Linux系统下访问微软的SQL数据库! FreeTDS 是一个开源(如果你喜欢可以称为*)的程序库,是TDS(表列数据流 )协 ...
-
ubuntu14.04.03 vsftpd
apt-get install vsftpd /etc/vsftpd.conf配置Example listen=YES anonymous_enable=NO local_enable=YES wri ...
-
[Codeforces Round #247 (Div. 2)] A. Black Square
A. Black Square time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...
-
OCP读书笔记(5) - 使用RMAN创建备份
5.Creating Backups with RMAN 创建备份集 RMAN> backup as backupset format '/u01/app/oracle/backup/rmanb ...