一、所需软件

  1. JDK版本

    下载地址:http://www.oracle.com/technetwork/java/javase/index.html

    版本: jdk-7u79-linux-x64.gz

  2. Hadoop软件

    下载地址:http://hadoop.apache.org/releases.html

    版本: hadoop-2.6.0.tar.gz

二、配置ssh免密码登陆:

  查阅之前博客:http://www.cnblogs.com/yinchengzhe/p/4967928.html

三、环境说明

  主备NameNode有多种配置,本文采用QJM(Quorum Journal Manager) ,主备NameNode应位于不同机器上

  集群中包括4个节点:1个Master,3个Salve,节点之间局域网连接,可以相互ping通。

  本人有3台云主机,主机名分别为h1,h2,h3。由于资源紧缺,master和其中一个salve共用h1主机。

  搭建手动切换ha集群,较自动切换少了一个zookeeper集群。

  主机分布情况如下:

  h1:  master  namenode(主)  journalnode   datanode

  h2:  salve   namenode(备)  journalnode   datanode

  h3:  salve          journalnode   datanode

四、HDFS HA (QJM)集群安装

  参考官网site:http://hadoop.apache.org/docs/r2.6.0/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithQJM.html

  1. 在h1上解压hadoop-2.6.0.tar.gz并重命名为hadoop

    > tar zxvf hadoop-2.6.0.tar.gz

    > mv hadoop-2.6.0 hadoop

  2. 配置hadoop-env.sh

    配置jdk路径,如: export JAVA_HOME=/root/software/jdk1.7.0_79

  3. 配置core-site.xml

    修改Hadoop核心配置文件core-site.xml,这里配置的是HDFS的地址和端口号

    > cd /hadoop/etc/hadoop

    > vim core-site.xml

    配置如下:

    

    注:此处h1为本机的hostname

  4. 配置slaves

    此配置为master主机特有,配置此文件有两种方式

    第一种:去掉"localhost",每行只添加一个主机名,把所有的Slave主机名都填上。

      如:h1

        h2

        h3

    第二种: 去掉"localhost",加入集群中所有Slave机器的IP,也是每行一个。

      如:192.168.1.1

        192.168.1.2

        192.168.1.3

  5. 配置hdfs-site.xml

    如下所示:

    

    (1). dfs.nameservices

      集群中命名服务列表(自定义)

    (2). dfs.ha.namenodes.[nameservice ID]

      命名服务中的namenode逻辑名称(自定义)

    (3). dfs.namenode.rpc-address.[nameservice ID].[name node ID]

      命名服务中逻辑名称对应的RPC地址

    (4). dfs.namenode.http-address.[nameservice ID].[name node ID]

      命名服务中逻辑名称对应的HTTP地址

    (5). dfs.namenode.name.dir

      NameNode fsiamge存放目录

    (6). dfs.namenode.shared.edits.dir

      主备NameNode同步元信息的共享存储系统

    (7). dfs.journalnode.edits.dir

      Journal Node数据存放目录

  6. 将h1上的hadoop文件夹复制到h2、h3节点上

  7. 启动关闭HDFS

    步骤1:在各个JournalNode节点上,输入以下命令启动journalnode服务:

        > sbin/hadoop-daemon.sh start journalnode
    
步骤2:在[nn1]上,对其进行格式化,并启动:
        > bin/hdfs namenode -format
        > sbin/hadoop-daemon.sh start namenode
    
步骤3:在[nn2]上,同步nn1的元数据信息:
        > bin/hdfs namenode -bootstrapStandby
    
步骤4:在[nn2],启动NameNode:
        > sbin/hadoop-daemon.sh start namenode
    
(经过以上四步操作,nn1和nn2均处理standby状态)
    
步骤5:在[nn1]上,将NameNode切换为Active
        > bin/hdfs haadmin -transitionToActive nn1
    
步骤6:在[nn1]上,启动所有datanode
        > sbin/hadoop-daemons.sh start datanode

    启动成功可通过jps命令查看结果,如下所示:

    

    

    

    

    关闭:

    在[nn1]上输入命令 sbin/stop-dfs.sh

  8. HDFS WEB界面浏览

    Windows访问Linux方式参照 http://www.cnblogs.com/yinchengzhe/p/5012936.html

    启动hdfs后界面如下:

    

    

