官方参考 配置 地址  :http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithQJM.html

一、

  在Hadoop-senior.zuoyan.com 的主机上

    首先将Hadoop安装目录下 etc下的hadoop的配置文件进行备份  使用命令:  cp -r hadoop dist-hadoop

     然后在Hadoop安装目录下 data 文件夹内  将tmp 文件夹 重命名  使用命令  :  mv  tmp dits-tmp   ,重命名完成后,在创建一个文件夹   mkdir  tmp

  然后在其余的 两台主机上也重复这个操作

     将hadoop安装目录下的etc下的hadoop的所有配置文件复制文件为  dist-hadoop  然后再Hadoop的主安装目录中的data 下的  tmp 目录重命名为  dist-tmp 然后在创建新的数据存放目录

      说明:图片中使用的命令有错误,不应该是重命名hadoop  而应该是重新复制文件,将复制文件的名字设置为  dist-hadoop

     

    

二、修改配置文件

    打开core-site.xml  和  hdfs-site.xml 文件

    在core-site.xml   文件中配置

    

       因为是NameNode 的高可用行,配制两台机器的NameNode ,需要修改这个,所以需要配置成集群

      

    

    在hdfs-site.xml 配置文件中配制:

     首先去除掉

      

	<!--配置secondary namenode 所在的主机-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop-senior03.zuoyan.com:50090</value>
</property>

      

    在  /opt/app/hadoop2.5.0/data  目录下创建文件夹   dfs/jn   用来存放NameNode的 日志信息

    

    

    然后在从hdfs-site.xml 文件中配置

      

        <!--配置Hadoop NameNode 的HA -->
<property>
<name>dfs.nameservices</name>
<value>ns1</value>
</property> <property>
<name>dfs.ha.namenodes.ns1</name>
<value>nn1,nn2</value>
</property> <!-- NameNode RPC Adress -->
<property>
<name>dfs.namenode.rpc-address.ns1.nn1</name>
<value>hadoop-senior.zuoyan.com:8020</value>
</property> <property>
<name>dfs.namenode.rpc-address.ns1.nn2</name>
<value>hadoop-senior02.zuoyan.com:8020</value>
</property> <!-- 配置 WEB 界面的 访问地址和端口 -->
<property>
<name>dfs.namenode.http-address.ns1.nn1</name>
<value>hadoop-senior.zuoyan.com:50070</value>
</property>
<property>
<name>dfs.namenode.http-address.ns1.nn2</name>
<value>hadoop-senior02.zuoyan.com:50070</value>
</property> <!--配置 NameNode Shared EDITS Address 和NameNode 日志文件存放的位置 -->
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://hadoop-senior.zuoyan.com:8485;hadoop-senior02.zuoyan.com:8485;hadoop-senior03.zuoyan.com:8485/ns1</value>
</property> <property>
<name>dfs.journalnode.edits.dir</name>
<value>/opt/app/hadoop-2.5.0/data/dfs/jn</value>
</property> <!-- 配置 HDFS PROXY Client -->
<property>
<name>dfs.client.failover.proxy.provider.mycluster</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property> <!--配置两个 NameNode的隔离机制 -->
<!-- 使用的方式是 ssh-fence 要求是两个NameNode 之间能够无密码登录 两个主机之间能互相ssh无密钥登录 -->
<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property> <property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/home/beifeng/.ssh/id_rsa</value>
</property>

   

配置好 主机一(hadoop-senior.zuoyan.com)  需要将配置文件进行同步

    使用命令  scp -r etc/hadoop/core-site.xml etc/hadoop/hdfs-site.xml etc/hadoop/slaves beifeng@hadoop-senior02.zuoyan.com:/opt/app/hadoop-2.5.0/etc/hadoop/

    

    

