开始新对话

未解决

此帖子已超过 5 年

1112

2016年1月13日 22:00

HDFS环境下的Isilon OneFS配置调优(一)

HDFS环境下的Isilon OneFS配置调优(一)

转载请在文首保留原文出处:EMC中文支持论坛https://community.emc.com/go/chinese image001.gif

介绍

      EMC Isilon是企业级的横向扩展NAS存储。它支持多协议的单命名空间访问,如HDFSNFSSMBFTPHTTP等。除此以外,它还兼容wire-levelHDFSIsilon还有很多安全特性,如DAREWORMCompliance Mode (合规模式)等。

      本文将介绍HDFS环境下的Isilon OneFS配置调优。

    isilon_datalake.jpg

更多信息

块的大小(Block Size):

      对于Isilon群集,将HDFS Block Size从默认的64MB改为128MB可以提升大多数场景下的性能。让Isilon节点以更大的块来读写HDFS数据可以减少磁盘寻址操作并提升MapReduce作业的性能。

      更改服务器端HDFS Block Size的方法如下:

1.     SSH登录群集中任一节点

2.     isi hdfssettings modify --default-block-size=128MB

注:数值范围4KB - 1GB

如果是Hadoop客户端,可以通过hdfs-site.xml文件中的dfs.block.size参数来更改。Apache Hadoop 2.0CDH4中,这一参数改名为dfs.blocksize

      客户端的Block Size可以和服务器端的不同。客户端的Block Size决定了HDFS客户端如何将文件数据的一个个块写入群集。在大多数工作负载下,设为128MB是一个合适的选择。但是,最优的Block Size取决于你的具体数据、你如何处理数据以及其他因素,因此可以不断地测试不同的Block Size以找到最优的值。

      服务器端的Block Size决定OneFS HDFS进程是如何返回数据给读请求的。HDFS客户端必须拥有足够的内存以接收服务端的块。打个比方,假设你设置了服务器端的Block Size512MB,并且你的客户端的最大Map JVM Size也是512MB,那客户端就无法从群集中获取数据。服务器端的这一设置还控制了Map作业的数量和每个Map作业的文件输入大小。

HDFS线程数量:

      OneFS HDFS服务运行了一个叫isi_hdfs_d的进程,处理与NamenodeDatanode之间的流量。它的默认值是auto,单节点可以支持最大30个线程。为了支持一个大型的计算系统,我们可能需要增加线程的数量。如果你正在使用SmartConnectzone来分发横跨多个节点的Namenode流量,OneFS HDFS线程的总数应该等于至少一半的网格中的MapReducer数量。

      举例说明,假设你的计算网格拥有80个节点,每个节点10Map Slot5Reduce Slot,那你的Isilon群集需要至少600个线程:

[ 80 * (10 + 5) ] / 2 = 600

      如果你的Isilon群集拥有25个基点,则每个节点最少需要24个线程:

600 / 25 = 24

      通常我们会选取2的整数幂(8163264128256)来作为线程的数值。所以本例中我们最终选取32作为单个节点的线程数量:

isi hdfssettings modify --server-threads 32

      OneFS限制了最大线程数为256

isi hdfssettings modify --server-threads 256

参考

EMC技术白皮书

EMC Isilon Best Practices for Hadoop Data Storage on OneFS

应用于

Isilon OneFS


没有回复!
找不到事件!

Top