集群配置:

jdk1.8.0_161

hadoop-2.6.1

zookeeper-3.4.8

linux系统环境:Centos6.5

3台主机:master、slave01、slave02

Hadoop HA集群搭建(高可用):

设置静态IP地址

为普通用户添加sudo权限

服务器网络设置NAT模式

域名设置

主机名设置

SSH免登录配置

关闭防火墙

红色步骤主每台主机都要执行,参照上一篇伪分布式集群的搭建

环境变量(每台主机一样):

配置文件:

配置core-site.xml

<configuration>
<property>
<!-- 指定hdfs的nameservice为ns1 -->
<name>fs.defaultFS</name>
<value>hdfs://ns1</value>
</property>
<!-- 指定hadoop临时目录 -->
<property>
<name>hadoop.tmp.dir </name>
<value>/home/dummy/app/hadoop-2.6.1/hdpdata</value>
</property>
<!-- 指定zookeeper地址 -->
<property>
<name>ha.zookeeper.quorum</name>
<value>master:2181,slave01:2181,slave02:2181</value>
</property>
</configuration>

配置hdfs-site.xml

<configuration>
<!--指定hdfs的nameservice为ns1,需要和core-site.xml中的保持一致-->
<property>
        <name>dfs.nameservices</name>
        <value>ns1</value>
</property>
<!-- ns1下面有两个NameNode,分别是nn1,nn2 -->
<property>
        <name>dfs.ha.namenodes.ns1</name>
        <value>nn1,nn2</value>
</property>
<!-- nn1的RPC通信地址 -->
<property>
        <name>dfs.namenode.rpc-address.ns1.nn1</name>
        <value>master:9000</value>
</property>
<!-- nn1的http通信地址 -->
<property>
        <name>dfs.namenode.http-address.ns1.nn1</name>
        <value>master:50070</value>
</property>
<!-- nn2的RPC通信地址 -->
<property>
        <name>dfs.namenode.rpc-address.ns1.nn2</name>
        <value>slave01:9000</value>
</property>
<!-- nn2的http通信地址 -->
<property>
        <name>dfs.namenode.http-address.ns1.nn2</name>
        <value>slave01:50070</value>
</property>
<!-- 指定NameNode的edits元数据在JournalNode上的存放位置 -->
<property>
        <name>dfs.namenode.shared.edits.dir</name>
        <value>qjournal://master:8485;slave01:8485;slave02:8485/ns1</value>
</property>
<!-- 指定JournalNode在本地磁盘存放数据的位置 -->
<property>
        <name>dfs.journalnode.edits.dir</name>
        <value>/home/dummy/app/hadoop-2.6.1/journaldata</value>
</property>
<!-- 开启NameNode失败自动切换 -->
<property>
        <name>dfs.ha.automatic-failover.enabled</name>
        <value>true</value>
</property>
<!-- 配置失败自动切换实现方式 -->
<property>
        <name>dfs.client.failover.proxy.provider.ns1</name>
        <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverPr
oxyProvider</value>
</property>
<!-- 配置隔离机制方法,多个机制用换行分割,即每个机制暂用一行-->
<property>
        <name>dfs.ha.fencing.methods</name>
        <value>
               sshfence
               shell(/bin/true)
        </value>
</property>
<!-- 使用sshfence隔离机制时需要ssh免登陆 -->
<property>
        <name>dfs.ha.fencing.ssh.private-key-files</name>
        <value>/home/dummy/.ssh/id_rsa</value>
</property>
<!-- 配置sshfence隔离机制超时时间 -->
<property>
        <name>dfs.ha.fencing.ssh.connect-timeout</name>
        <value>30000</value>
</property>
</configuration>

配置mapred-site.xml

<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>

配置yarn-site.xml

<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>

配置slaves

master
slave01
slave02

HA安装步骤

全新的集群的启动方式:(一定要按步骤执行)

最关键的步骤:把防火墙全部关闭

第一步:启动ZooKeeper集群

第二步:在其中一台修改core-site.xml和hdfs-site.xml的配置文件,修改好后,把它分发到其它的机器

第三步:启动hadoop-daemon.sh start journalnode(三台都启动)

第四步:格式化namenode,然后把格式化的namenode的目录分发到另外一台namenode,分发hdpdata即可

第五步:再到其中一台的namenode上执行命令hdfs zkfc -formatZK

第六步:启动集群

第七步:网页正常访问

非全新的集群的启动方式:

非全新集群模式指的是你之前可能运行过HA或者普通的集群,这个时候,如果是以前运行过HA,但是现在报错,

最简单的方式,先把ZK下面的data里面的数据全部删除,只保留myid,这个时候ZooKeeper就是一个全新的。

并且把hadoop下面的logs和格式化生产的目录全部删除,这个时候保证hadoop是一个全新的。

上面的所有的步骤都是为了保证你重新从一个全新的集群开始搭建HA,可以避免很多问题。

