Hadoop HA
来源:互联网 发布:c语言用什么软件编写好 编辑:程序博客网 时间:2024/05/22 13:42
namenode
SPOF : single point of failure.可靠性问题。
secondary nn
fail over,容灾。
去OIE
oracleibmemc //
HA
high availability.,高可用性。2NN持续提供服务的能力。 99.999%
NFS
network filesystem .
QJM
Quorum Journal Manager .背景:运行2个名称节点,分别是active(活跃)/standby(待命),快速容灾。
HA架构
两个节点,任意时刻,只有一个处理active状态。所有的client操纵都和active nn交互,standby节点维护足够多的active的状态以备快速容灾。为了standby节点和active节点保持同步,两者都能访问共享存储目录。active节点做的修改会立即保存到共享存储目录log中,standby一直观察共享存储目录更新自己的空间。容灾时,standby节点切换到active态之前,从共享存储目录读取所有的edit。确保状态和之前是一致的。datanode需要配置两个nn,同时向两者报告信息(块位置信息和心跳信息)。为防止脑裂(两个nn都是active态),需要为共享存储配置一个保护方法。容灾时,如果无法验证之前的active nn是否放弃了active状态,保护过程切断对共享存储的访问,防止对namespace的修改,允许新节点进行安全容灾。
硬件资源
1.两个NN 两个节点的主机配置相同。2.共享存储 两个NN之间需要有共享目录,都可进行读写操作。3.JournalNode machines 运行JournalNodes节点的主机,该进程是轻量级。收集hadoop其他进程信息,比如RM、NN或jobtracker。 注意至少配置3个该节点主机。容灾策略是允许(n - 1 / 2).在ha模式下,standby节点执行namespace的检查点操作。没必要运行2nn。
deploy
[配置概览]需要使用nameservice指定配置逻辑名,该名称下添加具体的namenode的信息。[准备]s104生成公私秘钥,追加公钥到所有主机的认证库中。[配置细节]1.hdfs-site.xml
<property> <name>dfs.nameservices</name> <value>mycluster</value> </property> <property> <name>dfs.ha.namenodes.mycluster</name> <value>nn1,nn2</value> </property> <property> <name>dfs.namenode.rpc-address.mycluster.nn1</name> <value>s100:8020</value> </property> <property> <name>dfs.namenode.rpc-address.mycluster.nn2</name> <value>s104:8020</value> </property> <property> <name>dfs.namenode.http-address.mycluster.nn1</name> <value>s100:50070</value> </property> <property> <name>dfs.namenode.http-address.mycluster.nn2</name> <value>s104:50070</value> </property> <property> <name>dfs.namenode.shared.edits.dir</name> <value>qjournal://s101:8485;s102:8485;s103: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 shell(/bin/true) </value> </property> <property> <name>dfs.ha.fencing.ssh.private-key-files</name> <value>/home/centos/.ssh/id_rsa</value> </property> <property> <name>dfs.journalnode.edits.dir</name> <value>/home/centos/hadoop/full/dfs/journal</value> </property>
[core-site.xml] <property> <name>fs.defaultFS</name> <value>hdfs://mycluster</value> </property>
[部署细节]
1.在JN节点启动JN进程。
s101 ~ s103
$>hadoop-daemon.sh start journalnode
2.两个NN上进行disk元数据的同步 2.1)如果全新搭建hdfs集群,需要在其中的一个nn上执行format命令 2.2)如果是从非HA转换成HA模式,需要将原NN的元数据复制到新NN的本地目录。 [s100] $>scp -r ~/hadoop/full centos@s104:/homec/centos/hadoop/ 在104主机上执行以下命令,该命令确保JN节点有足够多的edits文件。 hdfs namenode -bootstrapStandby s104,转换非HA到ha,执行初始化edit命令。 hdfs namenode -initializeSharedEdits 2.3)启动两个nn 启动104 2.4)查看webui,状态。
管理命令
$>hadoop archive -archiveName my.har -p /user/centos /user/out
使用har:///方式查看归档文件内容
hdfs dfs -ls har:///user/out/my.har
hdfs dfs -cat har:///user/out/my.har/hello.txt
处理大量小文件
1.使用CombineInputFormat2.使用hadoop的归档 2.1)需要启用YARN start-yarn.sh 2.2)运行归档命令 hadoop archive -archiveName my.har -p /user/centos/data /user/centos 2.3)查看归档文件 //查看列表 hdfs dfs -ls har:///user/out/my.har //查看指定文件 hdfs dfs -cat har:///user/out/my.har/1.txt3.使用sequenceFile 将大量小文件写入到sequencefile中,可切割。MR
如果JN出现缝隙之后
1.停止集群2.删除JN节点的本地数据 [s100] $>xcall.sh "rm -rf /home/centos/hadoop/full/dfs/journal"3.启动JN进程 s101 ~ s103 $>hadoop-daemon.sh start journalnode4.初始化日志,在nn中的一个节点上执行即可。本质上是拷贝过程。 $>hdfs namenode -initializeSharedEdits5.分别启动进程
[namenode s100] $>hadoop-daemon.sh start namenode [namenode s104] $>hadoop-daemon.sh start namenode [datanode] $>hadoop-daemons.sh start datanode
HA管理命令
//切换状态 hdfs haadmin -transitionToActive nn1 hdfs haadmin -transitionToStandby nn1 //容灾演练 hdfs haadmin -failover --forceactive nn1 nn2 //脑裂 hdfs haadmin -transitionToActive nn1 //查看nn状态 hdfs haadmin -getServiceState nn1
阅读全文
0 0
- HADOOP HA
- Hadoop HA
- hadoop ha
- Hadoop HA
- hadoop ha
- hadoop HA
- hadoop HA
- Hadoop HA
- hadoop-ha
- Hadoop HA
- Hadoop namenode HA方案
- Hadoop HA MR1配置
- hadoop HA机制分析
- hadoop-ha配置
- Hadoop HA介绍
- hadoop namenode ha方案
- Hadoop ha简介
- Hadoop之HA验证
- 打印杨辉三角
- 1008. 数组元素循环右移问题 (20)
- windows 使用
- UVA 562 Dividing coins
- java虚拟机相关
- Hadoop HA
- hibernate
- 网站内链优化策略
- win10+ubuntu14.04 VirtualBox虚拟机网络设置
- 欢迎使用CSDN-markdown编辑器
- matlab SVM新函数例子
- 1.9 开始第一幅“码绘”——掌握大杀器”循环“,一招搞定百千万个懵逼脸
- 对于数组的初始赋值
- hibernate 关联关系(多对一、多对多、一对一)的配置