开始启动QJM   HA:

    完成后,分别启动三个节点的journalnode    使用命令:   sbin/hadoop-daemon.sh start journalnode   每个节点启动后     使用jps查看一下进程,看任务是否启动

    可以查看一下启动日志(这个步骤不是必须要做的   可以看见journalnode 的启动日志):

    

    

    在NameNode1节点上      对文件系统进行格式化,产生fsimage 文件   使用命令  :  bin/hdfs namenode -format  然后再启动NameNode

    

    

    在NameNode1 上启动namenode 使用命令  :  bin/hadoop-daemon.sh start namenode

    

    

    之后在NameNode2   上同步NameNode1 的元数据信息

    使用命令:bin/hdfs namenode -bootstrapStandby

     

     

     可以看到复制镜像文件是从Hadoop-senior.zuoyan.com 上拷贝

     

     

      然后启动NameNode2  使用命令:    sbin/hadoop-daemon.sh start namenode

      

      然后分别访问这两个主机的50070 发现如果可以访问  就初步配置成功

      

           

      

        然后启动所有机器上的DataNode  使用命令:sbin/start-dfs.sh  (也可以使用命令 一个个启动   sbin/hadoop-daemon.sh  start datanode  我这里省事,就所有机器的都启动)

            打开WEB界面  发现两个NameNode 都可以进行管理 这样就是配置成功!!!

           

        使用命令将第一个节点改变为活跃状态,使用命令:   bin/hdfs haadmin -transitionToActive nn1

            (可以看到这个NameNode 节点  已经改变为活跃状态)

          

            也可以通过命令 来查看节点的状态    (可以看到这两个主机 一个是active  一个是 standby)

            

            

            现在查看一下 HDFS文件系统上的文件  来进行测试NameNode

            (下面没有打印出文件    这个上面说没有找到ns1  这个原因技就是我们在配置Proxy的时候 没有改变myclsur)

            

              

            下面这个内容配置错误的原因,我现在已经更改过来了

            

            更改完成后,在执行一下    (就可以看见文件目录已经循环出来了)

            

            使用命令创建文件目录

            

            将文件上传到文件系统上

                   

            通过文件管理的web界面进行查看  (就会发现文件已经上传成功)

            

             然后 在测试HA的读取功能  使用命令:  bin/hdfs dfs -text /user/zuoyan/conf/core-site.xml

              

               文件已经成功  正常的被读取出来了

              

              然后通过命令  将  nn1 切换称 standby  将nn2 切换成  active  

              将节点切换成Standby的命令 :bin/hdfs haadmin -transitionToStandby  nn1

              将节点切换成Active  的命令   :   bin/hdfs haadmin -transitionToActive nn2

              

              切换之后在用NameNode 1 去读取HDFS上的文件  测试 是否能正常读取文件

                (切换之后已经正常的读取出来了,证明节点切换 对集群是没有影响的)

               

              完成到这样  HDFS的高可用 已经初步搭建好了

    

        

  

    

   

