《CDP企业数据云平台从入门到实践》——CDP之数据储存(2) https://developer.aliyun.com/article/1226409?spm=a2c6h.13148508.setting.14.12f54f0eNj6eW1
2. 优化性能
您可以考虑以下选项来优化 HDFS 集群的性能:在 DataNode 上交换磁盘驱动器、缓存数据、为主机指定机架、自定义 HDFS、使用 Hadoop 存档优化 NameNode 磁盘空间、识别慢速 DataNode 并改进它们、优化小型写操作使用 DataNode 内存作为存储,实现短路读。
1) 通过集中缓存管理提高性能
集中式缓存管理使您能够指定 HDFS 缓存目录的路径,从而提高重复访问相同数据的应用程序的性能。
HDFS 中的集中式缓存管理是一种显式缓存机制。NameNode 与磁盘上具有所需数据块的 DataNode 通信,并指示 DataNode 将数据块缓存在堆外缓存中。
2) 为主机指定机架
HDFS 使用您部署的网络位置(例如主机和机架)来更智能地放置块副本并权衡性能和弹性。在主机上放置作业时,CDP 更喜欢机架内传输,因为那里有更多可用带宽,而不是机架外传输。这些计算是在机架感知脚本的帮助下执行的。Cloudera Manager 包含内部机架感知脚本,但您必须指定集群中主机所在的机架。
a) 在 Cloudera Manager 中,转到 Hosts>All Hosts。
b) 选中与要为其指定机架的主机对应的复选框。
c) 选择选定的操作>分配机架。
d) 输入以斜杠( )开头的机架名称或 ID/;例如/rack123 或/aisle1/rack123,然后单击确认。
e) 重新启动受影响的服务。
3) 自定义 HDFS
您可以使用该 dfs.user.home.base.dir 属性自定义 HDFS 主目录。此外,您可以配置属性来控制包含 NameNodeedits 目录的目录的大小。
4) 使用 Hadoop 归档优化 NameNode 磁盘空间
Hadoop 归档(HAR)是一种特殊格式的归档,可以有效地将小文件打包到 HDFS 块中。
Hadoop 分布式文件系统(HDFS)旨在存储和处理大型数据集,但在存储大量小文件时,HDFS 的效率可能较低。当 HDFS 中存储了很多小文件时,这些小文件占据了命名空间的很大一部分。结果,由于命名空间限制,磁盘空间未得到充分利用。
Hadoop 归档(HAR)可用于解决与存储许多小文件相关的命名空间限制。Hadoop Archive 将小文件更有效地打包到 HDFS 块中,从而减少 NameNode 内存使用,同时仍然允许对文件进行透明访问。Hadoop Archives 还与 MapReduce 兼容,允许MapReduce 作业透明访问原始文件。
5) 检测慢速 DataNode
CDP 私有云基础集群中缓慢的数据节点会对集群性能产生负面影响。因此,HDFS 提供了一种机制来检测和报告对集群性能有负面影响的慢速 DataNode。
HDFS 旨在检测 DataNode 的完全故障并从中恢复:
• 没有单点故障。
• 自动 NameNode 故障转移只需几秒钟。
• 因为数据复制可以在大型集群中大规模并行化,所以从 DataNode 丢失中恢复可以在几分钟内完成。
• 大多数作业不受 DataNode 故障的影响。
但是,部分故障会对运行的 DataNode 的性能产生负面影响:
• 由于适配器故障或配置错误导致网络连接缓慢。
• 影响服务性能的不良操作系统或 JVM 设置。
• 硬盘慢。
• 坏的磁盘控制器。
缓慢的 DataNodes 会对集群性能产生重大影响。慢速 DataNode 可能会继续成功发送心跳,而 NameNode 会不断将客户端重定向到慢速 DataNode。HDFS DataNode 监控提供对对集群性能产生负面影响的慢速 DataNode 的检测和报告。
6) 分配 DataNode 内存作为存储
HDFS 支持将大型数据集高效写入持久存储,并提供对数据的可靠访问。这适用于写入大量持久数据的批处理作业。新兴的应用程序类别正在推动写入更少量临时数
据的用例。使用 DataNode 内存作为存储解决了想要以低延迟写入相对少量的中间数据集的应用程序的用例。
将块数据写入内存会降低持久性,因为数据可能会在保存到磁盘之前由于进程重启而丢失。HDFS 尝试及时将副本数据保存到磁盘以减少可能的数据丢失窗口。
使用 RAM_DISK 存储类型和 LAZY_PERSIST 存储策略引用 DataNode 内存。
7) 通过短路本地读取提高性能
在 HDFS 中,读取通常通过 DataNode。因此,当客户端请求 DataNode 读取文件时,DataNode 从磁盘读取该文件并通过 TCP 套接字将数据发送到客户端。“短路”读取绕过 DataNode,让客户端直接读取文件。这仅在客户端与数据位于同一位置的情况下才有可能。短路读取为许多应用程序提供了显着的性能提升。
8) 配置可挂载的 HDFS
CDP 包括一个连接到 HDFS 的 FUSE(用户空间中的文件系统)接口。该 hadoophdfs-fuse 命令使您能够像使用 Linux 上的传统文件系统一样使用 HDFS 集群。
《CDP企业数据云平台从入门到实践》——CDP之数据储存(4) https://developer.aliyun.com/article/1226399?groupCode=ClouderaCDP