hadoop-ha配置

HADOOP HA配置

hadoop2.x的ha配置,此文档中描述有hdfs与yarn的ha配置。

此文档的假定条件是zk已经安装并配置完成,其实也没什么安装的。

hdfs ha配置

首先,先配置core-site.xml配置文件:

<property>

在老版本中使用mr1时,还可能使用fs.default.name来进行配置

<name>fs.defaultFS</name>

此处配置的mycluster目前还没有定义,我们需要记住这个值,

这个表示此namenode的nameServiceId,在hdfs-site中定义,此处进行引用

<value>hdfs://mycluster</value>

</property>

接下来,配置当namenode发生切换时的检查方法,当NAMENODE切换时,

需要检查并确保只有一个active节点。

因此会通过SHELL或SSH的方式过去强制中止或执行检查

<property>
  <name>dfs.ha.fencing.methods</name>
此处的可配置值sshfence/shell
  <value>sshfence</value>
</property>
 
<property>
  <name>dfs.ha.fencing.ssh.private-key-files</name>
  <value>/root/.ssh/id_rsa</value>
</property>

配置ha连接的zk的连接地址,

<property>
  <name>ha.zookeeper.quorum</name>
  <value>one.cluster:2181,two.cluster:2181,three.cluster:2181</value>
</property>

还可以有如下几个配置:

ha.zookeeper.session-timeout.ms,zk的session超时时间,默认是5000ms

ha.zookeeper.parent-znode,hdfs的ha在zk上的存储路径 ,默认是/hadoop-ha

接下来对hdfs-site.xml进行配置

定义上面提到过的nameserviceid的值,

<property>
  <name>dfs.nameservices</name>
此处对当前配置的ha的nameserviceid进行定义,此处的mycluster中间不能使用"_"线
  <value>mycluster</value>
</property>

接下来定义nameserviceid中需要使用到的namenode的id,

<property>
  <name>dfs.ha.namenodes.mycluster</name>
此处定义了两个namenode的id,也就是需要配置两具namenode,id分别是nn1与nn2
  <value>nn1,nn2</value>
</property>

在定义完成需要的namenode id后,

需要针对每一个namenode,定义其相关的rpc,http地址。

如果有启用https,还需要设置https-address

此处的配置通过nameserviceid.namenodeid来进行配置。

<property>
  <name>dfs.namenode.rpc-address.mycluster.nn1</name>
  <value>one.cluster:8020</value>
</property>
<property>
  <name>dfs.namenode.rpc-address.mycluster.nn2</name>
  <value>two.cluster:8020</value>
</property>
<property>
  <name>dfs.namenode.http-address.mycluster.nn1</name>
  <value>one.cluster:50070</value>
</property>
<property>
  <name>dfs.namenode.http-address.mycluster.nn2</name>
  <value>two.cluster:50070</value>
</property>

接下来配置namenode edits的共享存储,在这里使用QJM来进行配置:

qjm是一个很轻量的进程,可以直接部署到namenode或datanode中。

qjm的默认rpc端口是8485,默认http端口是8480,

可通过配置dfs.journalnode.rpc-address,dfs.journalnode.http-address来修改端口。

qjm必须配置为单数个(N),可以保证在(N-1)/2个正常运行时,能够正常提供服务。

<property>
  <name>dfs.namenode.shared.edits.dir</name>
  <value>qjournal://one.cluster:8485;two.cluster:8485;three.cluster:8485/mycluster</value>
</property>

配置QJM的存储路径 :

<property>
  <name>dfs.journalnode.edits.dir</name>
  <value>/data/1/dfs/jn</value>
</property>

设置针对此nameserviceid的客户端代理:

client请求时通过nameserviceid来做请求,

nameserviceid解析出对应的active namenode就通过此配置中的java类来完成。

<property>
  <name>dfs.client.failover.proxy.provider.mycluster</name>
  <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>

接下来配置namenode的自动故障转换。

<property>
  <name>dfs.ha.automatic-failover.enabled</name>
  <value>true</value>
</property>

把配置文件 复制到所有的节点中。这个不能忘呀。

在配置有QJM的节点中启动QJM.

进入hadooop_home/sbin目录

./hadoop-daemon.sh start journalnode

进入hadoop_home/bin目录下,执行./hdfs zkfc -formatZK在zk上进行格式化

对namenode进行format操作:

进入hadoop_home/bin目录,并执行如下命令

执行./hadoop namenode -format -clusteridhacluster命令。

./hdfs namenode-initializeSharedEdits

接下来启动主的namenode, 进入hadooop_home/sbin目录,执行如下命令

./hadoop-daemon.sh start namenode

赶往standby的namenode节点,

