这里,不多赘述
发布时间:2025-06-24 20:11:32 作者:北方职教升学中心 阅读量:464
在core-site.xml文件中添加下面的参数,该参数的值为ZooKeeper服务器的地址,ZKFC将使用该地址。
Active NameNode和Standby NameNode在哪个节点上,是由zookeeper通过主备选举机制来确定的。以上操作是在首次搭建集群时且没有重要数据的情况下执行的。
HDFS HA配置
NameNode:对应配置相同的两台物理机,分别运行Active NameNode和Standby NameNode。首先在hdfs-site.xml中添加下面的参数,该参数的值默认为false:
<property> <name>dfs.ha.automatic-failover.enabled.ns</name> <value>true</value></property>
2、SecondaryNameNode放在同一台机器上。Standby不对外提供服务,仅同步Active NameNode的状态,以便Active NameNode出现问题时及时切换成Active状态。
hdfs haadmin -transitionToActive nn1
方案三(首先查看自己各参数文件是否配置出错)
1、
在添加了上述的配置参数后,下一步就是在ZooKeeper中初始化要求的状态,可以在任一NameNode中运行hdfs zkfc -formatZK
命令实现该目的,该命令在ZooKeeper中创建znode
执行该命令需要进入Hadoop的安装目录下面的bin目录中找到hdfs这个命令,输入上面的命令执行,然后就可以修复这个问题了。
例如:
nn1当前是Active NameNode,想让nn2成为新的Active NameNode,可执行以下命令。想要 transitionToActive 切换主,就需要 带上 强制手动的标志 --forcemanual
hdfs haadmin -transitionToActive nn1
此时 nn1: standby nn2: active
hdfs haadmin -getAllServiceStatehdfs haadmin -transitionToActive --forcemanual nn1
此时提示的是 nn2 已经是 active,切换不起作用
当active节点正常时,使用hdfs haadmin -transitionToActive命令对两个namenode节点切换都不起作用.
此时试试将 active 状态切换成 standby
hdfs haadmin -getAllServiceStatehdfs haadmin -transitionToStandby --forcemanual nn2hdfs haadmin -getAllServiceState
此时提示的是 nn2 已经是 standby,切换生效
当active节点正常时,执行hdfs haadmin -transitionToStandby命令可以将active的namenode节点转换成standby状态。
Standby NameNode通过JournalNodes的通信来与Active NameNode保持同步。
haadmin -getAllServiceState hdfs haadmin -failover nn2 nn1 将 nn1 变为 主
如果nn2当前已是Active NameNode,执行以下命令后,nn2仍为新的Active NameNode。
注意:之前,先得启动好每台机器的zookeeper进程。 针对Hadoop 1.x中可能出现的NameNode单点故障(SPOF)或者短时间无法使用的情况,Hadoop 2.x 通过增加一个NameNode的方式进行了改善,而增加一个NameNode后,实际在没有出现问题时,只需要一个NameNode,所以两个NameNode一个处于Standby状态,一个处于Active状态。除了上面的两个参数外,还有其它几个参数用于自动故障转移,比如ha.zookeeper.session-timeout.ms,但对于大多数安装来说都不是必须的。ResourceManager等,需要至少3个且为基数,这样可以允许(N-1)/2个JNS进程失败。背景
后记
对于hdfs的一些命令,不熟悉的情况下,可以先用以下的命令查看。
当再次执行hadoop namenode -format
命令时,NameNode对应的目录下会重新生成clusterID,导致和DataNode对应的clusterID不一致,从而造成上述问题。
补充
failover
切换NameNode的主备状态,一般推荐用此方式来切换主备
执行hdfs haadmin -failover <serviceId of current active> <serviceId of new active>
命令,切换NameNode的主备状态。
NameNode和SecondaryNameNode不要安装在同一台服务器
ResourceManager也很消耗内存,不要和NameNode、
JournalNode:JournalNode不会耗费太多的资源,可以和其它进程部署在一起,如NameNode、
常用端口号及配置文件
常用端口号
hadoop3.x
HDFS NameNode 内部通常端口:8020/9000/9820
HDFS NameNode 用户查询端口:9870
Yarn查看任务运行情况:8088
历史服务器:19888
hadoop2.x
HDFS NameNode 内部通常端口:8020/9000
HDFS NameNode 用户查询端口:50070
Yarn查看任务运行情况:8088
历史服务器:19888
常用配置文件
3.x core-site.xml hdfs-site.xml yarn-site.xml mapred-site.xml workers
2.x core-site.xml hdfs-site.xml yarn-site.xml mapred-site.xml slaves
转载自 :https://blog.csdn.net/u014727709/article/details/131194566
欢迎start,欢迎评论,欢迎指正