• HDFS 常见的运维技巧汇总


    前言

    本文隶属于专栏《大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!

    本专栏目录结构和参考文献请见大数据技术体系


    正文

    Hadoop 是一个大型的分布式系统,在实际运行中不免会出现一些问题,这些都增加了 Hadoop 运维的难度。

    下面汇总一些常见的 Hadoop 运维技巧(不定期更新)。


    查看日志

    日志是 Hadoop 运维最重要的依据,无论遇到什么异常情况,通常首先做的就是查看日志。

    下面介绍日志的存放路径。

    • NameNode 当天日志路径:$HADOOP_HOME/logs/hadoop-hadoop-namenode-master.log。
    • ResourceManager 当天日志路径:$HADOOP_HOME/logs/hadoop-hadoop-resourcemanager-master.log
    • DataNode 当天日志路径:$HADOOP_HOME/logs/hadoop-hadoop-datanode-slave1.log。
    • NodeManager 当天日志路径:$HADOOP_HOME/logs/hadoop-hadoop-nodemanager-slave1.log。

    我们可以通过直接查看日志文件的方式查看日志,也可以通过 tail -f 的命令实时地查看更新的日志,在有些情况下,第二种方法显得非常有效。


    清理临时文件

    很多时候,由于对集群的操作太频繁,或是日志输出不太合理时,日志文件或者是临时文件可能变得十分巨大,影响正常HDFS的存储,可以视情况定期清理。

    • HDFS的临时文件路径:/export/hadoop/tmp/mapred/staging
    • 本地临时文件路径:${mapred.local.dir}/mapred/userlogs

    定期执行数据均衡脚本

    导致 HDFS 数据不均衡的原因有很多种,如新增一个 DataNode、快速删除 HDFS 上的大量文件、计算任务分布不均匀等。

    数据不均衡会降低 MapReduce 计算本地化的可能,降低作业执行效率。

    当察觉到了数据不均衡的情况后,可以通过执行 Hadoop 自带的均衡器脚本来重新平衡整个集群,脚本的路径为 $HADOOP_HOME/bin/start-balancer.sh。

    需要注意的是,在执行脚本时,网络带宽会被大量地消耗,这时如果有作业正在运行,作业的执行将会变得非常缓慢。

    我们可以通过 dfs.balance.bandwidthPerSec 来设置传输速率。

    在均衡器执行的时候,可以随时中断,不会影响数据的完整性。

  • 相关阅读:
    Redis原理篇——五种基本数据类型
    GIT 遇到问题
    利用python爬取上证指数股吧评论并保存到mongodb数据库
    第十一章:Java对象内存布局和对象头
    2023年厦门市高等职业院校技能竞赛软件测试竞赛规程
    【Apache Flink】实现有状态函数
    Unity 编辑器扩展,获取目录下所有的预制件
    Java中作为数据库某个表的实体类为什么一定要实现Serializable接口
    使用C语言实现最小生成树
    Build a Large Language Model (From Scratch) 从头开始构建大型语言模型(第二章)学习笔记(上)
  • 原文地址:https://blog.csdn.net/Shockang/article/details/125381827