linux怎么查看本机内存大小
296
2022-11-20
Hadoop之——Hadoop机架感知策略与自定义机架感知实现
一、Hadoop机架感知策略
副本节点的选择(机架感知)
1、默认
第一个副本在client所处的节点上。如果客户端在集群外,随机选一个。第二个副本在和第一个副本不同机架的随机节点上。第三个副本和第二个副本相同机架,节点随机。
2、hadoop2.7.2策略
第一个副本在client所处的节点上。如果客户端在集群外,随机选一个。第二个副本和第一个副本在相同的机架。第三个副本位于不同机架。
二、自定义机架感知步骤
1、创建类实现org.apache.hadoop.net.DNSToSwitchMapping接口
2、在core-site.xml文件中追加如下配置
3、分发core-site.xml
4、编译程序,打成Jar,分发到所有节点的Hadoop的classpath(${HADOOP_HOME/share/hadoop/common/lib})下。
三、自定义机架感知具体实现
1、编写MyDNSToSwitchMapping类如下,
package com.lyz.hadoop.rackaware;import org.apache.hadoop.net.DNSToSwitchMapping;import java.io.FileOutputStream;import java.util.ArrayList;import java.util.List;/** * @Author: liuyazhuang * @Date: 2018/7/21 23:18 * @Description: 自定义机架感知策略 */public class MyDNSToSwitchMapping implements DNSToSwitchMapping { /** * 主机名前缀 */ private static final String HOST_NAME_PREFIX = "liuyazhuang"; /** * IP前缀 */ private static final String IP_PREFIX = "192"; /** * 传递的是客户端的IP列表,返回机架感知的路径列表 * @param names 客户端的主机名列表或IP列表(这里我们的主机为liuyazhuang121(192.168.209.121)—liuyazhuang125(192.168.209.125)) * @return 机架感知的路径列表 * liuyazhuang121(192.168.209.121)映射为/rack1/121 * liuyazhuang122(192.168.209.122)映射为/rack1/122 * liuyazhuang123(192.168.209.123)映射为/rack2/123 * liuyazhuang124(192.168.209.124)映射为/rack2/124 * liuyazhuang125(192.168.209.125)映射为/rack2/125 */ public List
将MyDNSToSwitchMapping类打成jar包:MyDNSToSwitchMapping.jar
将MyDNSToSwitchMapping.jar包分发到所有节点的Hadoop的classpath(${HADOOP_HOME}/share/hadoop/common/lib)下。
2、配置文件core-site.xml中追加配置如下:
将core-site.xml文件分发到所有Hadoop节点的${HADOOP_HOME}/etc/hadoop
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~