hadoop2.0 HA高可用笔记和搭建流程
2015-12-15 18:27
791 查看
一:hadoop2.X 笔记
hadoop1.0中,HDFS存在的问题-NameNode单点故障
-NameNode压力过大、内存受限
MapReduce存在的问题 ---mapReduce 计算时间 比较长
JobStacker 访问压力大,影响系统的扩容性
在1.x中 不支持spark。storm
Hadoop2.x 由Hdfs、MapReduce和YARN三个分支构成:
HDFS:NN federation(联合会、联邦) 是两个独立的NameNode、HA
YARN:资源管理系统
MapReduce:运行在YARN上的计算框架、或者其它计算框架
HA(high Available) :NameNodes 中只有一个处于Active 状态,其他的处在Standby 状态。其中ActiveNameNode 负责集群中的所有客户端操作,StandbyNameNode 仅仅充当备机,保证一旦ActiveNameNode 出现问题能够快速切换
二:hadoop2.5.2 HA搭建流程
前面基本流程和hadoop1差不多,参考配置/article/8160989.html一个4台机器。指定节点如下:
一:解压之后。修改hadoop-env.sh和yarn-env.sh。指定JAVA_HOME
虽然默认配置了${JAVA_HOME}的环境变量,但是hadoop启动时,会提示找不到,没有办法,指定绝对路径,这个是必须的。
二:修改hdfs-site.xml
<property> <name>dfs.ha.namenodes.mycluster</name> <value>nn1,nn2</value> </property> <!--配置rpc协议的端口--> <property> <name>dfs.namenode.rpc-address.mycluster.nn1</name> <value>host1:8020</value> </property> <property> <name>dfs.namenode.rpc-address.mycluster.nn2</name> <value>host2:8020</value> </property> <!--配置http的端口--> <property> <name>dfs.namenode.http-address.mycluster.nn1</name> <value>host1:50070</value> </property> <property> <name>dfs.namenode.http-address.mycluster.nn2</name> <value>host2:50070</value> </property> <!--配置journalNode的 url地址--> <property> <name>dfs.namenode.shared.edits.dir</name> <value>qjournal://host2:8485;host3:8485;host4:8485/mycluster</value> </property> <!--配置客户端使用的一个类,配置失败自动切换实现方式--> <property> <name>dfs.client.failover.proxy.provider.mycluster</name> <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value> </property> <!-- 配置隔离机制--> <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> <!--配置journalnode 目录--> <property> <name>dfs.journalnode.edits.dir</name> <value>/opt/hadoop/journal/data</value> </property> <!-- 开启失败自动切换--> <property> <name>dfs.ha.automatic-failover.enabled</name> <value>true</value> </property> </configuration>
三:修改core-site.xml namenode配置
包括了 zookeeper的相关配置(host1,host2,host3作为zk节点,参考:/article/8161041.html),分别在
host1.host2,host3机器上启动zk。
<configuration> <!--配置hdfs的入口--> <property> <name>fs.defaultFS</name> <value>hdfs://mycluster</value> </property> <property> <!-- 设置hadoop的工作目录,默认在linux的tmp目录,linux的tmp目录,每次重启都清空,其它一些目录(hdfs)都是以这些目录为基本目录的--> <name>hadoop.tmp.dir</name> <value>/opt/hadoop/workdir</value> </property> <property> <name>ha.zookeeper.quorum</name> <value>host1:2181,host2:2181,host3:2181</value> </property> </configuration>
四:修改slaves 指定datanode
host2 host3 host4
五:这个时候可以先host2,host3,host4上启动journalnode
sbin/hadoop-daemon.sh start journalnode
六:在任何一台namenode集群机器上格式化(host1,host2)
bin/hdfs namenode -format
七:在已经启动的namenode节点上启动namenode
sbin/hadoop-daemon.sh start namenode
八:拷贝元数据到另外的 namenode上,在没有被格式化namenode的节点,同时启动查看
bin/hdfs namenode -bootstrapStandby
九:创建znode在zk上,在一个namenode上面
bin/hdfs zkfc -formatZK
十:这个时候重启服务
sbin/stop-dfs.sh
sbin/start-dfs.sh
如图,先启动namenode,datanode 然后启动journalnodes,最后启动zkfc ,每个namenode对应一个zkfc 。
jps 查看所有java进程,看是否节点状态正常
十一:配置MapReduce
mapred-set.xml和yarn-site.xml
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
<configuration> <!-- 指定nodemanager启动时加载server的方式为shuffle server --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!-- 指定resourcemanager地址 --> <property> <name>yarn.resourcemanager.hostname</name> <value>host1</value> </property> </configuration>
配置全部OK。这个时候可以启动 sbin/start-all.sh
相关文章推荐
- web网站防攻击策略
- Online网站集
- PHP登入网站抓取并且抓取数据
- 理解RESTful架构
- 原理分析之二:架构分析
- 【error 500】网站的Css,image,js load 不下来
- 基于微服务架构,改造企业核心系统之实践
- 大型网站架构系列:负载均衡详解(1)
- java后台怎么判断是手机还是电脑访问网站
- 项目:手机网民监测网站的收获与总结
- opencv处理函数记录_转自opencv中文网站
- 网站电脑访问没问题,手机访问跳到另一个网站(是个不良网站)
- 基于rails的schedule网站开发(13):用send 方法改写authenticated?(...)
- 测试架构师:软件架构模式之分层架构 2
- 测试架构师:软件架构模式之分层架构 1
- 架构之路(二):性能
- 手机网站的几点注意
- 架构之路(一):目标
- 网站的Information Architecture--构建一个最优用户体验的site structure
- 手机网站打电话链接等