您的位置:首页 > 运维架构

PCIe SSD在Hadoop中的应用及性能展示

2016-04-15 14:06 204 查看
到 2020 年,全球数据量将达44ZB,文字、图片、视频、代码,甚至于我们自己的各种信息都将被转化为0和1。巨大的数据量意味着巨大的需求,企业对于数据的存储、分析处理等需求催生了众多新的技术。Hadoop就是在这样一个背景下诞生的一个大规模数据处理架构。

 Hadoop核心组件HDFS是一个高可扩展的并行文件系统,并且针对顺序数据集做了大量的优化,可以运行于普通的硬件集群上。从硬件性能的角度讲CPU 和内存每秒可以处理数百GB 数据,但是硬盘每秒仅可以处理几十MB到一两百MB数据,一味的通过增加硬盘数量以提高性能显然不是明智的选择。

HDFS 是用JAVA 编写的分布式、可扩展、轻便的文件系统,它为Hadoop 框架服务。一个Hadoop 集群通常有一个Name node, 和一群Data node. 每个数据节点以块数据的方式按照HDFS 规定的块协议跨越网络存储数据。文件系统通过TCP/IP 套接字来通信。客户端之间使用PRC 通信。

要消除存储瓶颈最好的方法就是将HDD替换为PCIe SSD这样的高速存储介质。本篇文章接下来将对一个配有PCIe SSD的Hadoop系统做吞吐能力测试,并对测试结果做一个展示。方案架构如图1所示。



图1:本次测试的架构图
本次测试共有3 个数据节点(Datanode),每个节点配置一个Memblaze PBlaze4 PCIe SSD。此外,测试集群有一个Masternode(这个节点也配置了一块PBlaze4 PCIe SSD),其上运行Name Node, Resource Manager以及client。详细的软硬件配置信息如下:

CPU: Dell PowerEdge R730x 2 socket Intel XeonE5-2630(8cores) v3
Memory: 128GB
SSD: 1 x Memblaze 3.2T PBlaze4
Network: Intel 82599ES 10-Gigabit
Linux: CentOS 7.0
File system: xt4
Java: 1.7.0_75
Hadoop: hadoop-2.6.3
Benchmark Tool: hadoop-mapreduce-client-jobclient-2.6.3-tests.jar TestDFSIO
下面列出了测试过程中的参数:

General parameters

Map tasks: 12

Reduce tasks: 12

HDFS

Block size: 128 MB

Replication factor: 3

Mapreduce

Java child options: -Xmx 2048m

Io sort buffer size: 512MB

测试流程

基本的测试原理就是使用TestDFSIO 评估HDFS的性能,给网络和存储IO加压。读写文件的命令可以度量Name node 和Data node系统级的性能及展示网络的瓶颈,大量的MapReduce负载时IO密集的而非计算密集,所以在这种情况下TestDFSIO可以提供一个初始的情况。

读测试命令如下:
hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.6.3-tests.jar TestDFSIO -write -nrFiles 1 -size 240GB

测试结果

我们的测试运行在Namenode上。测试总写入数据240GB, 副本数3,文件数N 为 1, 3, 6, 12, 48 文件大小为M(所以显示结果中横坐标的格式为1-240GB、3-80GB、6-40GB等,之后的测试仍会沿用这种表达方式), 每个文件一个map。测试结果如图2所示,1个map 可以获得最高的吞吐率为144MB/s, 12 和 24 maps 可以获得最高的并发吞吐率576 MB/s。

因为副本数为3,HDFS 写到3个Data node,所以总的吞吐率为 576 * 3 = 1728MB/s。



图2:TestDFSIO 写吞吐率

测试总写入数据量为240GB, 副本数3,文件数N 为 1, 3, 6, 12, 48 文件大小为M, 每个文件一个map。测试结果如图3所示,1个map 可以获得最高的吞吐率357MB/s, 12 和 24 maps 可以获得最高的并发吞吐率8208 MB/s。



图3:TestDFSIO读吞吐率
在此,我们拿Emulex的一个Hadoop测试作为对比,Emulex的这个测试使用7个 Data node,每个节点配置6个HDD, 性能测试结果来源Emulex。两个测试结果对比如图4。



图4:Hadoop集群使用PCIe SSD 和HDD 读写吞吐率比较

结论

本次测试的结果表明,相对于7Data node配HDD的Hadoop,配有PCIe SSD的3 Data node节点Hadoop性能优势非常明显。可以说PCIe SSD使得Hadoop吞吐能力得到提升的同时大幅度减少节点数,相信随着PCIe SSD的不断发展,未来在Hadoop以及其他的大规模数据处理系统中将会起到愈加重要的作用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  PCIe SSD hadoop 存储 NVMe