文档章节

hadoop—ha搭建步骤

ie四叶草
 ie四叶草
发布于 2017/07/25 13:32
字数 1627
阅读 6
收藏 0
点赞 0
评论 0

1、hadoop高可用节点分布

  NN    DN    JN    ZK  ZKFC  RS  
node1
node2
node3
node4

2、关闭网络防火墙,时间同步,修改IP映射文件

# 关闭网络防火墙
service iptables stop
#Cenos使用:systemctl stop firewalld.service && systemctl disable firewalld.service

# 时间同步,集群中的所有时间要保持一致
sudo apt-get install ntp
ntpdate -u s1b.time.edu.cn

'#修改映射文件,hosts文件位置在:/etc/hosts

sudo vi /etc/hosts

ip1 node1
ip2 node2
ip3 node3

3、安装JDK

'#上传JDK:jdk-8u131-linux-i586.tar.gz,解压,解压命令:
tar -zxvf jdk-8u131-linux-i586.tar.gz

#配置环境变量,修改/etc/profile文件
sudo vi /etc/profile

#在文件后加入以下命令:
export JAVA_HOME=/usr/local/jdk1.8.0_131
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH

4、设置免秘钥登录

# node1需要免密钥登录到node2 、3、4,node2需要免密要登录到node1,node3,node4,
#先设置4台机器本机免秘钥登录,即ssh localhost

#生成公钥,并将公钥追加到认证文件中
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

#将node1,和node2的公钥文件复制到需要免密要登录的机器上,再将此文件追加到各自的认证文件中
#例:在node1复制公钥文件到node2,后面以此类推
scp ~/.ssh/id_dsa.pub node2:/home

''#在node2上追加node1的公钥文件到认证文件中
cat /home/id_dsa.pub >> ~/.ssh/authorized_keys

5、修改配置文件

**********************************************************************
(1)上传解压,配置环境变量
#在node1-4上上传hadoop包hadoop-2.6.1.tar.gz,在node1-3上传zookeeper-3.4.6.tar.gz然后各自机器分别解压:
tar -zxvf hadoop-2.6.1.tar.gz
tar -zxvf zookeeper-3.4.6.tar.gz

#配置hadoop与zookeeper环境变量,修改/etc/profile文件,配置zookeeper环境变量在node1-3,配置hadoop环境变量在node1-4
sudo vi /etc/profile

export HADOOP_HOME=/srv/opt/hadoop-2.6.1
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin 
export ZOOKEEPER_HOME=/srv/opt/zookeeper-3.4.6
export PATH=$PATH:$ZOOKEEPER_HOME/bin


#是配置文件生效
source /etc/profile


****************************************************************************************
(2)修改zookeeper配置文件,配置zookeeper
#以下在node1上修改配置文件
#修改zookeeper配置文件,进入zookeeper配置文件目录:zookeeper-3.4.6/conf/,
#将zoo_sample.cfg重命名为zoo.cfg,修改zoo.cfg文件
vi zoo.cfg

#配置zookeeper文件存放目录
dataDir=/opt/zookeeper

#配置zookeeper集群节点位置,node1-3,添加以下命令:
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888

#在刚刚配置的zookeeper文件存放目录创建myid文件,进入/opt/
mkdir zookeeper
cd zookeeper
vi myid#目前在node1上配置,myid文件中写入1,与配置文件zoo.cfg对应,node2,node3中对应要写如2,3
1


