之前转载过一篇【伊利丹】写的NN HA实验记录。该博客描写叙述了主备NN透明切换的过程,也就是说,当主NN挂掉后,自己主动将备NN切换为主NN了,Hadoop集群正常执行。

今天我继续做了一个实验。目的是实现NN的切换不会对Client端程序造成影响,即NN切换对Client透明。

首先,非常重要的一点:

要保证core-site.xml中的

  1. <property>  
  2.     <name>fs.defaultFS</name>  
  3.     <value>hdfs://hadoop-cluster</value>   
  4. </property>

和hdfs-site.xml中的

  1. <property>  
  2.     <name>dfs.nameservices</name>  
  3.     <value>hadoop-cluster</value>  
  4. </property>

逻辑名称一定要一致。

其次:

/etc/hosts文件里无需为hadoop-cluster指定IP,hadoop-cluster仅仅是一个逻辑名,当程序或者命令通过hadoop-cluster訪问HDFS集群时,Hadoop会自己主动依据hdfs-site.xml的配置。去找到一个active的Namenode。

当然,hdfs-site.xml中的

  1. <property>  
  2.     <name>dfs.namenode.rpc-address.hadoop-cluster.namenode1</name>  
  3.     <value>NODE001:8020</value>
     
  4. </property>  
  5. <property>  
  6.     <name>dfs.namenode.rpc-address.hadoop-cluster.namenode2</name>  
  7.     <value>NODE002:8020</value>
     
  8. </property>

和/etc/hosts文件里的NODE001、NODE002是必须配置的,否则Hadoop再聪明也没法得知究竟和哪个节点交互了。

最后就是Client了,

不管Namenode怎样切换,都能够在随意Hadoop节点上正常执行命令  hadoop dfs -ls hdfs://hadoop-cluster/  ,或者在程序中,将HDFS目标地址指定为  hdfs://hadoop-cluster 就可以正常执行程序。

关键在于。不通过IP地址或主备NN的主机名訪问HDFS。而是通过HDFS的逻辑名訪问。

这种话。命令和程序的执行与当前Active的Namenode是哪个节点毫无关系,一切皆透明,感觉真爽!

【甘道夫】NN HA 对于 Client 透明的实验的更多相关文章

  1. 【甘道夫】Hadoop2.2.0 NN HA具体配置+Client透明性试验【完整版】

    引言: 前面转载过一篇团队兄弟[伊利丹]写的NN HA实验记录,我也基于他的环境实验了NN HA对于Client的透明性. 本篇文章记录的是亲自配置NN HA的具体全过程,以及全面測试HA对clien ...

  2. 【甘道夫】Win7x64环境下编译Apache Hadoop2.2.0的Eclipse小工具

    目标: 编译Apache Hadoop2.2.0在win7x64环境下的Eclipse插件 环境: win7x64家庭普通版 eclipse-jee-kepler-SR1-win32-x86_64.z ...

  3. 【甘道夫】MapReduce实现矩阵乘法--实现代码

    之前写了一篇分析MapReduce实现矩阵乘法算法的文章: [甘道夫]Mapreduce实现矩阵乘法的算法思路 为了让大家更直观的了解程序运行,今天编写了实现代码供大家參考. 编程环境: java v ...

  4. 【甘道夫】HBase(0.96以上版本号)过滤器Filter具体解释及实例代码

    说明: 本文參考官方Ref Guide,Developer API和众多博客.并结合实測代码编写.具体总结HBase的Filter功能,并附上每类Filter的对应代码实现. 本文尽量遵从Ref Gu ...

  5. 【甘道夫】HBase基本数据操作的详细说明【完整版,精绝】

    介绍 之前具体写了一篇HBase过滤器的文章.今天把基础的表和数据相关操作补上. 本文档參考最新(截止2014年7月16日)的官方Ref Guide.Developer API编写. 全部代码均基于& ...

  6. 【甘道夫】HBase连接池 -- HTablePool是Deprecated之后

    说明: 近期两天在调研HBase的连接池,有了一些收获,特此记录下来. 本文先将官方文档(http://hbase.apache.org/book.html)9.3.1.1节翻译,方便大家阅读,然后查 ...

  7. 【甘道夫】HBase基本数据操作详解【完整版,绝对精品】

    引言 之前详细写了一篇HBase过滤器的文章,今天把基础的表和数据相关操作补上. 本文档参考最新(截止2014年7月16日)的官方Ref Guide.Developer API编写. 所有代码均基于“ ...

  8. 【甘道夫】Win7环境下Eclipse连接Hadoop2.2.0

    准备: 确保hadoop2.2.0集群正常执行 1.eclipse中建立javaproject,导入hadoop2.2.0相关jar包 2.在src根文件夹下拷入log4j.properties,通过 ...

  9. 【甘道夫】Eclipse+Maven搭建HBase开发环境及HBaseDAO代码演示样例

    环境: Win764bit Eclipse Version: Kepler Service Release 1 java version "1.7.0_40" 第一步:Eclips ...

随机推荐

  1. docker jenkins安装(一)

    https://hub.docker.com/r/jenkins/jenkins  jenkins的docker官方镜像地址 https://jenkins.io/  jenkins官方网站 环境: ...

  2. Reading a IMU Without Kalman: The Complementary Filter

    目标是将惯性测量元件(IMU)之中陀螺仪.加速计的数据结合使用.Kalman filter太复杂,在微机上倾向用一种更简单的方法:Complementary filter 姿态估计(获得3个角度,俯仰 ...

  3. 编程中经常看到上下文context,这个上下文指得是什么?

    举个栗子:小美气呼呼对我说:“你去死吧”,我当时哭了. 场景1:小美刚转学到我们学校,我暗恋了她很久,有一天鼓足勇气,向她表白,小美气呼呼对我说:“你去死吧”,我当时就哭了.场景2我跟小美从小青梅竹马 ...

  4. 线程同步(windows平台):临界区

    一:介绍 临界区指的是一个访问共用资源(例:全局变量)的程序片段,该共用资源无法同时被多个线程访问的特性.有多个线程试图同时访问临界区,那么在有一个线程进入后其他所有试图访问此临界区的线程将被挂起,并 ...

  5. TOJ 2119 Tangled in Cables

    描述 You are the owner of SmallCableCo and have purchased the franchise rights for a small town. Unfor ...

  6. unity接入讯飞教程

    [全流程]<按照这个流程做即可,有不懂得可以看下面的2个><这个是<eclipse>> http://blog.csdn.net/qq_15267341/artic ...

  7. HTML <frameset>不同frame之间传值

    布局 左右30%--70%,点击左边的复选框,右边显示相应的反应. 代码 main2.html <html> <frameset cols="30%, 70%"& ...

  8. BJFU 1551 ——delightful world——————【暴搜】

    delightful world 时间限制(C/C++):20000MS/30000MS          运行内存限制:65536KByte总提交:33            测试通过:10 描述 ...

  9. Spring3.2下使用JavaMailSenderImpl类发送邮件

    1.JavaMailSenderImpl类 Spring的邮件发送的核心是MailSender接口,在Spring3.0中提供了一个实现类JavaMailSenderImpl,这个类是发送邮件的核心类 ...

  10. c# 快速修改图片颜色

    public static void ChangeColour(this Bitmap bmp, byte inColourR, byte inColourG, byte inColourB, byt ...