进入hadoop_home/bin目录,执行如下命令:

./hdfs namenode -bootstrapStandby

启动standby 的namenode,进入hadooop_home/sbin目录,执行如下命令

./hadoop-daemon.sh start namenode

接下来启动各个datanode节点。

./hadoop-daemon.sh start datanode

最后一步,启动zkfc,自动切换namenode节点的服务。

因为此时两个namenode都是standby的状态,需要启动zkfc来实现切换。

在主namenode与standby的namenode中进行hadoop_home/sbin目录。并执行如下命令

./hadoop-daemon.sh start zkfc

the end.

YARN RM的HA配置

配置yarn中resourcemanager的HA只有在hadoop2.3.x后才引进,

yarn的ha配置相对简单,直接配置yarn-site.xml文件

<property>
rm连接失败的重试间隔
    <name>yarn.resourcemanager.connect.retry-interval.ms</name>
    <value>2000</value>
  </property>
<property>
是否启用ha配置,默认是false.
    <name>yarn.resourcemanager.ha.enabled</name>
    <value>true</value>
  </property>
<property>
启动自动故障转移,默认为false
    <name>yarn.resourcemanager.ha.automatic-failover.enabled</name>
    <value>true</value>
  </property>
<property>
启用一个内嵌的故障转移,与ZKRMStateStore一起使用。
    <name>yarn.resourcemanager.ha.automatic-failover.embedded</name>
    <value>true</value>
  </property>
<property>
    <name>yarn.resourcemanager.cluster-id</name>
    <value>rm-cluster</value>
  </property>
<property>
    <name>yarn.resourcemanager.ha.rm-ids</name>
    <value>rm1,rm2</value>
  </property>
<property>
配置当前的rm节点,这个地方要注意,在rm1这个机器上时,配置为rm1
在rm2这台机器上时,需要配置为rm2.它们之间通过zk来实现active操作
    <name>yarn.resourcemanager.ha.id</name>
    <value>rm1</value>
  </property>
<property>
    <name>yarn.resourcemanager.recovery.enabled</name>
    <value>true</value>
  </property>
<property>
HA时,RMStateStore需要配置为这个值。
    <name>yarn.resourcemanager.store.class</name>
 <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
  </property>
<property>
配置与zk的连接地址
    <name>yarn.resourcemanager.zk.state-store.address</name>
    <value>localhost:2181</value>
  </property>
<property>
  <name>yarn.resourcemanager.zk-address</name>
  <value>localhost:2181</value>
</property>
<!-- RM1 configs -->
  <property>
    <name>yarn.resourcemanager.address.rm1</name>
    <value>host1:23140</value>
  </property>
  <property>
    <name>yarn.resourcemanager.scheduler.address.rm1</name>
    <value>host1:23130</value>
  </property>
  <property>
    <name>yarn.resourcemanager.webapp.https.address.rm1</name>
    <value>host1:23189</value>
  </property>
  <property>
    <name>yarn.resourcemanager.webapp.address.rm1</name>
    <value>host1:23188</value>
  </property>
  <property>
    <name>yarn.resourcemanager.resource-tracker.address.rm1</name>
    <value>host1:23125</value>
  </property>
  <property>
    <name>yarn.resourcemanager.admin.address.rm1</name>
    <value>host1:23141</value>
  </property>
<!-- RM2 configs -->
  <property>
    <name>yarn.resourcemanager.address.rm2</name>
    <value>host2:23140</value>
  </property>
  <property>
    <name>yarn.resourcemanager.scheduler.address.rm2</name>
    <value>host2:23130</value>
  </property>
  <property>
    <name>yarn.resourcemanager.webapp.https.address.rm2</name>
    <value>host2:23189</value>
  </property>
  <property>
    <name>yarn.resourcemanager.webapp.address.rm2</name>
    <value>host2:23188</value>
  </property>
  <property>
    <name>yarn.resourcemanager.resource-tracker.address.rm2</name>
    <value>host2:23125</value>
  </property>
  <property>
    <name>yarn.resourcemanager.admin.address.rm2</name>
    <value>host2:23141</value>
  </property>
 
 

启动yarn的各节点,

在主的resourcemanager与standby的resourcemanager中执行

yarn-daemon.sh start resourcemanager

在nodemanager中执行

yarn-daemon.sh start nodemanager

hadoop-ha配置,布布扣,bubuko.com

时间: 2024-10-26 15:31:04

hadoop-ha配置的相关文章

Spark 在Hadoop HA下配置HistoryServer问题

我的Spark机群是部署在Yarn上的,因为之前Yarn的部署只是简单的完全分布式,但是后来升级到HA模式,一个主NN,一个备NN,那么Spark HistoryServer的配置也需要相应的做修改,因为不做修改会报错 Exception in thread "main" java.lang.reflect.InvocationTargetException at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native

