You need to enable JavaScript to run this app.
导航
最佳实践
最近更新时间:2025.04.01 20:13:40首次发布时间:2024.11.12 16:54:07
我的收藏
有用
有用
无用
无用

控制小文件个数

  • 背景:HDFS NameNode 将所有文件元数据加载在内存中,在集群磁盘容量一定的情况下,如果小文件个数过多,则会造成 NameNode 的内存容量瓶颈。
  • 建议:尽量控制小文件的个数。对于存量的小文件,建议合并为大文件。

配置回收站机制

  • 背景:在 HDFS 中,被删除的文件会被移至回收站(trash),以便在误操作时能恢复已删除的数据。您能够设定文件在回收站中的留存时间阈值,当文件保存时间超出此阈值,系统会自动将其从回收站永久删除。您还能手动删除回收站中的文件。
  • 建议:您可于 LAS 控制台 HDFS 服务的服务参数页面,搜索参数fs.trash.interval,此参数是以分钟为单位的垃圾回收时间,回收站中的数据超过该时间就会被删除。若设置为 0,则表示禁用回收站机制。默认值为 360 。

配置 HDFS 单目录文件数量

  • 背景:在集群运行期间,诸如 Spark 和 YARN 等不同组件或者客户端或许会持续向同一个 HDFS 目录写入文件。然而,HDFS 系统所支持的单目录文件数量存在上限,所以您需要提前进行规划,避免单个目录下的文件数量超出阈值,从而引发任务错误。
  • 建议:您能够在 LAS 控制台 HDFS 服务的服务参数页面,点击hdfs-site页签,接着点击添加自定义参数,新增参数dfs.namenode.fs-limits.max-directory-items,用于设定单个目录能够存储的文件数量。

在网络不稳定的情况下,降低客户端运行异常概率

  • 背景:在网络不稳定时,对 ipc.client.connect.max.retries.on.timeoutsipc.client.connect.timeout 参数进行调整,适度提高客户端的重试次数与超时时间,能够降低客户端运行出现异常的几率。
  • 建议:您能够在 LAS 控制台 HDFS 服务的 服务参数 页面,查找参数 ipc.client.connect.max.retries.on.timeouts ,并增大其参数值,以增加连接的最大重试次数。查找参数 ipc.client.connect.timeout ,并增大其参数值,以增加建立连接的超时时间。

配置可容忍的磁盘坏卷

  • 背景:倘若为 DataNode 配置多个数据存放卷,在默认状况下,若其中一个卷出现损坏,那么 DataNode 将不再提供服务。
  • 建议:您能够在 LAS 控制台 HDFS 服务的服务参数页面,对参数 dfs.datanode.failed.volumes.tolerated 进行搜索,您可以对该参数予以修改,明确失败的个数,只要小于这个个数,DataNode 便能够继续提供服务。

防止目录被误删

  • 背景:HDFS 允许将部分目录配置为受保护状态,以防止这些目录被误删除,不过仍可将其挪至回收站。
  • 建议:您能够在 LAS 控制台 HDFS 服务的服务参数页面,点击core-site页签,接着点击添加自定义参数,新增参数fs.protected.directories,参数值为您需要保护的目录,若有多个目录,使用逗号(,)分隔,并保存配置。

使用 Balancer 进行容量均衡

  • 背景:HDFS 集群或许会出现 DataNode 节点间磁盘利用率不均衡的状况,比如在集群中增添新 DataNode 的场景。倘若 HDFS 产生数据不平衡的现象,那么可能致使个别 DataNode 承受过大的压力。
  • 建议:您能够运用 Balancer 操作来实现容量均衡。登录集群节点执行以下命令:
su hdfs
$hadoop-current/sbin/start-balancer.sh -threshold 10