#将node1中zookeeper配置文件copy到node2,3的zookeeper配置文件目录中
scp   /srv/opt/zookeeper-3.4.6/conf/*   node2:srv/opt/zookeeper-3.4.6/conf/
scp   /srv/opt/zookeeper-3.4.6/conf/*   node3:srv/opt/zookeeper-3.4.6/conf/

#在node2,3上/opt/目录中新建zookeeper文件夹,在此文件夹中新建myid文件分别写入2,3


****************************************************************************************
(3)修改hadoop配置文件
#进入hadoop配置文件目录:hadoop-2.6.1/etc/hadoop/,修改hadoop-env.sh,更改JAVA_HOME路径
vi hadoop-env.sh

export JAVA_HOME=/srv/opt/jdk1.8.0_131

#修改hdfs-site.xml
vi  hdfs-site.xml


<configuration>
<property>
  <name>dfs.nameservices</name>
  <value>zzu</value>#指定nameservices名字
</property>
<property>
  <name>dfs.ha.namenodes.zzu</name>#与指定nameservices名字相同
  <value>nn1,nn2</value>#两台namenode的别名
</property>
<property>#指定两台namenode的rpc访问路径,注意对应nameservices名字,和各自的namenode别名
  <name>dfs.namenode.rpc-address.zzu.nn1</name>
  <value>node1:8020</value>
</property>
<property>
  <name>dfs.namenode.rpc-address.zzu.nn2</name>
  <value>node2:8020</value>
</property>
<property>#指定两台namenode的http访问路径,注意对应nameservices名字,和各自的namenode别名
  <name>dfs.namenode.http-address.zzu.nn1</name>
  <value>node1:50070</value>
</property>
<property>
  <name>dfs.namenode.http-address.node2.nn2</name>
  <value>node2:50070</value>
</property>
<property>#指定JN集群,node2--4,注意分号进行分割
  <name>dfs.namenode.shared.edits.dir</name>
  <value>qjournal://node2:8485;node3:8485;node4:8485/zzu</value>
</property>
<property>#故障迁移代理,注意对应nameservices名字
  <name>dfs.client.failover.proxy.provider.zzu</name>
  <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<property>#指定ssh方式登录
  <name>dfs.ha.fencing.methods</name>
  <value>sshfence</value>
</property>
<property>#配置ssh私钥文件位置,免密要登录生成的私钥文件位置
  <name>dfs.ha.fencing.ssh.private-key-files</name>
  <value>/home/zzu/.ssh/id_dsa</value>
</property>
<property>#配置edits文件存放目录,/journal/data目录是空目录,或者是不存在
  <name>dfs.journalnode.edits.dir</name>
  <value>/opt/journal/data</value>
</property>
</configuration>


#修改core-site.xml文件
vi core-site.xml

<configuration>
<property>#配置hdfs访问路径,nameservices名字,与 hdfs-site.xml文件中的nameservices对应
  <name>fs.defaultFS</name>
  <value>hdfs://zzu</value>
</property>
<property>#配置hdfs文件存放路径
  <name>hadoop.tmp.dir</name>
  <value>/opt/hadoop</value>
</property>
</configuration>


**********************************************************************
(4)启动zookeeper
#在node1-3上同时启动zookeeper
zkServer.sh  start
#查看zookeeper状态可以用下面命令,看是否启动,两台机器上显示Mode:follow,一台显示Mode:leader (启动正常)
zkServer.sh  status


**********************************************************************
(5)进入hadoop配置文件目录:hadoop-2.6.1/etc/hadoop/
#修改hdfs-site.xml
vi hdfs-site.xml

#在其中追加一下配置,启动故障自动迁移
<property>
   <name>dfs.ha.automatic-failover.enabled</name>
   <value>true</value>
</property>

#修改core-sit.xml,追加配置:
<property>
   <name>ha.zookeeper.quorum</name>
   <value>node1:2181,node2:2181,node3:2181</value>
</property>

#最后同步hadoop配置文件,从node1到node2-4
scp  /srv/opt/hadoop-2.6.1/etc/hadoop/   node2: /srv/opt/hadoop-2.6.1/etc/hadoop/ 
scp  /srv/opt/hadoop-2.6.1/etc/hadoop/   node3: /srv/opt/hadoop-2.6.1/etc/hadoop/ 
scp  /srv/opt/hadoop-2.6.1/etc/hadoop/   node4: /srv/opt/hadoop-2.6.1/etc/hadoop/ 


6、在node2-4上分别启动JN

#启动命令:
hadoop-daemon.sh  start   journalnode

7、格式化NN

#在其中一台namenode节点上执行,例:在node1上执行
hdfs namenode -format

#在node1上其中namenode,执行以下命令:
hadoop-daemon.sh  start  namenode

#在另一台namenode(node2)上执行以下命令,同步namenode1的格式化文件
hdfs namenode -bootstrapStandby

8、格式化zookeeper

#在其中一台namenode上执行,例:在node1上执行
hdfs zkfc -formatZK

9、启动dfs

#先停止node1的namenode
hadoop-daemon.sh  stop  namenode

#启动dfs
 start-dfs.sh

#配置完成后,如需要重启集群:
stop-dfs.sh
#在node1-3上启动zookeeper
zkServer.sh  start
#在执行:
 start-dfs.sh

###10、配置mapReduce

#先停止集群运行
stop-dfs.sh
zkServer.sh stop


**********************************************************************************
#在node1上,进入进入hadoop配置文件目录:hadoop-2.6.1/etc/hadoop/
#将mapred-site.xml.template重命名mapred-site.xml
vi mapred-site.xml

#mapReduce运行在yarn上
<configuration>
<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>
</configuration>


******************************************************************************
#修改yarn-site.xml文件
vi  yarn-site.xml

<configuration>
 <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
 </property>
 <property>#设置resourcemanager高可用
   <name>yarn.resourcemanager.ha.enabled</name>
   <value>true</value>
 </property>
 <property>#设置resourcemanage  id
   <name>yarn.resourcemanager.cluster-id</name>
   <value>zzu2yarn</value>
 </property>
 <property>#设置两个resourcemanage 的别名
   <name>yarn.resourcemanager.ha.rm-ids</name>
   <value>rm1,rm2</value>
 </property>
 <property>#设置两个resourcemanage的所在节点
   <name>yarn.resourcemanager.hostname.rm1</name>
   <value>node3</value>
 </property>
 <property>
   <name>yarn.resourcemanager.hostname.rm2</name>
   <value>node4</value>
 </property>
 <property>#设置resourcemanage的所在zookeeper集群节点
   <name>yarn.resourcemanager.zk-address</name>
   <value>node1:2181,node2:2181,node3:2181</value>
 </property>
</configuration>

**************************************************************************
#同步配置文件
scp  ./*.xml  node2:/srv/opt/hadoop-2.6.1/etc/hadoop/
scp  ./*.xml  node3:/srv/opt/hadoop-2.6.1/etc/hadoop/
scp  ./*.xml  node4:/srv/opt/hadoop-2.6.1/etc/hadoop/

11、启动集群

#同时在node1-3上启动zookeeper
zkServer.sh  start

#在任意一台机器上启动hadoop集群,例:在node1
start-all.sh

#在node3,4上分别启动ResourcesManager
yarn-daemon.sh start resourcemanager

# jps 查看集群后台进程

© 著作权归作者所有

共有 人打赏支持
ie四叶草
粉丝 0
博文 46
码字总数 25397
作品 0
郑州
Hadoop-2.6.0集群搭建(多机环境HDFS HA+YARN HA,推荐)

搭建 HDFS HA 和 ResourceManager HA 集群 下载Hadoop: http://hadoop.apache.org/releases.html 集群规划 HDFS HA说明 Hadoop 2.x中通常由两个NameNode组成,一个处于Active状态,另一个处...

翻船全靠浪 ⋅ 2016/04/25 ⋅ 0

大数据Hadoop需要了解哪些内容?

一、Hadoop环境搭建 1. Hadoop生态环境介绍 2. Hadoop云计算中的位置和关系 3. 国内外Hadoop应用案例介绍 4. Hadoop概念、版本、历史 5. Hadoop核心组成介绍及hdfs、mapreduce体系结构 6. H...

mo默瑶 ⋅ 05/05 ⋅ 0

hadoop2.6 HA部署

因为需要部署spark环境,特意重新安装了一个测试的hadoop集群,现将相关步骤记录如下: 硬件环境:四台虚拟机,hadoop1~hadoop4,3G内存,60G硬盘,2核CPU 软件环境:CentOS6.5,hadoop-2.6....

alexanda2000 ⋅ 2016/12/25 ⋅ 0

Hadoop HA重做 Standby

错误现象,刚开始 namenode log一直刷以下错误信息: 2014-01-27 17:55:59,388 WARN resources.ExceptionHandler (ExceptionHandler.java:toResponse(92)) - INTERNALSERVERERROR 后面与此文......

cwalet ⋅ 2016/05/24 ⋅ 0

(13)HBase 1.2.6 集群部署

1.引言 在前面的博客中我们介绍的伪分布安装,在本篇博客中就主要介绍一下的集群部署,由于是一款之上的数据库,因此我们在安装之前需要首先部署的集群,其次需要使用进行管理,因此我们也需...

LoveCarpenter ⋅ 2017/12/15 ⋅ 0

HBase1.2.6集群部署教程

1.引言 在前面的博客中我们介绍HBase的伪分布安装,在本篇博客中就主要介绍一下HBase的集群部署,由于HBase是一款Hadoop之上的NoSQL数据库,因此我们在安装HBase之前需要首先部署Hadoop的集群...

Liri ⋅ 2017/12/16 ⋅ 0

Hadoop手把手逐级搭建,从单机伪分布到高可用+联邦(4)Hadoop高可用+联邦(HA+Federation)

第四阶段: Hadoop高可用+联邦(HA+Federation) 0. 步骤概述 1. 为高可用保存hadoop配置 1.1 进入$HADOOP_HOME/etc/目录 1.2 备份hadoop高可用配置,供以后使用 1.3 查看$HADOOP_HOME/etc/目录...

bigablecat ⋅ 01/05 ⋅ 0

Hadoop双namenode配置搭建(HA)

配置双namenode的目的就是为了防错,防止一个namenode挂掉数据丢失,具体原理本文不详细讲解,这里只说明具体的安装过程。 Hadoop HA的搭建是基于Zookeeper的,关于Zookeeper的搭建可以查看这...

Trigl ⋅ 2017/02/14 ⋅ 0

Hadoop手把手逐级搭建,从单机伪分布到高可用+联邦(0): 概述

概述 1. 目标 2. 工具及版本 3. 四个阶段 1). 第一阶段:Hadoop单机伪分布(single) 2). 第二阶段:Hadoop完全分布式(full) 3). 第三阶段:Hadoop高可用(HA) 4). 第四阶段:Hadoop高可用+联邦...

bigablecat ⋅ 01/07 ⋅ 0

企业级Hadoop2.3.0完全分布式集群的搭建

***面向生产环境的大集群模式重新安装实施Hadoop,要求 1)使用DNS而不是hosts文件解析主机名 2)使用NFS共享密钥文件,而不是逐个手工拷贝添加密钥 3)复制Hadoop时使用批量拷贝脚本而不是逐...

灯下黑鬼吹灯 ⋅ 2016/12/13 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

vue-cli是什么?

vue-cli是什么? vue-cli 是vue.js的脚手架,用于自动生成vue.js+webpack的项目模板,分为vue init webpack-simple 项目名 和vue init webpack 项目名 两种。 当然首先你的安装vue,webpack...

韦姣敏 ⋅ 22分钟前 ⋅ 0

12c rman中输入sql命令

12c之前版本,要在rman中执行sql语句,必须使用sql "alter system switch logfile"; 而在12c版本中,可以支持大量的sql语句了: 比如: C:\Users\zhengquan>rman target / 恢复管理器: Release 1...

tututu_jiang ⋅ 28分钟前 ⋅ 0

java 线程池

概述 减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务 可以根据系统的承受能力,调整线程池中工作线线程的数目,防止因为因为消耗过多的内存,而把服务器累趴下(...

轨迹_ ⋅ 33分钟前 ⋅ 0

Nginx的https配置记录以及http强制跳转到https的方法梳理

Nginx的https配置记录以及http强制跳转到https的方法梳理 一、Nginx安装(略) 安装的时候需要注意加上 --with-httpsslmodule,因为httpsslmodule不属于Nginx的基本模块。 Nginx安装方法: ...

Yomut ⋅ 45分钟前 ⋅ 0

SpringCloud Feign 传递复杂参数对象需要注意的地方

1.传递复杂参数对象需要用Post,另外需要注意,Feign不支持使用GetMapping 和PostMapping @RequestMapping(value="user/save",method=RequestMethod.POST) 2.在传递的过程中,复杂对象使用...

@林文龙 ⋅ 46分钟前 ⋅ 0

如何显示 word 左侧目录大纲

打开word说明文档,如下图,我们发现左侧根本就没有目录,给我们带来很大的阅读障碍 2 在word文档的头部菜单栏中,切换到”视图“选项卡 3 然后勾选“导航窗格”选项 4 我们会惊奇的发现左侧...

二营长意大利炮 ⋅ 50分钟前 ⋅ 0

智能合约编程语言Solidity之线上开发工具

工具地址:https://ethereum.github.io/browser-solidity/ 实例实验: 1.创建hello.sol文件 2.调试输出结果

硅谷课堂 ⋅ 51分钟前 ⋅ 0

ffmpeg 视频格式转换

转 Mp4 格式 #> ffmpeg -i input.avi -c:v libx264 output.mp4#> ffmpeg -i input.avi -c:v libx264 -strict -2 output.mp4#> ffmpeg -i input.avi -c:v libx264 -strict -2 -s 1......

Contac ⋅ 今天 ⋅ 0

VCS仿真生成vpd文件(verilog)

VCS仿真生成vpd文件(verilog): https://www.cnblogs.com/OneFri/p/5987673.html SYNOPSYS VCS常用命令使用详解 https://blog.csdn.net/hemmingway/article/details/49382551 DVE是synopsys公......

whoisliang ⋅ 今天 ⋅ 0

Spring Boot启动配置原理

几个重要的事件回调机制 配置在META-INF/spring.factories ApplicationContextInitializer SpringApplicationRunListener 只需要放在ioc容器中 ApplicationRunner CommandLineRunner 启动流程......

小致dad ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部