
确认端口是否开启:可以通过在服务器上运行命令netstat -anp | grep 端口号来确认端口是否在监听状态。如果端口没有在监听状态,则需要检查应用程序是否正确配置了端口号。
确认防火墙是否阻止流量:如果端口在监听状态,但是外部无法访问,可能是因为防火墙阻止了流量。可以在服务器上运行iptables -L命令来检查防火墙规则,看是否有针对该端口的规则。
检查路由器端口转发:如果服务器是在路由器后面,则需要在路由器上设置端口转发规则,将外部流量转发到服务器上。可以通过在路由器上查看端口转发规则来确认是否设置正确。
检查网络配置:如果上述步骤都没有问题,可以考虑检查网络配置。可以在服务器上运行ping命令来检查网络是否正常。如果网络有问题,需要排查网络设备和网络连接。
检查公网 IP 是否生效:如果已经获取了公网 IP,可以通过在服务器上运行curl ifconfigme来确认公网 IP 是否生效。如果公网 IP 无法生效,可能需要联系电信运营商解决问题。
希望以上步骤能够帮助你找到问题所在,并解决你的问题。分布式服务器上下线动态感知(Hadoop HA)
HDFS集群中NameNode 存在单点故障问题,对于只有一个NameNode的集群,如果NameNode机器出现意外情况,将导致整个集群无法使用,直到NameNode 重新启动。
影响HDFS集群不可用主要包括以下两种情况:
NameNode机器宕机,将导致集群不可用,重启NameNode之后才可使用。
计划需要对NameNode节点软件或硬件升级,导致集群在短时间内不可用。
为了解决上述问题,Hadoop给出了HDFS的 高可用 HA方案:HDFS的HA通常由两个NameNode组成,一个处于 active 状态,另一个处于 standby 状态。Active NameNode对外提供服务,比如处理来自客户端的RPC请求,而Standby NameNode则不对外提供服务,仅同步Active NameNode的状态,以便能够在它失败时快速进行切换。而这里的快速切换是如何实现的呢?是通过zookeeper的 动态上线感知 来实现的。
简单介绍下zookeeper是什么?
ZooKeeper 顾名思义 动物园管理员 ,他是拿来管大象(Hadoop) 、 蜜蜂(Hive) 、 小猪(Pig) 的管理员, Apache Hbase和 Apache Solr 以及LinkedIn sensei 等项目中都采用到了 Zookeeper。ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,ZooKeeper是以Fast Paxos算法为基础,实现同步服务,配置维护和命名服务等分布式应用。这是zookeeper的官方介绍,对于程序原来说zookeeper在hadoop中的应用可以理解为是hadoop的整体监控系统,如果namenode宕机后,这时候Zookeeper 的重新选出leader。这是它最大的作用所在。
接下来看看zookeeper的 动态上线感知 图:
1、首先在hadoop中配置自动故障转移机制。
2、在配置HA的时候首先配置zookeeper集群,然后启动zookeeper集群。
3、在第一次启动hadoop的HA之前先初始化HA在zookeeper中的状态然后启动HA,在启动过程中会在各个NameNode节点上启动DFSZK Failover Controller,作用就是向zookeeper中注册服务器的信息,然后hadoop通过进程监控在zookeeper中的节点状态。
4、在zookeeper中注册的节点是临时节点,当服务器宕机下线的时候,zookeeper会把这个节点删除掉,这样才会产生事件,客户端(hadoop)才能监听到,然后hadoop将Standby NameNode转换为Active NameNode。通常一个节点的内存在250G左右,若不设置运行内存,则会默认250G,当设置核心数过少时,可能会被分配到某个含空闲核心数不多的节点,该节点内存亦不多,因此可能会导致任务被杀死,下图所示
因此一般需要配置使用内存,可同时配置软件的使用内存和服务器请求使用的内存
可增加核心数,并在配置文件中配置使用内存,如50G,则在Max memory输入50
1)指定作业设置最大内存:--mem=<size[units]>指定作业在每个节点申请的内存
2)每个进程设置最大内存:--mem-per-cpu=<size[units]> 每个进程申请的内存
结果显示节点名、节点状态、剩余CPU(核心数)、CPUload(一段时间内CPU正在处理以及等待CPU处理的进程数之和的统计信息)、节点内存大小,剩余节点内存,任务列表
查看
参考:
>
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)