hadoop2.x HDFS HA linux环境搭建
HDFS High Availability Using the Quorum Journal Manager
准备3台机器可以更多
| NN | DN | ZK | ZKFC | JN | RM | DM | |
| node1 | 1 | 1 | 1 | 1 | 1 | 1 | |
| node2 | 1 | 1 | 1 | 1 | 1 | 1 | |
| node3 | 1 | 1 | 1 | 1 | 1 |
一个NN对应一个ZKFC(FailoverController)
ZKFC为NN竞争锁,ZK采用投票机制,ZK需要奇数个
JN 元数据存储集群
修改hadoop配置文件
hadoop-env.sh
JAVA_HOME
hdfs-site.sh
<!-- 服务名 -->
<property>
<name>dfs.nameservices</name>
<value>mycluster</value>
</property>
<!-- 所有NameNode名 -->
<property>
<name>dfs.ha.namenodes.mycluster</name>
<value>nn1,nn2</value>
</property>
<!-- NameNode RPC协议 地址 -->
<property>
<name>dfs.namenode.rpc-address.mycluster.nn1</name>
<value>node1:8020</value>
</property>
<property>
<name>dfs.namenode.rpc-address.mycluster.nn2</name>
<value>node2:8020</value>
</property>
<!-- NameNode HTTP协议 地址 -->
<property>
<name>dfs.namenode.http-address.mycluster.nn1</name>
<value>node1:50070</value>
</property>
<property>
<name>dfs.namenode.http-address.mycluster.nn2</name>
<value>node2:50070</value>
</property>
<!-- JournalNode 地址 -->
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://node1:8485;node2:8485;node3:8485/mycluster</value>
</property>
<!-- JAVA 客户端访问使用类 -->
<property>
<name>dfs.client.failover.proxy.provider.mycluster</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<!-- ssh 私钥 地址 -->
<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property>
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/root/.ssh/id_rsa</value>
</property>
<!-- journalnode 工作目录 -->
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/opt/journal/node/data</value>
</property>
<!-- fail 后 自动切换 -->
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
core-site.xml
<!-- NameNode 入口 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://mycluster</value>
</property>
<!-- ZooKeeper 集群 -->
<property>
<name>ha.zookeeper.quorum</name>
<value>node1:2181,node2:2181,node3:2181</value>
</property>
<!-- hadoop 工作临时目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop2</value>
</property>
修改zookeeper配置文件
将conf/zoo_sample.cfg 改为 conf/zoo.cfg
cp zoo_sample.cfg zoo.cfg
dataDir=/opt/zookeeper
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888
手动创建dataDir目录
创建文件 myid
1/2/3
将zookeeper 配置到环境变量
启动 zkServer.sh start
配置完成后
1启动zookeeper zkServer.sh start 所有节点上都需启动
2启动 JN 在sbin目录下 ./hadoop-daemons.sh start journalnode 所有节点上都需启动
3在任何一个NN节点上格式化NN
在bin目录下 ./hdfs namenode -format
4将格式化后的元数据文件拷贝到其他 NN节点
先将格式化好的NN 启动 ./hadoop-daemon.sh start namenode
在没有格式化的NN节点上执行 ./hdfs namenode -bootstrapStandby
5成功后停止hadoop所有服务sbin下 ./stop-dfs.sh
6初始化zkfc 在其中一台NN节点上执行 bin目录下 ./hdfs zkfc -formatZK
7再一次全部启动 ./start-dfs.sh
hadoop2.x HDFS HA linux环境搭建的更多相关文章
- Linux环境下HDFS集群环境搭建关键步骤
Linux环境下HDFS集群环境搭建关键步骤记录. 介质版本:hadoop-2.7.3.tar.gz 节点数量:3节点. 一.下载安装介质 官网下载地址:http://hadoop.apache.or ...
- Hadoop2.5.0伪分布式环境搭建
本章主要介绍下在Linux系统下的Hadoop2.5.0伪分布式环境搭建步骤.首先要搭建Hadoop伪分布式环境,需要完成一些前置依赖工作,包括创建用户.安装JDK.关闭防火墙等. 一.创建hadoo ...
- 大数据:Hadoop(JDK安装、HDFS伪分布式环境搭建、HDFS 的shell操作)
所有的内容都来源与 Hadoop 官方文档 一.Hadoop 伪分布式安装步骤 1)JDK安装 解压:tar -zxvf jdk-7u79-linux-x64.tar.gz -C ~/app 添加到系 ...
- Hadoop-2.4.1完全分布式环境搭建
Hadoop-2.4.1完全分布式环境搭建 Hadoop-2.4.1完全分布式环境搭建 一.配置步骤如下: 主机环境搭建,这里是使用了5台虚拟机,在ubuntu 13系统上进行搭建hadoop ...
- HDFS 伪分布式环境搭建
HDFS 伪分布式环境搭建 作者:Grey 原文地址: 博客园:HDFS 伪分布式环境搭建 CSDN:HDFS 伪分布式环境搭建 相关软件版本 Hadoop 2.6.5 CentOS 7 Oracle ...
- Linux环境搭建-在虚拟机中安装Centos7.0
最近在空闲时间学习Linux环境中各种服务的安装与配置,都属于入门级别的,这里把所有的学习过程记录下来,和大家一起分享. 我的电脑系统是win7,所以我需要在win7上安装一个虚拟机-VMware,然 ...
- 【菜鸟学习Linux】-第三章- Linux环境搭建-使用VMware9安装Ubuntu 12.04系统
上一步,我们安装了VMware9虚拟机,现在我们就是用它来安装Ubuntu12.04系统,至于Ubuntu是什么,我就不废话了,大家google一下,比我讲的清楚,好了,开始干活! Ubuntu官网下 ...
- Windows及Linux环境搭建Redis集群
一.Windows环境搭建Redis集群 参考资料:Windows 环境搭建Redis集群 二.Linux环境搭建Redis集群 参考资料:Redis Cluster的搭建与部署,实现redis的分布 ...
- Linux(一)-- Linux环境搭建
Linux环境搭建 一.虚拟机安装 1.下载地址 https://my.vmware.com/web/vmware/info/slug/desktop_end_user_computing/vmwar ...
随机推荐
- Keras 获取中间某一层输出
1.使用函数模型API,新建一个model,将输入和输出定义为原来的model的输入和想要的那一层的输出,然后重新进行predict. #coding=utf-8 import seaborn as ...
- OpenStack视图
OpenStack视图 OpenStack视图是个全局资源的概念,统计了OpenStack所纳管资源的总量和使用量,因此OpenStack视图的资源通常又称为物理资源.OpenStack基于该资源使用 ...
- abp添加动态菜单
abp中MenuDefinition封装了导航栏上的主菜单的属性,MenuItemDefinition则封装了子菜单的属性,子菜单可以引用其他子菜单构成一个菜单树. MenuDefinitio成员如下 ...
- hyper发送表单数据
前言 某个美丽的下午,运维把服务器上的nginx升级了,http协议也变成了http2.0,我本地的requests再也连接不到服务器,然后就找到了额hyper 但是hyper的文档写的很简单,而且相 ...
- Java 8 特性 —— lambda 表达式
Lambda 表达式 Lambda表达式本质上是一个匿名方法.常见的一个例子是,在 IDEA + JDK8 的环境下按照Java传统的语法规则编写一个线程: new Thread(new Runnab ...
- MFC:编辑区 Edit 的属性及使用
Edit Control 编辑控件是 MFC 中使用较多的控件之一 1. Edit 的属性 Acccept Files -> True 控件接受拖放文件 Multiline -> True ...
- Java:IO流-流的操作规律和转换流
首先我们先来了解一些IO流基本知识. 一,基本知识概括 具体的IO流有很多种,针对不同的应用场景应该使用相应的流对象.但怎么确定应该使用哪个IO流对象呢? 一般要有四个明确: 1)明确源和目的 源:I ...
- .NET面试题系列(十八)常用关键字
序言 const和readonly关键字 private protected public internal的区别 out ref out适合用在需要retrun多个返回值的地方,而ref则用在需要 ...
- jenkins 自动化部署执行shell
# -*- coding:utf-8 _*-""" @author:Administrator @file: new_app_publish.py @time: 2018 ...
- Web开发常见安全问题
转载自: http://blog.csdn.net/fengyinchao/article/details/50775121 不是所有 Web 开发者都有安全的概念,甚至可能某些安全漏洞从来都没听说过 ...