之后的安装参照上面的全新的集群的启动方式进行。

 之后集群的启动就是:
每台机启动 zkServer.sh start
再在任意一条主机的hadopp/sbin 目录启动
start-all.sh
 
 
 
 

hadoop ha集群搭建的更多相关文章

  1. hadoop HA集群搭建步骤

      NameNode DataNode Zookeeper ZKFC JournalNode ResourceManager NodeManager node1 √   √ √   √   node2 ...

  2. hadoop HA集群搭建(亲测)

    1.hadoop-env.sh 2.core-site.xml <configuration> <!-- 指定hdfs的nameservice为ns1 --> <prop ...

  3. 大数据-hadoop HA集群搭建

    一.安装hadoop.HA及配置journalnode 实现namenode HA 实现resourcemanager HA namenode节点之间通过journalnode同步元数据 首先下载需要 ...

  4. Hadoop HA集群的搭建

    HA 集群搭建的难度主要在于配置文件的编写, 心细,心细,心细! ha模式下,secondary namenode节点不存在... 集群部署节点角色的规划(7节点)------------------ ...

  5. 基于zookeeper的高可用Hadoop HA集群安装

    (1)hadoop2.7.1源码编译 http://aperise.iteye.com/blog/2246856 (2)hadoop2.7.1安装准备 http://aperise.iteye.com ...

  6. hadoop2.8 ha 集群搭建

    简介: 最近在看hadoop的一些知识,下面搭建一个ha (高可用)的hadoop完整分布式集群: hadoop的单机,伪分布式,分布式安装 hadoop2.8 集群 1 (伪分布式搭建 hadoop ...

  7. Hadoop分布式集群搭建

    layout: "post" title: "Hadoop分布式集群搭建" date: "2017-08-17 10:23" catalog ...

  8. Hadoop+HBase 集群搭建

    Hadoop+HBase 集群搭建 1. 环境准备 说明:本次集群搭建使用系统版本Centos 7.5 ,软件版本 V3.1.1. 1.1 配置说明 本次集群搭建共三台机器,具体说明下: 主机名 IP ...

  9. 全网最详细的Hadoop HA集群启动后,两个namenode都是active的解决办法(图文详解)

    不多说,直接上干货! 这个问题,跟 全网最详细的Hadoop HA集群启动后,两个namenode都是standby的解决办法(图文详解) 是大同小异. 欢迎大家,加入我的微信公众号:大数据躺过的坑  ...

随机推荐

  1. MySQL学习系列2--MySQL执行计划分析EXPLAIN [原创]

    1.Explain语法 EXPLAIN SELECT …… 变体:   EXPLAIN EXTENDED SELECT …… 将执行计划“反编译”成SELECT语句,运行SHOW WARNINGS 可 ...

  2. 《敏捷软件开发:原则、模式与实践(C#版)》源代码下载

    Agile Software Development: Principles, Patterns and Practice (C# Edition)  Source Code 这本书的经典性无需多言 ...

  3. Django的Serializers的使用

    Serializer 在这里通过一个验证用户身份的例子说明rest_framework中serializer.Serialize的使用. 编写serializer Serializer的使用不需要依赖 ...

  4. Catch the moments of your life. Catch them while you're young and quick.

    Catch the moments of your life. Catch them while you're young and quick.趁你还年轻利落,把握住生活中的美好瞬间吧!

  5. 浅谈Scrum敏捷开发:4个输入/输出、3个关键物、3个会议

    文章对Scrum敏捷开发流程进行系统的分析,希望借此文能够加深你对敏捷开发的认知,更好的展开产品工作. Scrum敏捷开发,是一种敏捷开发框架,是一个增量的.迭代的开发过程,具备可视.可集成和可运行使 ...

  6. web调试的一些小技巧

    1.不带缓存的刷新,用于刷新css或者js:Ctrl+F5 待续...

  7. 部署JavaWeb时出现 If a file is locked,you can wait until

    在部署JavaWeb程序时出现了if a file is locked ,you can wait until the lock stop的问题,这个主要是classpath目录出错或者jar包未导入 ...

  8. jQuery_2_常规选择器-简单选择器

    JQuery最核心的组成部分就是:选择器引擎.它继承了css的语法,可以对DOM元素的标签名.属性名.状态等进行快速准确的选择. jQuery选择器的写法与CSS 选择器十分类似,只不过他们的功能不同 ...

  9. linux 命令——22 find (转)

    find一些常用参数的一些常用实例和一些具体用法和注意事项. 1.使用name选项: 文 件名选项是find命令最常用的选项,要么单独使用该选项,要么和其他选项一起使用.  可以使用某种文件名模式来匹 ...

  10. Sonar服务器搭建

    Sonar服务器搭建 Sonar概述 Sonar 是一个用于代码质量管理的开放平台.通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具.与持续集成工具(例如 Hudson ...