如何做提升自己的网站,网页设计好看的模板,怎么样注册自己的网站,做房产的网站文章目录 背景架构HDFS HA配置错误原因解决方案方案一方案二方案三#xff08;首先查看自己各参数文件是否配置出错#xff09; 后记补充failovertransitionToActive 常用端口号及配置文件常用端口号hadoop3.xhadoop2.x 常用配置文件 这里说一下配置Hadoop HA集群可能出现的两… 文章目录 背景架构HDFS HA配置错误原因解决方案方案一方案二方案三首先查看自己各参数文件是否配置出错 后记补充failovertransitionToActive 常用端口号及配置文件常用端口号hadoop3.xhadoop2.x 常用配置文件 这里说一下配置Hadoop HA集群可能出现的两种情况第一种就是两个NameNode都是standby第二种就是主Master是standby从Master是active。 背景
针对Hadoop 1.x中可能出现的NameNode单点故障SPOF或者短时间无法使用的情况Hadoop 2.x 通过增加一个NameNode的方式进行了改善而增加一个NameNode后实际在没有出现问题时只需要一个NameNode所以两个NameNode一个处于Standby状态一个处于Active状态。Standby不对外提供服务仅同步Active NameNode的状态以便Active NameNode出现问题时及时切换成Active状态。
架构
Hadoop 2.x 的两个NameNode一般会配置在两台独立的机器上Active NameNode会响应集群客户端而Standby NameNode只是作为Active NameNode的备份保证在Active NameNode出现问题时能够快速的替代它。
Standby NameNode通过JournalNodes的通信来与Active NameNode保持同步。
Active NameNode和Standby NameNode在哪个节点上是由zookeeper通过主备选举机制来确定的。
HDFS HA配置
NameNode对应配置相同的两台物理机分别运行Active NameNode和Standby NameNode。
JournalNodeJournalNode不会耗费太多的资源可以和其它进程部署在一起如NameNode、Datanode、ResourceManager等需要至少3个且为基数这样可以允许N-1/2个JNS进程失败。
DataNode根据数据量的大小和处理数据所需资源进行配置一般实际应用中数量较多且分布在较多的机器上。
NameNode和SecondaryNameNode不要安装在同一台服务器
ResourceManager也很消耗内存不要和NameNode、SecondaryNameNode放在同一台机器上。
通过hdfs haadmin -getServiceState nn1和hdfs haadmin -getServiceState nn2命令查看发现两个NameNode的状态都是standby 通过hdfs dfsadmin -report命令查看发现HDFS数据均为0
错误原因
当首次执行命令hadoop namenode -format格式化NameNode时会在dfs.namenode.name.dir对应路径下生成current/VERSION文件其中记录了clusterID同时dfs.datanode.data.dir对应的DataNode目录中也会生成current/VERSION文件其中clustreID的与NameNode中clusterID的值相同。 当再次执行hadoop namenode -format命令时NameNode对应的目录下会重新生成clusterID导致和DataNode对应的clusterID不一致从而造成上述问题。
解决方案
方案一
关掉集群
./stop-dfs.sh删掉各个节点上DataNode对应的目录
rm -rf data格式化NameNode
hadoop namenode -format重启集群
./start-dfs.sh方案二
关掉集群
./stop-dfs.sh编辑clusterID使Namenode和DataNode同步
vim clusterID重启集群
./start-dfs.sh注意 在生产环境中谨慎使用hadoop namenode -format命令。以上操作是在首次搭建集群时且没有重要数据的情况下执行的。
hdfs haadmin -transitionToActive nn1
方案三首先查看自己各参数文件是否配置出错
1、首先在hdfs-site.xml中添加下面的参数该参数的值默认为false
propertynamedfs.ha.automatic-failover.enabled.ns/namevaluetrue/value
/property2、在core-site.xml文件中添加下面的参数该参数的值为ZooKeeper服务器的地址ZKFC将使用该地址。
propertynameha.zookeeper.quorumnamevaluespark01.kfk.com:2181,spark02.kfk.com:2181,spark03.kfk.com:2181value
property首先你要确定不用ha的时候你的hadoop集群是正常的不然找错误的方向就偏离了
配置HA 需要zookeeper先要看看是不是zookeeper没有配置好的问题
如果都正常在hadoop安装目录执行sbin/hadoop-daemon.sh start zkfc这句是启动zookeeper选举制度然后执行 hdfs haadmin -transitionToActive nn1 其中nn1是你的namenode中的一个如果是新配置的HAhadoop集群可能是zkfcDFSZKFailoverController没有格式化导致namenode节点的自动切换机制没有开启
在HA或者HDFS中上面的两个参数还需要以NameServiceID为后缀比如dfs.ha.automatic-failover.enabled.mycluster。除了上面的两个参数外还有其它几个参数用于自动故障转移比如ha.zookeeper.session-timeout.ms但对于大多数安装来说都不是必须的。
在添加了上述的配置参数后下一步就是在ZooKeeper中初始化要求的状态可以在任一NameNode中运行hdfs zkfc -formatZK命令实现该目的该命令在ZooKeeper中创建znode
执行该命令需要进入Hadoop的安装目录下面的bin目录中找到hdfs这个命令输入上面的命令执行然后就可以修复这个问题了。
注意之前先得启动好每台机器的zookeeper进程。
后记
对于hdfs的一些命令不熟悉的情况下可以先用以下的命令查看。
hdfs -help 查看命令
hdfs haadmin -help 这里记录一下常用的命令
hdfs haadmin -getAllServiceState 查询所有NN的服务状态
hdfs haadmin -transitionToActive nn1 开启nn1为active状态
hdfs haadmin -transitionToActive nn2 开启nn2为active状态
hdfs haadmin -transitionToStandby nn1 开启nn1为standby状态
hdfs haadmin -failover nn1 nn2 手动执行故障转移
hadoop-daemon.sh start namenode 启动 namemode进程
kill -9 namenode进程号 使namenode进程挂掉
yarn rmadmin -getServiceState rm1 查看resourcemanager节点状态
hdfs --daemon start/stop namenode/datanode/secondarynamenode 分别启动/停止HDFS组件
yarn --daemon start/stop resourcemanager/nodemanager 启动/停止YARN注意其实hdfs自带的命令里都提供了若两者都是standby状态怎么执行。若两者都是active状态怎么执行。这里不多赘述。
补充
failover
切换NameNode的主备状态一般推荐用此方式来切换主备
执行hdfs haadmin -failover serviceId of current active serviceId of new active命令切换NameNode的主备状态。
例如 nn1当前是Active NameNode想让nn2成为新的Active NameNode可执行以下命令。
haadmin -getAllServiceState
hdfs haadmin -failover nn2 nn1 将 nn1 变为 主如果nn2当前已是Active NameNode执行以下命令后nn2仍为新的Active NameNode。
haadmin -getAllServiceState
hdfs haadmin -failover nn1 nn2 将 nn2 变为 主transitionToActive
将给定的NameNode切换成主不会做fencing和failover有区别的点
当开启了故障自动切换failoverdfs.ha.automatic-failover.enabledtrue之后无法手动进行。想要 transitionToActive 切换主就需要 带上 强制手动的标志 --forcemanual
hdfs haadmin -transitionToActive nn1此时 nn1: standby nn2: active
hdfs haadmin -getAllServiceState
hdfs haadmin -transitionToActive --forcemanual nn1此时提示的是 nn2 已经是 active切换不起作用
当active节点正常时使用hdfs haadmin -transitionToActive命令对两个namenode节点切换都不起作用.
此时试试将 active 状态切换成 standby
hdfs haadmin -getAllServiceState
hdfs haadmin -transitionToStandby --forcemanual nn2
hdfs haadmin -getAllServiceState此时提示的是 nn2 已经是 standby切换生效
当active节点正常时执行hdfs haadmin -transitionToStandby命令可以将active的namenode节点转换成standby状态。
常用端口号及配置文件
常用端口号
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欢迎评论欢迎指正