Hadoop2.2.0 手动切换HA环境搭建

    ssh-copy-id -i hadoop5含义:

    节点hadoop4上执行ssh-copy-id -i hadoop5的含义是把hadoop4上的公钥id_rsa.pub的内容追加到hadoop5的授权文件authorized_keys中。

    zookeeper在hadoop2中实现的一个作用是HA的自动切换。
    journalnode是实现active和standby两个数据节点的数据同步。
    搭建手工切换的HA (比hadoop1集群搭建多了一个journalnode)

机器分配:

    namenode:hadoop4,hadoop5
    datanode:hadoop4,hadoop5,hadoop6
    journalnode:hadoop4,hadoop5,hadoop6,仅仅是为了实现HA,和集群没有任何关系,最少三个机器,奇数个
    resourcemanager:hadoop4
    nodemanager:hadoop4,hadoop5,hadoop6

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

  1.1.1 hadoop-env.sh 修改JAVA_HOME

export JAVA_HOME=/usr/local/jdk

  1.1.2 core-site.xml

<property>
    <name>fs.defaultFS</name>
    <value>hdfs://cluster1</value>
</property>
<property>
    <name>hadoop.tmp.dir</name>
    <value>/usr/local/hadoop/tmp</value>
</property>

  1.1.3 hdsf-site.xml

<!-- 副本数 默认值3个 -->
<property>
    <name>dfs.replication</name>
    <value>2</value>
</property>
<!-- 配置有几个集群 -->
<property>
    <name>dfs.nameservices</name>
    <value>cluster1</value>
</property>
<!-- 指定集群cluster1具有哪些namenode节点,这里是逻辑名称,不重复即可 -->
<property>
    <name>dfs.ha.namenodes.cluster1</name>
    <value>hadoop101,hadoop102</value>
</property>
<!-- 指定hadoop101RPC的地址 -->
<property>
    <name>dfs.namenode.rpc-address.cluster1.hadoop101</name>
    <value>hadoop4:9000</value>
</property>
<!-- 指定hadoop101http的地址 -->
<property>
    <name>dfs.namenode.http-address.cluster1.hadoop101</name>
    <value>hadoop4:50070</value>
</property>
<!-- 指定hadoop102RPC的地址 -->
<property>
    <name>dfs.namenode.rpc-address.cluster1.hadoop102</name>
    <value>hadoop5:9000</value>
</property>
<!-- 指定hadoop102http的地址 -->
<property>
    <name>dfs.namenode.http-address.cluster1.hadoop102</name>
    <value>hadoop5:50070</value>
</property>
<!-- 是否启用自动故障恢复,即namenode出故障时,是否自动切换到另一台namenode-->
<property>
    <name>dfs.ha.automatic-failover.enabled.cluster1</name>
    <value>false</value>
</property>
<!-- 指定cluster1的两个namenode共享edits文件目录时,使用journalnode集群信息 -->
<property>
    <name>dfs.namenode.shared.edits.dir</name>
    <value>qjournal://hadoop4:8485;hadoop5:8485;hadoop6:8485/cluster1</value>
</property>
<!-- 指定journalnode集群在对namenode的目录进行共享时,自己存储数据的磁盘路径 -->
<property>
    <name>dfs.journalnode.edits.dir</name>
    <value>/usr/local/hadoop/tmp/journal</value>
</property>
<!-- 需要namenode切换,使用ssh进行切换 -->
<property>
    <name>dfs.ha.fencing.methods</name>
    <value>sshfence</value>
</property>
<!-- 使用ssh进行故障切换,使用的密钥存储位置 -->
<property>
    <name>dfs.ha.fencing.ssh.private-key-files</name>
    <value>/root/.ssh/id_rsa</value>
</property>
<!-- 指定cluster1出故障时,哪个实现类负责执行故障切换 -->
<property>
    <name>dfs.client.failover.proxy.provider.cluster1</name>
    <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>

hdsf-site.xml 配置

  1.1.4 yarn-site.xml

<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>hadoop4</value>
</property>

<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>

  1.1.5 mapred-site.xml

     重命名mapred-site.xml.template 为mapred-site.xml
     mv mapred-site.xml.template mapred-site.xml

<!-- 指定mapreduce运行环境时yarn,和hadoop1不同的地 -->
<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
</property>

  1.1.6 slaves

hadoop4
hadoop5
hadoop6

  1.1.7 把hadoop4上的hadoop文件夹复制到hadoop5、hadoop6节点

直接复制:
    scp -rq hadoop hadoop5:/usr/local/    r:是否强制覆盖    q:安静
也可以写一个脚本:
    vi bcp.sh
    #!/bin/sh
    for((i=5;i<=6;i++));
    do
    scp -rq /usr/local/$1 hadoop$i:/usr/local/$2
    echo "copy done at hadoop$i"
    done
执行:
    chmod u+x bcp.sh
    bcp.sh hadoop .

1.2 启动journalnode集群

  在hadoop4、hadoop5、hadoop6上分别执行hadoop/sbin/hadoop-daemon.sh start journalnode

1.3 格式化namenode,启动namenode

  hadoop4上执行格式化:hadoop/bin/hdfs namenode -format
  hadoop4上执行 hadoop/sbin/hadoop-daemon.sh start namenode
  hadoop5上执行 hadoop/bin/hdfs namenode -bootstrapStandby
  hadoop5上执行 hadoop/sbin/hadoop-daemon.sh start namenode
  将hadoop4上standby状态的转换为active状态
  hadoop/bin/hdfs haadmin -failover --forceactive hadoop101 hadoop102 forceactive:将一个转成active,forcefence:将状态互换
  ll -h :查看文件大小