【Hadoop 分布式部署 十:配置HDFS 的HA、启动HA中的各个守护进程】的更多相关文章

  1. 【Hadoop 分布式部署 十 一: NameNode HA 自动故障转移】

    问题描述:    上一篇就是NameNode 的HA 部署完成,但是存在问题,问题是如果 主NameNode的节点宕机了,还是需要人工去使用命令来切换NameNode的Acitve 这样很不方便,所以 ...

  2. CentOS6安装各种大数据软件 第四章:Hadoop分布式集群配置

    相关文章链接 CentOS6安装各种大数据软件 第一章:各个软件版本介绍 CentOS6安装各种大数据软件 第二章:Linux各个软件启动命令 CentOS6安装各种大数据软件 第三章:Linux基础 ...

  3. CentOS7 下 Hadoop 分布式部署

    Hadoop 服务划分 使用三台节点,集群部署规划如下 服务\主机 hadoop1 hadoop2 hadoop3 HDFS NameNode DataNode DataNode SecondaryN ...

  4. 【Hadoop 分布式部署 三:基于Hadoop 2.x 伪分布式部署进行修改配置文件】

    1.规划好哪些服务运行在那个服务器上 需要配置的配置文件 2. 修改配置文件,设置服务运行机器节点 首先在   hadoop-senior  的这台主机上 进行   解压 hadoop2.5   按照 ...

  5. ubuntu在虚拟机下的安装 ~~~ Hadoop的安装及配置 ~~~ Hdfs中eclipse的安装

     前言 Hadoop是基于Java语言开发的,具有很好跨平台的特性.Hadoop的所要求系统环境适用于Windows,Linux,Mac系统,我们推荐选择使用Linux或Mac系统.而Linux系统则 ...

  6. hadoop分布式部署(2014-3-8)

    hadoop简介: (维基百科)Apache Hadoop是一款支持數據密集型分佈式應用并以Apache 2.0許可協議發佈的開源軟體框架.它支持在商品硬件構建的大型集群上運行的應用程序.Hadoop ...

  7. Hadoop分布式集群配置

    硬件环境: 安装一个Hadoop集群时,需要专门指定一个服务器作为主节点. 三台虚拟机搭建的集群:(搭建集群时主机名不能一样,主机名在/etc/hostname修改) master机器:集群的主节点, ...

  8. 【Hadoop 分布式部署 九:分布式协作框架Zookeeper架构 分布式安装部署 】

    1.首先将运行在本地上的  zookeeper 给停止掉 2.到/opt/softwares 目录下  将  zookeeper解压到  /opt/app 目录下 命令:  tar -zxvf zoo ...

  9. 【Hadoop 分布式部署 四:配置Hadoop 2.x 中主节点(NN和RM)到从节点的SSH无密码登录】

    *******************                一定要使这三台机器的用户名相同,安装目录相同          ************* SSH 无密钥登录的简单介绍(之前再搭 ...

随机推荐

  1. Qt 事件机制

    [1]事件 事件是可以被控件识别的操作.如按下确定按钮.选择某个单选按钮或复选框. 每种控件有自己可识别的事件,如窗体的加载.单击.双击等事件,编辑框(文本框)的文本改变事件等等. 事件就是用户对窗口 ...

  2. python pynssql创建表,删除表,插入数据,查询

    import pymssql server='10.194.**.***:*****' user='sa' password='******' database='******' #连接 conn=p ...

  3. 专题8:javascript函数详解

    函数是一段可以反复调用的代码块.函数还能接受输入的参数,不同的参数会返回不同的值. 函数的声明 JavaScript 有三种声明函数的方法. (1)function 命令 function命令声明的代 ...

  4. JustOj 2038: 叶神的字符串

    题目描述 众所周知,ACS协会会长叶神学习特别好,算法能力也强,作为一个弱渣的大豪哥特别崇拜叶神,觉得‘Y’‘S’这两个字符特别厉害,所以大豪哥的一个键盘上就只有Y,S两个键,大豪哥用这个键盘打出了一 ...

  5. kswapd0 进程CPU占用过高

    前几天遇到的一个问题,自己本地用VM配置的虚拟机,一般会top查看进程以及CPU占用的一些情况.又一次用laravel 打印对象,里面的内容比较多,浏览器当时就卡了. 然后看进程的情况.我以为会是ng ...

  6. Java学习笔记之Linux下的Java安装和配置

    0x00 概述 由于使用 yum 或者 apt-get 命令 安装 openjdk 可能存在类库不全,从而导致用户在安装后运行相关工具时可能报错的问题,所以此处我们推荐采用手动解压安装的方式来安装 J ...

  7. suse日常操作(含suse/rhel内核与发行版对应关系)

    最近有家客户要求只能使用suse系统,是suse 12 sp3的,而且版本都不同意换,一直以来,都是使用rhel的客户,还没遇到过suse的,可偏偏不巧,我们的系统和suse 12 sp3自带的gli ...

  8. oracle 11g亿级复杂SQL优化一例(数量级性能提升)

    自从16年之后,因为工作原因,项目中就没有再使用oracle了,最近最近支持一个项目,又要开始负责这块事情了.最近在跑性能测试,配置全部调好之后,不少sql还存在性能低下的问题,主要涉及执行计划的不合 ...

  9. eclipse maven Errors while generating javadoc on java8

    With JDK 8, we are unable to get Javadoc unless your tool meets the standards of doclint. Some of it ...

  10. day5-json和pickle序列化

    一.json模块 序列化:把一个对象的形态改变一下,使他能够存放在文件中,或者在网络上传输,序列化也叫持久化,是把对象存储到永久介质中,这样就不会因为掉电而丢失. JSON (JavaScript O ...