使用QJM部署HDFS HA集群的更多相关文章

  1. 手动部署 kubernetes HA 集群

    前言 关于kubernetes HA集群部署的方式有很多种(这里的HA指的是master apiserver的高可用),比如通过keepalived vip漂移的方式.haproxy/nginx负载均 ...

  2. JAVA API连接HDFS HA集群

    使用JAVA API连接HDFS时我们需要使用NameNode的地址,开启HA后,两个NameNode可能会主备切换,如果连接的那台主机NameNode挂掉了,连接就会失败. HDFS提供了names ...

  3. 菜鸟玩云计算之十八:Hadoop 2.5.0 HA 集群安装第1章

    菜鸟玩云计算之十八:Hadoop 2.5.0 HA 集群安装第1章 cheungmine, 2014-10-25 0 引言 在生产环境上安装Hadoop高可用集群一直是一个需要极度耐心和体力的细致工作 ...

  4. ZooKeeper学习之路 (九)利用ZooKeeper搭建Hadoop的HA集群

    Hadoop HA 原理概述 为什么会有 hadoop HA 机制呢? HA:High Available,高可用 在Hadoop 2.0之前,在HDFS 集群中NameNode 存在单点故障 (SP ...

  5. 菜鸟玩云计算之十九:Hadoop 2.5.0 HA 集群安装第2章

    菜鸟玩云计算之十九:Hadoop 2.5.0 HA 集群安装第2章 cheungmine, 2014-10-26 在上一章中,我们准备好了计算机和软件.本章开始部署hadoop 高可用集群. 2 部署 ...

  6. Canalv1.1.4版本搭建HA集群

    前提 Canal上一个正式版是于2019-9-2发布的v1.1.4,笔者几个月前把这个版本的Canal推上了生产环境,部署了HA集群.过程中虽然遇到不少的坑,但是在不出问题的前提下,Canal的作用还 ...

  7. HDFS的HA集群原理分析

    1.简单hdfs集群中存在的问题 不能存在两个NameNode 单节点问题   单节点故障转移 2.解决单节点问题 找额外一个NameNode备份原有的数据 会出现脑裂 脑裂:一个集群中多个管理者数据 ...

  8. Hadoop HA集群 与 开发环境部署

    每一次 Hadoop 生态的更新都是如此令人激动 像是 hadoop3x 精简了内核,spark3 在调用 R 语言的 UDF 方面,速度提升了 40 倍 所以该文章肯定得配备上最新的生态 hadoo ...

  9. Hadoop(HDFS,YARN)的HA集群安装

    搭建Hadoop的HDFS HA及YARN HA集群,基于2.7.1版本安装. 安装规划 角色规划 IP/机器名 安装软件 运行进程 namenode1 zdh-240 hadoop NameNode ...

随机推荐

  1. window.resizeTo()和window.open()

    函数:window.resizeTo(width, height) 作用:改变窗口大小到设定的宽和高 参数:width - 宽度像素,必须设定的参数           height - 高度像素,可 ...

  2. CocoaPods详解之----进阶篇

    作者:wangzz原文地址:http://blog.csdn.net/wzzvictory/article/details/19178709转载请注明出处如果觉得文章对你有所帮助,请通过留言或关注微信 ...

  3. hdu 1788 Chinese remainder theorem again(最小公倍数)

    Problem Description 我知道部分同学最近在看中国剩余定理,就这个定理本身,还是比较简单的: 假设m1,m2,-,mk两两互素,则下面同余方程组: x≡a1(mod m1) x≡a2( ...

  4. Fedora 21 安装桌面环境

    Mate桌面环境:$ sudo yum install @mate-desktop KDE桌面环境:$ sudo yum install @kde-desktop XFCE桌面环境:$ sudo yu ...

  5. hibernate映射

    三种方式:     持久化注解   目前开发主流方式     XML配置描述文件(XML deployment descriptor,可以让Hibernate的PO类与JPA实体类兼容,实际中很少用) ...

  6. JavaScript学习总结【9】、DOM Ready

    1.DOM DOM(Document Object Model)即文档对象模型,是从文档中抽象出来的,DOM 操作的对象就是文档,DOM 将 HTML 文档呈现为带有元素.属性和文本的树结构,即节点树 ...

  7. 大型情感类电视连续剧--Android高德之旅(3)地图交互

    总要说两句 前两篇讲到了地图的基础显示和地图类型,今天来记录下高德地图交互相关的设置.地图的绘制分很多层,层级的显示需要根据不同的场景来设置.地图的触摸事件也很丰富,有单击.双击.单指拖拽.双指拖拽. ...

  8. 关闭linux终端命令行退格报警声(centos7亲测有效)

    首先这个声音不是外置音频设备发出,而是主板上的蜂鸣器 1,使用root账户登录 2,vi 打开 ~/.bashrc 脚本 3,在脚本的最后一行加上 setterm -blength 0  4,保存脚本 ...

  9. TCP/IP笔记 应用层(3)——HTTP

    1. URL URL(Uniform Resource Locator) 相当于一个文件名在网络范围的扩展. 1.1 格式 schema://host[:port#]/path/.../[?query ...

  10. Servlet 小试牛刀(doGet,doPost)

    实验说明: 通过javax.servlet.http下的HttpServlet,HttpServletRequest,HttpServletResponse来完成一些常用Servlet实例 java代 ...