1、手工切换ha的环境的搭建(比hadoop1多出来journalnode的配置)

namenode:hadoop110和hadoop111

datanode:hadoop112、hadoop113、hadoop114

journalnode:hadoop110、hadoop111、hadoop112

resourcemanager:hadoop110

nodemanager:hadoop112、hadoop113、hadoop114

1.1、配置文件(hadoop-env.sh、core-site.xml hdfs-site.xml yarn-site.xml mapred-site.xml)

1.1.1、hadoop-env.sh

export JAVA_HOME=/usr/jdk

上面是我本机的路径,需要改成真实的jdk路径

export JAVA_HOME=JDK的路径

1.1.2、core-site.xml

<configuration>

<property>

<name>fs.defaultFS</name>

<value>hdfs://cluster1</value>

</property>

设置默认的HDFS路径,有多个HDFS集群同时工作时,默认值在这里指定

<property>

<name>hadoop.tmp.dir</name>

<value>/usr/hadoop/tmp</value>

</property>

设置NameNode DataNode JournalNode等存放数据的公共目录,也可以单独指定

</configuration>

1.1.3、hdfs-site.xml

<configuration>

<property>

<name>dfs.replication</name>

<value>2</value>

</property>

<!-- 集群中文件的副本数 -->

<property>

<name>dfs.nameservices</name>

<value>cluster1</value>

</property>

<!-- 使用federation时,这里填写所有集群的别名,用逗号分隔 -->

<property>

<name>dfs.ha.namenodes.cluster1</name>

<value>hadoop110,hadoop111</value>

</property>

<!-- 配置集群的NameNode几点,这里是NameNode 的别名,需要对每个NameNode再进行详细的配置-->

<property>

<name>dfs.namenode.rpc-address.cluster1.hadoop110</name>

<value>hadoop110:9000</value>

</property>

<!-- 配置NameNode的RPC地址 -->

<property>

<name>dfs.namenode.http-address.cluster1.hadoop110</name>

<value>hadoop110:50070</value>

</property>

<!-- 配置NameNode的HTTP地址 -->

<property>

<name>dfs.namenode.rpc-address.cluster1.hadoop111</name>

<value>hadoop111:9000</value>

</property>

<property>

<name>dfs.namenode.http-address.cluster1.hadoop111</name>

<value>hadoop111:50070</value>

</property>

<property>

<name>dfs.namenode.shared.edits.dir</name>

<value>qjournal://hadoop110:8485;hadoop111:8485;hadoop112:8485/cluster1</value>

</property>

<!-- 指定集群(cluster1)的两个NameNode共享edits文件目录时使用的JournalNode集群信息 -->

<property>

<name>dfs.ha.automatic-failover.enabled.cluster1</name>

<value>false</value>

</property>

<!-- 指定集群(cluster1)是否启动自动故障恢复,即当NameNode出故障事,是否自动切换到另一台NameNode -->

<property>

<name>dfs.client.failover.proxy.provider.cluster1</name>

<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyPrivider</value>

</property>

<!-- 指定集群(cluster1)出故障时,哪个实现类负责执行故障切换 -->

<property>

<name>dfs.journalnode.edits.dir</name>

<value>/usr/hadoop/tmp/journal</value>

</property>

<!-- 指定JournalNode集群在对NameNode的目录进行共享时,自己存储数据的磁盘路径 -->

<property>

<name>dfs.ha.fencing.methods</name>

<value>sshfence</value>

</property>

<!-- 一旦需要NameNode切换,使用ssh方式进行切换 -->

<property>

<name>dfs.ha.fencing.ssh.private-key-files</name>

<value>/root/.ssh/id_rsa</value>

</property>

</configuration>

1.1.4、yarn-site.xml

<configuration>

<property>

<name>yarn.resourcemanager.hostname</name>

<value>hadoop110</value>

</property>

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

</configuration>

1.1.5、mapred-site.xml

<configuration>

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

</configuration>

1.1.6、slaves

hadoop112

hadoop113

hadoop114

1.2、启动journalnode集群

在hadoop110、hadoop111、hadoop112上分别执行:

sbin/hadoop-daemon.sh start journalnode

扩展

停止journalnode

sbin/hadoop-daemon.sh stop journalnode

  

1.3、格式化namenode、启动namenode

在hadoop110或者hadoop111上执行:

bin/hdfs namenode -format

sbin/hadoop-daemon.sh start namenode

在hadoop111上执行

bin/hdfs namenode -bootstrapStandby
sbin/hadoop-daemon.sh start namenode

*hadoop111的格式化,操作是关键是是把hadoop110上面的tmp/dfs下的fsimage和edit拷贝过去

把其中一个NameNode切换为active状态

bin/hdfs haadmin -failover --forceactive hadoop110 hadoop111

1.4、启动datanode

sbin/hadoop-daemons.sh start datanode

  

1.5、启动resourcemanager和nodemanager

在hadoop110或者hadoop111上执行

sbin/yarn-daemon.sh start resourcemanager

sbin/yarn-daemons.sh start nodemanager

  

1.6、启动

遇到的问题:

1、Linux 环境变量的配置解决(-bash: jps: command not found)问题:需要把jdk的bin目录也配置到环境变量中(是jdk/bin)

2、无法访问namenode(访问一直超时)

2.1、在centos7下关闭防火墙:

systemctl disable firewalld

