今天测试HDFS的读写性能出现以下错误
java.lang.IllegalArgumentException:Unsupported ByteMultiple M
测试HDFS写执行的命令:
hadoop jar hadoop-mapreduce-client-jobclient-3.1.3-tests.jar TestDFSIO -write -nrFiles 2 -fileSize 128MB
我有三个集群,每台虚拟机只有1核,故集群一共只有3核,因此在-nrFiles 的数量为2(核-1),作为测试的文件数量。
出现上面的原因是没有将虚拟内存管理关闭(虚拟后的运行内存是2.1*虚拟机的内存,但是centos7和jdk8 之间兼容有点问题,centos7会给应用留大量的资源),导致在测试HDFS写性能资源不足,关闭后直接使用的是物理内存。
解决办法:yarn-site.xml中添加以下东西
yarn.nodemanager.vmem-check-enabled false
最后的执行的结果为以下:
测试HDFS写性能:
Number of files:生产文件数量,也是mapTask的数量,一般都是(核数-1)
Total MBytes processed:单个map处理的文件大小
Troughput mb/sec:当个mapTask的吞吐量
计算方式:所有数据量累加/总时间
Average IO rate mb/sec:平均mapTask的吞吐量
计算方法:(每一个mapTask平均速度之后)/Number of files
IO rate std deviation:方差、反应各个mapTask处理的差值,越小越均衡
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)