Hadoop集群运维,
Hadoop集群运维
场景1:namenode节点故障,active namenode节点状态切换?如何恢复?
1.1 Hadoop HA 的namenode状态切换
- 模拟线上环境测试,namenode进程down掉一个后,active和standby状态名称节点切换正常。
测试步骤:在测试集群把standby namenode进程kill掉,active节点服务正常,不影响hadoop集群服务,数据存储正常。集群恢复正常后再把active namenode进程kill掉,standby状态节点会被切换为active状态namenode,集群服务正常,数据正常。
1.2 namenode故障如何恢复
场景2:namenode节点切换,namenode迁移?
故障假设:namennode服务器故障,需要更换namenode服务器。
测试环境下模拟集群正常服务不关停情况下namenode迁移流程:
tar -zcf hadoop-2.6.4.tar.gz ./hadoop-2.6.4
scp hadoop-2.6.4.tar.gz vm-dc002.ali.momo.com:/home/dc/datacenter/soft/hadoop/
tar -zxf hadoop-2.6.4.tar.gz -C ./
ln -s hadoop-2.6.4 default
- 找到core-site.xml配置文件中的hadoop.tmp.dir目录,将存活namenode服务器上的${hadoop.tmp.dir}/dfs/name文件压缩成tar包,传送到新的namenode服务器并解压,该文件与另一台namenode的目录结构保持一致。其他hdfs、yarn、mapreduce相关目录会在相关进程启动后自行建立。
tar -zcf ${hadoop.tmp.dir}/dfs/name.tar.gz ${hadoop.tmp.dir}/dfs/name
mkdir -p ${hadoop.tmp.dir}/dfs 在新机器上创建目录
scp ${hadoop.tmp.dir}/dfs/name.tar.gz 新机器:${hadoop.tmp.dir}/dfs
tar -zxf ${hadoop.tmp.dir}/dfs/name.tar.gz -C ${hadoop.tmp.dir}/dfs/
- 启动namenode进程:hadoop-daemon.sh start namenode
- 启动zkfc进程:hadoop-daemon.sh start zkfc 。
zkfc启动后会触发active namenode选举,新namenode节点会被选为standby。 - 检查两台namenode的状态和namenode进程日志。
hdfs haadmin -getServiceState nn1 #检查namenode节点状态命令
hdfs haadmin -getServiceState nn2 #检查namenode节点状态命令
此时应留意两台机器namenode日志和zkfc日志,看是否正常,进程是否正常。如果nn1和nn2一个active一个standby,日志正常无报错,集群block块数量和数据正常查看均无异常,则namenode迁移完成。 - 如果上面运行有datanode和nodemanager,启动相关进程:
hadoop-daemon.sh start datanode
yarn-daemon.sh start nodemanager
场景3:datanode故障问题。
3.1 磁盘故障导致datanode进程down
本次(2019-05-29日)采取措施:
总结: 这样既能及时发现磁盘故障,也能将磁盘故障对hadoop集群的影响降至最低。
日后正常维护:
磁盘故障报警后联系sa更换磁盘,更换完记得调整磁盘权限,然后重启datanode进程。
3.2、datanode down后,hadoop集群的容错处理
模拟datanode进程down故障,观察hadoop集群的容错处理:
总结: datanode重启操作尽量在10分钟内完成,这样对hadoop集群的影响会最小。
Block信息汇报
datanode隔6小时会向namenode汇报一次节点block信息。线上集群未配置采用默认值。
| 官网配置 | 默认值 | 说明 |
|---|---|---|
| dfs.datanode.directoryscan.interval | 21600 | Interval in seconds for Datanode to scan data directories and reconcile the difference between blocks in memory and on the disk. |
| dfs.blockreport.intervalMsec | 21600000 | Determines block reporting interval in milliseconds. |
DataNode健康状态检测:
hadoop datanode 节点超时时间设置:https://www.jianshu.com/p/1680bab38f06
测试机测试:datanode停掉10分钟30秒后,集群把datanode状态切换为dead。
超时时长的计算公式为:timeout = 2 * heartbeat.recheck.interval + 10 * dfs.heartbeat.interval。
场景4:nodemanager节点故障,对sparkstreaming影响。
注:这部分请参考spark on yarn故障运维https://blog.csdn.net/qq_35488412/article/details/91041983
1.1 磁盘故障对yarn nodemanager的影响。
- 目前nodemanager默认容错因子是0.25,不超过五分之一的磁盘故障不会影响nm进程启动新的正常container。正在运行的container如果用到故障磁盘,则container上的任务会报错抛出异常。
1.2 磁盘故障对spark任务的影响:
1.3 NodeManager进程故障对Spark任务的影响
- 在测试服务器模拟NodeManager进程down,该机器的excutor挂掉,十分钟后启动新的executor进程。
场景4部分:具体细节请参见:spark on yarn故障运维:https://blog.csdn.net/qq_35488412/article/details/91041983
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。