systemctl mask firewalld

yum remove firewalld -y

2.2、关闭selinux

2.2.1、临时关闭

setenforce 0

2.2.2、通过修改配置文件永久关闭

可以修改配置文件/etc/selinux/config,将SELINU置为disabled

2.2.3、通过命令永久关闭

sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config

3、配置hosts文件时,不能遗留有localhost的配置

hadoop2 环境的搭建(手动HA)的更多相关文章

  1. hadoop2 环境的搭建(自动HA)

    zookeeper:hadoop112.hadoop113.hadoop114 namenode:hadoop110和hadoop111 datanode:hadoop112.hadoop113.ha ...

  2. Linux下Hadoop2.6.0集群环境的搭建

    本文旨在提供最基本的,可以用于在生产环境进行Hadoop.HDFS分布式环境的搭建,对自己是个总结和整理,也能方便新人学习使用. 基础环境 JDK的安装与配置 现在直接到Oracle官网(http:/ ...

  3. Linux下Hadoop2.7.1集群环境的搭建(超详细版)

                                本文旨在提供最基本的,可以用于在生产环境进行Hadoop.HDFS分布式环境的搭建,对自己是个总结和整理,也能方便新人学习使用. 一.基础环境 ...

  4. Linux下Hadoop2.7.3集群环境的搭建

    Linux下Hadoop2.7.3集群环境的搭建 本文旨在提供最基本的,可以用于在生产环境进行Hadoop.HDFS分布式环境的搭建,对自己是个总结和整理,也能方便新人学习使用. 基础环境 JDK的安 ...

  5. hbase单机环境的搭建和完全分布式Hbase集群安装配置

    HBase 是一个开源的非关系(NoSQL)的可伸缩性分布式数据库.它是面向列的,并适合于存储超大型松散数据.HBase适合于实时,随机对Big数据进行读写操作的业务环境. @hbase单机环境的搭建 ...

  6. 基于HBase0.98.13搭建HBase HA分布式集群

    在hadoop2.6.0分布式集群上搭建hbase ha分布式集群.搭建hadoop2.6.0分布式集群,请参考“基于hadoop2.6.0搭建5个节点的分布式集群”.下面我们开始啦 1.规划 1.主 ...

  7. Hadoop2.4.1 64-Bit QJM HA and YARN HA + Zookeeper-3.4.6 + Hbase-0.98.8-hadoop2-bin HA Install

    Hadoop2.4.1 64-Bit QJM HA and YARN HA Install + Zookeeper-3.4.6 + Hbase-0.98.8-hadoop2-bin HA(Hadoop ...

  8. MHA环境的搭建

    MHA简介: MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开 ...

  9. Linux学习心得之 Linux下命令行Android开发环境的搭建

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Linux学习心得之 Linux下命令行Android开发环境的搭建 1. 前言2. Jav ...

随机推荐

  1. int main(int argc,char* argv[])参数详解

    argc是命令行总的参数个数 argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数 命令行后面跟的用户输入的参数,比如: int main(int argc, char* argv[] ...

  2. vc2005 编译ACE-6.2.0

    vc2005 编译ACE-6.2.0 下载并解压ACE-6.2.0 ftp://download.dre.vanderbilt.edu/previous_versions/ACE-6.2.0.zip ...

  3. spring中Bean的注入类型

    1.属性注入    即通过setXxx()方法注入Bean的属性值或依赖对象,由于属性注入方式具有可选择性和灵活性高的优点,因此属性注入是实际应用中最常采用的注入方式.    属性注入要求Bean提供 ...

  4. DB天气app冲刺二阶段第八天

    今天突然感觉应该做收尾工作了 因为马上就要考试了,时间一下子就不够用了.. 今天主要修复了一下bug,然后天气基本能够实时准确了,就是多功能按钮还是没有弄好 准备简化一下功能. 明天看看还有什么需要改 ...

  5. 如何在eclipse中添加android ADT

    百度经验:http://jingyan.baidu.com/article/b0b63dbfa9e0a74a4830701e.html 截图:

  6. .Xresources 配置文件

    安装rxvt-unicode-256color,如果不是这个版本的话VIM配色会显示不正常. ~/.Xresources配置文件如下 !urxvt color scheme: URxvt*backgr ...

  7. 使用SpringMVC+mybatis+事务控制+JSON 配置最简单WEB

    最近在总结一些项目的基础知识,根据公司最近的一些意向和技术路线,初步整理了一个简单的配置例子     1.使用springmvc代替strutsMVC     2.使用请求json数据串的方式代替传统 ...

  8. IntelliJ IDEA 15 创建maven项目

    说明 创建Maven项目的方式:手工创建 好处:参考IntelliJ IDEA 14 创建maven项目二(此文章描述了用此方式创建Maven项目的好处)及idea14使用maven创建web工程(此 ...

  9. 什么是REST架构(转)

    REST架构风格是全新的针对Web应用的开发风格,是当今世界最成功的互联网超媒体分布式系统架构,它使得人们真正理解了Http协议本来面貌.随着 REST架构成为主流技术,一种全新的互联网网络应用开发的 ...

  10. sigleSchool 存储过程例1

    CREATE OR REPLACE PROCEDURE SINGLSCHOOL( PICIID IN VARCHAR2, SCHOOLID IN NUMBER, SCHETYPE IN number, ...