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 机架感知的更多相关文章

  1. hdfs 机架感知和复制因子的设置

    dfs.replication 新更新的复制因子的参数对原来的文件不起作用. 譬如说,原来的复制因子是2,则原来文件上传的时候就只有两个副本. 现在把dfs.replication设置为3,重新启动h ...

  2. HDFS机架感知功能原理(rack awareness)

    转自:http://www.jianshu.com/p/372d25352d3a HDFS NameNode对文件块复制相关所有事物负责,它周期性接受来自于DataNode的HeartBeat和Blo ...

  3. hadoop(三):hdfs 机架感知

    client 向 Active NN 发送写请求时,NN为这些数据分配DN地址,HDFS文件块副本的放置对于系统整体的可靠性和性能有关键性影响.一个简单但非优化的副本放置策略是,把副本分别放在不同机架 ...

  4. hdfs 机架感知

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

  5. HDFS机架感知

    Hadoop版本:2.9.2 什么是机架感知 通常大型 Hadoop 集群是以机架的形式来组织的,同一个机架上的不同节点间的网络状况比不同机架之间的更为理想,NameNode 设法将数据块副本保存在不 ...

  6. HDFS副本机制&负载均衡&机架感知&访问方式&健壮性&删除恢复机制&HDFS缺点

    副本机制 1.副本摆放策略 第一副本:放置在上传文件的DataNode上:如果是集群外提交,则随机挑选一台磁盘不太慢.CPU不太忙的节点上:第二副本:放置在于第一个副本不同的机架的节点上:第三副本:与 ...

  7. HDFS副本放置策略和机架感知

    副本放置策略 的副本放置策略的基本思想是: 第一block在复制和client哪里node于(假设client它不是群集的范围内,则这第一个node是随机选取的.当然系统会尝试不选择哪些太满或者太忙的 ...

  8. Hadoop(8)-HDFS的读写数据流程以及机架感知

    1. HDFS的写数据流程 1.客户端通过fs模块向NameNode申请文件上传,NameNode检查请求是否合法,如用户权限,目标文件是否已存在,父目录是否存在等等 2.NameNode返回是否可以 ...

  9. HDFS 02 - HDFS 的机制:副本机制、机架感知机制、负载均衡机制

    目录 1 - HDFS 的副本机制 2 - HDFS 的机架感知机制 3 - HDFS 的负载均衡机制 参考资料 版权声明 1 - HDFS 的副本机制 HDFS 中的文件,在物理上都是以分块(blo ...

随机推荐

  1. 原生js实现vue组件功能

    在如今VUE盛行的情况下,我们一直在惊叹于VUE的组件的功能,却不知道,原生js早就已经支持了这个功能. 最近在公开课学到的,js还有很多很多需要探索学习. 下面是一个简单的例子 <!DOCTY ...

  2. kubernetes构建时容器的时间与宿主机不一致的解决方法

    kubernetes默认使用docker容器部署的应用,会出现时间与主机不一致的情况 容器时间与主机差8个小时:主机的与容器的/etc/localtime不一致 解决方法:挂载主机的/etc/loca ...

  3. 插入排序——Insertion Sort

    基本思想: 在要排序的一组数中,假定前n-1个数已经排好序,现在将第n个数插到前面的有序数列中,使得这n个数也是排好顺序的.如此反复循环,直到全部排好顺序. 过程: 平均时间复杂度:O(n2) jav ...

  4. ElasticSearch实战-编码实践

    1.概述 前面在<ElasticSearch实战-入门>中给大家分享如何搭建这样一个集群,在完成集群的搭建后,今天给大家分享如何实现对应的业务功能模块,下面是今天的分享内容,目录如下所示: ...

  5. Spring Boot + Spring Cloud 实现权限管理系统 后端篇(十六):容器部署项目

    容器部署项目 这一章我们引入docker,采用docker容器的方式部署我们的项目. 首先需要有一个linux环境,并且安装 java 和 maven 以及 docker 环境,这个教程多如牛毛,不再 ...

  6. spring-session-data-redis解决session共享的问题

    分布式系统要做到用户友好,需要对用户的session进行存储,存储的方式有以下几种: 本地缓存 数据库 文件 缓存服务器 可以看一些不同方案的优缺点 1.本地机器或者本地缓存.优点:速度快  缺点:服 ...

  7. 技术人员在小公司成长 vs 大公司成长路径和建议

    我们经常听到这样的对话: 大公司猿A:真不想干了,每天都做类似的工作,学不到什么东西,会议也多,浪费不少时间,想去小公司多做些事情,多学些东西. 小公司猿B:累死了,什么都做,太乱太杂,没系统不规范, ...

  8. Spring的第四天AOP之注解版

    Spring的第四天AOP之注解版 ssm框架 spring  在上一篇博客中,介绍了Spring的AOP的xml版本的使用,在这篇博客中,我将介绍一下,注解版的使用. 常用注解 注解 通知 @Aft ...

  9. (3)Microsoft office Word 2013版本操作入门_段落设定

    1.查看文件: 打开word查看左下角 会显示 word一共有多少页,当前第几页,共多少字等,如下图所示 2.word快速翻页: Ctrl+PageDown  向下翻页, Ctrl+PageUp 向上 ...

  10. 01-Java基本语法

    注释 单行注释:       //  注释内容 多行注释:    /* 注释内容 */ 文档注释: /**   注释内容   */ 数据类型 整型 byte    short    int    lo ...