Hadoop 配置及hadoop HA 的配置

注:本文中提到的ochadoop 不要感到奇怪,是亚信公司内部自己合成的一个包,把所有的组件都放在一个包内了,免去了组件的下载过程和解决兼容问题,其实也可以自己下载的,不要受到影响. 另,转载请注明出处,谢谢 修改静态IP和hostname 在 /etc/sysconfig/network-scripts/ifcfg-eth0配置IPADDR地址 运行以下命令生效 service network restart 在/etc/sysconfig/network中配置hostname配置完成后重启生

Hadoop HA HDFS启动错误之org.apache.hadoop.ipc.Client: Retrying connect to server问题解决

近日,在搭建Hadoop HA QJM集群的时候,出现一个问题,如本文标题. 网上有很多HA的博文,其实比较好的博文就是官方文档,讲的已经非常详细.所以,HA的搭建这里不再赘述. 本文就想给出一篇org.apache.hadoop.ipc.Client: Retrying connect to server错误的解决的方法. 因为在搜索引擎中输入了错误问题,没有找到一篇解决问题的.这里写一篇备忘,也可以给出现同样问题的朋友一个提示. 一.问题描述 HA按照规划配置好,启动后,NameNode不能

hadoop HA 详解

NameNode 高可用整体架构概述 在 Hadoop 1.0 时代,Hadoop 的两大核心组件 HDFS NameNode 和 JobTracker 都存在着单点问题,这其中以 NameNode 的单点问题尤为严重.因为 NameNode 保存了整个 HDFS 的元数据信息,一旦 NameNode 挂掉,整个 HDFS 就无法访问,同时 Hadoop 生态系统中依赖于 HDFS 的各个组件,包括 MapReduce.Hive.Pig 以及 HBase 等也都无法正常工作,并且重新启动 Nam

使用Nginx+Lua代理Hadoop HA

一.Hadoop HA的Web页面访问 Hadoop开启HA后,会同时存在两个Master组件提供服务,其中正在使用的组件称为Active,另一个作为备份称为Standby,例如HDFS的NameNode.YARN 的ResourceManager.HDFS的web页面只有通过Active的NameNode才能正常访问,同样地,YARN的web页面也只有通过Active的ResouceManager才能正常访问. (1) HDFS HA的Web访问 正常使用Nginx的proxy_pass代理单

Hadoop2 NameNode HA配置

Hadoop2 NameNode HA配置 Hadoop2 官方提供了两种NameNode HA的实现方式,分别基于QJM和NFS,这里以基于QJM的HDFS HA为例. 实验环境 系统版本:CentOS release 6.4 (Final) Hadoop版本:Apache Hadoop2.5.1 Hive版本:Hive 0.13.1 IP列表 IP Hostname NameNode DataNode RM NodeManager JournalNode 192.168.20.54 had1

hadoop(四):配置参数

hadoop参数配置,主要是配置 core-site.xml,hdfs-site.xml,mapred-site.xml 三个配置文件,core-site.xml是全局配置,hdfs-site.xml和mapred-site.xml分别是hdfs和mapred的局部配置,core-default.xml,hdfs-default.xml,mapred-default.xml 是集群的默认配置,HDP2.4 安装包中 hadoop 版本为2.7,分别可从下面的地址获取到默认的参数说明: core-

Hadoop HA高可用集群搭建(2.7.2)

1.集群规划: 主机名        IP                安装的软件                            运行的进程 drguo1  192.168.80.149 jdk.hadoop                         NameNode.DFSZKFailoverController(zkfc).ResourceManager drguo2 192.168.80.150  jdk.hadoop                         Nam

hadoop-2.2.0 HA配置

采用的是4台真实机器: namenode:qzhong  node27 datanode:qzhong node27 node100 node101 操作系统环境:qzhong(Ubuntu-14.0) node27.node100.node101(CentOS 64bits) HA配置方式:采用的是journalNode方式,而不是采用NFS方式 hdfs-site.xml: <?xml version="1.0" encoding="UTF-8"?>

Hadoop HA + HBase环境搭建(一)————zookeeper和hadoop环境搭建

版本信息: Hadoop 2.6.3 HBase 1.0.3 JDK 1.8 Zookeeper 3.4.9 集群信息: RDFMaster 192.168.0.41 (Hadoop主节点,zk节点,HBase主节点) RDFSlave01 192.168.0.42 (Hadoop备份主节点,从节点,zk节点,HBase的RegionServer) RDFSlave02 192.168.0.43 (从节点,zk节点,HBase的RegionServer) RDFSlave03 192.168.0