【Hadoop 分布式部署 十:配置HDFS 的HA、启动HA中的各个守护进程】
官方参考 配置 地址 :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中的各个守护进程】的更多相关文章
- 【Hadoop 分布式部署 十 一: NameNode HA 自动故障转移】
问题描述: 上一篇就是NameNode 的HA 部署完成,但是存在问题,问题是如果 主NameNode的节点宕机了,还是需要人工去使用命令来切换NameNode的Acitve 这样很不方便,所以 ...
- CentOS6安装各种大数据软件 第四章:Hadoop分布式集群配置
相关文章链接 CentOS6安装各种大数据软件 第一章:各个软件版本介绍 CentOS6安装各种大数据软件 第二章:Linux各个软件启动命令 CentOS6安装各种大数据软件 第三章:Linux基础 ...
- CentOS7 下 Hadoop 分布式部署
Hadoop 服务划分 使用三台节点,集群部署规划如下 服务\主机 hadoop1 hadoop2 hadoop3 HDFS NameNode DataNode DataNode SecondaryN ...
- 【Hadoop 分布式部署 三:基于Hadoop 2.x 伪分布式部署进行修改配置文件】
1.规划好哪些服务运行在那个服务器上 需要配置的配置文件 2. 修改配置文件,设置服务运行机器节点 首先在 hadoop-senior 的这台主机上 进行 解压 hadoop2.5 按照 ...
- ubuntu在虚拟机下的安装 ~~~ Hadoop的安装及配置 ~~~ Hdfs中eclipse的安装
前言 Hadoop是基于Java语言开发的,具有很好跨平台的特性.Hadoop的所要求系统环境适用于Windows,Linux,Mac系统,我们推荐选择使用Linux或Mac系统.而Linux系统则 ...
- hadoop分布式部署(2014-3-8)
hadoop简介: (维基百科)Apache Hadoop是一款支持數據密集型分佈式應用并以Apache 2.0許可協議發佈的開源軟體框架.它支持在商品硬件構建的大型集群上運行的應用程序.Hadoop ...
- Hadoop分布式集群配置
硬件环境: 安装一个Hadoop集群时,需要专门指定一个服务器作为主节点. 三台虚拟机搭建的集群:(搭建集群时主机名不能一样,主机名在/etc/hostname修改) master机器:集群的主节点, ...
- 【Hadoop 分布式部署 九:分布式协作框架Zookeeper架构 分布式安装部署 】
1.首先将运行在本地上的 zookeeper 给停止掉 2.到/opt/softwares 目录下 将 zookeeper解压到 /opt/app 目录下 命令: tar -zxvf zoo ...
- 【Hadoop 分布式部署 四:配置Hadoop 2.x 中主节点(NN和RM)到从节点的SSH无密码登录】
******************* 一定要使这三台机器的用户名相同,安装目录相同 ************* SSH 无密钥登录的简单介绍(之前再搭 ...
随机推荐
- Qt 事件机制
[1]事件 事件是可以被控件识别的操作.如按下确定按钮.选择某个单选按钮或复选框. 每种控件有自己可识别的事件,如窗体的加载.单击.双击等事件,编辑框(文本框)的文本改变事件等等. 事件就是用户对窗口 ...
- python pynssql创建表,删除表,插入数据,查询
import pymssql server='10.194.**.***:*****' user='sa' password='******' database='******' #连接 conn=p ...
- 专题8:javascript函数详解
函数是一段可以反复调用的代码块.函数还能接受输入的参数,不同的参数会返回不同的值. 函数的声明 JavaScript 有三种声明函数的方法. (1)function 命令 function命令声明的代 ...
- JustOj 2038: 叶神的字符串
题目描述 众所周知,ACS协会会长叶神学习特别好,算法能力也强,作为一个弱渣的大豪哥特别崇拜叶神,觉得‘Y’‘S’这两个字符特别厉害,所以大豪哥的一个键盘上就只有Y,S两个键,大豪哥用这个键盘打出了一 ...
- kswapd0 进程CPU占用过高
前几天遇到的一个问题,自己本地用VM配置的虚拟机,一般会top查看进程以及CPU占用的一些情况.又一次用laravel 打印对象,里面的内容比较多,浏览器当时就卡了. 然后看进程的情况.我以为会是ng ...
- Java学习笔记之Linux下的Java安装和配置
0x00 概述 由于使用 yum 或者 apt-get 命令 安装 openjdk 可能存在类库不全,从而导致用户在安装后运行相关工具时可能报错的问题,所以此处我们推荐采用手动解压安装的方式来安装 J ...
- suse日常操作(含suse/rhel内核与发行版对应关系)
最近有家客户要求只能使用suse系统,是suse 12 sp3的,而且版本都不同意换,一直以来,都是使用rhel的客户,还没遇到过suse的,可偏偏不巧,我们的系统和suse 12 sp3自带的gli ...
- oracle 11g亿级复杂SQL优化一例(数量级性能提升)
自从16年之后,因为工作原因,项目中就没有再使用oracle了,最近最近支持一个项目,又要开始负责这块事情了.最近在跑性能测试,配置全部调好之后,不少sql还存在性能低下的问题,主要涉及执行计划的不合 ...
- 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 ...
- day5-json和pickle序列化
一.json模块 序列化:把一个对象的形态改变一下,使他能够存放在文件中,或者在网络上传输,序列化也叫持久化,是把对象存储到永久介质中,这样就不会因为掉电而丢失. JSON (JavaScript O ...