开始新对话

未解决

此帖子已超过 5 年

1122

2016年1月13日 22:00

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

​ ​
​ ​

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

​ ​
​ ​

​ ​

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

​ ​
​ ​

​介绍​

​ ​
​ ​

​ ​

​ EMC Isilon​​是企业级的横向扩展​​NAS​​存储。它支持多协议的单命名空间访问,如​​HDFS​​、​​NFS​​、​​SMB​​、​​FTP​​和​​HTTP​​等。除此以外,它还兼容​​wire-level​​的​​HDFS​​。​​Isilon​​还有很多安全特性,如​​DARE​​、​​WORM​​和​​Compliance 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.0​​和​​CDH4​​中,这一参数改名为​​dfs.blocksize​​。​

​ ​

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

​ ​

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

​ ​

​ ​

​HDFS​​线程数量:​

​ ​

​ ​

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

​ ​

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

​ ​

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

​ ​

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

​ ​

​600 / 25 = 24​

​ ​

​ 通常我们会选取​​2​​的整数幂​​(8​​,​​16​​,​​32​​,​​64​​,​​128​​,​​256)​​来作为线程的数值。所以本例中我们最终选取​​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