1.4 启动datanode

  在hadoop4上执行hadoop/sbin/hadoop-daemons.sh start datanode
  hadoop5格式化命令,实际上是把hadoop4上的fsimage和edits两个文件copy到hadoop5上

1.5 启动resourcemanager和nodemanager

  在hadoop4上执行hadoop/sbin/start-yarn.sh start resourcemanager
  和原来的集群相比多了一个HA,HA由我们的journalnode集群实现,

时间: 2024-08-27 23:48:38

Hadoop2.2.0 手动切换HA环境搭建的相关文章

Hadoop2.6.0实践:000 环境搭建

##################### Centos6.4VM_01_os.rar ################################################准备工作/opt /opt/modules 软件安装目录 /opt/softwares 软件包(tar.bin.zip) /opt/tools(eclipse等) /opt/data(测试数据)/home/hadoop(工具和数据) ##################### Centos6.4VM_01_os.r

Windows Server 2003 IIS6.0+PHP5(FastCGI)+MySQL5环境搭建教程

准备篇 一.环境说明: 操作系统:Windows Server 2003 SP2 32位 PHP版本:php 5.3.14 MySQL版本:MySQL5.5.25 二.相关软件下载: 1.PHP下载地址: http://windows.php.net/downloads/releases/php-5.3.14-nts-Win32-VC9-x86.zip 2.MySQL下载地址: http://gd.tuwien.ac.at/db/mysql/Downloads/MySQLInstaller/my

Cocos2dx-3.0版本 从开发环境搭建(Win32)到项目移植Android平台过程详解

作为重量级的跨平台开发的游戏引擎,Cocos2d-x在现今的手游开发领域占有重要地位.那么问题来了,作为Cocos2dx的学习者,它的可移植特性我们就需要掌握,要不然总觉得少一门技能.然而这个时候各种各样的问题也就来了,之前网上一直有零零碎碎的移植教程,但是都不完整,或是有这样或者那样的问题.今天刚刚研究成功了Cocos2dx-3.0版本项目的安卓平台移植问题,本人亲自完成了整个过程,将Cocos2dx-3.0版本 从开发环境搭建(Win32)到项目移植Android平台过程 一起分享给大家.

SDL2.0的VS开发环境搭建

SDL2.0的VS开发环境搭建 [前言] 我是用的是VS2012,VS的版本应该大致一样. [开发环境搭建] >>>SDL2.0开发环境配置:1.从www.libsdl.org 下载SDL2.0开发工具,主要是include头文件目录及编译好的lib和dll文件,并解压:2.打开VS2012,新建空白工程:3.添加头文件路径.在工程上点击右键-->属性-->C/C++-->附加包含路径,输入1中解压的头文件路径(注意,需要先在工程中添加一个C或者C++的文件):4.添加

新手嘛,先学习下 Vue2.0 新手入门 — 从环境搭建到发布

Vue2.0 新手入门 - 从环境搭建到发布 转自:http://www.runoob.com/w3cnote/vue2-start-coding.html 具体文章详细就不搬了,步骤可过去看,我这就写下使用总结 1. Vue2.0 推荐开发环境中一些安装就不说了 Node.js  .npm  .webpack  .vue-cli  , 自己看着安装 到最后能启动本地通过 vue-cli 建的项目,  npm run dev  ,默认的 http://localhost:8080/ 能看到页面显

hadoop3.1.0 window win7 基础环境搭建

https://blog.csdn.net/wsh596823919/article/details/80774805 hadoop3.1.0 window win7 基础环境搭建 前言:在windows上部署hadoop默认都是安装了java环境的哈. 1.下载hadoop3.1.0 https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common 2.下载之后解压到某个目录 3.配置hadoop_home 新建HADOOP_HOME,指向ha

ZooKeeper+Hadoop2.6.0的ResourceManager HA搭建

以下为我的操作记录,还未整理格式 hqvm-L118        192.168.1.118        jdk.hadoop                   NameNode.DFSZKFailoverController(zkfc) hqvm-L138        192.168.1.138        jdk.hadoop.zookeeper        NameNode.DFSZKFailoverController(zkfc).DataNode.NodeManager.J

搭建Hadoop2.6.0+Eclipse开发调试环境

上一篇在win7虚拟机下搭建了hadoop2.6.0伪分布式环境.为了开发调试方便,本文介绍在eclipse下搭建开发环境,连接和提交任务到hadoop集群. 1. 环境 Eclipse版本Luna 4.4.1 安装插件hadoop-eclipse-plugin-2.6.0.jar,下载后放到eclipse/plugins目录即可. 2. 配置插件 2.1 配置hadoop主目录 解压缩hadoop-2.6.0.tar.gz到C:\Downloads\hadoop-2.6.0,在eclipse的

windows下搭建hadoop-2.6.0本地idea开发环境

概述 本文记录windows下hadoop本地开发环境的搭建: OS:windows hadoop运行模式:独立模式 安装包结构: Hadoop-2.6.0-Windows.zip - cygwinInstall // cygwin离线安装包 - hadoop-2.6.0-windows.tar.gz // hadoop-2.6.0 windows安装包 PS: hadoop-2.6.0-windows.tar.gz是基于官方发行包hadoop-2.6.0.tar.gz,并为windows单机测