下面是對hadoop的一些基本測試示例bash
這個測試類名叫作 hadoop-mapreduce-client-jobclient.jar,位置在 hadoop/share/hadoop/mapreduce/ 目錄下併發
不帶任何參數能夠獲取這個jar的幫助信息app
$ yarn jar hadoop-mapreduce-client-jobclient-2.8.5.jar
1. TestDFSIOoop
用於測試hdfs的IO性能,使用一個mapReduce做業來併發的執行讀寫操做,每一個map任務用於讀或寫每一個文件,map輸出用於手機與處理文件相關的統計信息,Reduce用於累計和統計信息,併產生summary。性能
1) TestDFSIO write測試
例子:向HDFS中寫入10個1000M文件spa
$ yarn jar hadoop-mapreduce-client-jobclient-2.8.5.jar TestDFSIO -write -nrFiles 10 -fileSize 1000 -resFile /home/hadoop/hadoop_test/TestDFSIO_write.log 測試結果以下: ----- TestDFSIO ----- : write Date & time: Thu Nov 15 12:04:51 CST 2018 Number of files: 10 Total MBytes processed: 10000 Throughput mb/sec: 6.29 Average IO rate mb/sec: 6.39 IO rate std deviation: 0.87 Test exec time sec: 230.35 參數說明: TestDFSIO 表示測試類型 -write 表示寫測試 -nrFiles 表示往HDFS 寫入多少個文件 -fileSize 表示寫入每一個文件的大小 -resFile 表示最後的測試結果輸出到的文件
2) TestDFSIO readblog
例子:從HDFS中讀取10個1000M文件排序
$ yarn jar hadoop-mapreduce-client-jobclient-2.8.5.jar TestDFSIO -read -nrFiles 10 -fileSize 1000 -resFile /home/hadoop/hadoop_test/TestDFSIO_read.log 測試結果以下: ----- TestDFSIO ----- : read Date & time: Thu Nov 15 13:31:10 CST 2018 Number of files: 10 Total MBytes processed: 10000 Throughput mb/sec: 20.23 Average IO rate mb/sec: 21.09 IO rate std deviation: 4.26 Test exec time sec: 97.46
3) 清空測試數據hadoop
$ yarn jar hadoop-mapreduce-client-jobclient-2.8.5.jar TestDFSIO -clean
2. nnbench測試
nnbench用於測試NameNode的負載,他會產生不少餘HDFS相關的請求,給NameNode施加較大的壓力。這個測試能在hdfs上模擬建立,讀取,重命名和刪除文件等操做。
例子: 使用12個mapper和6個Reduce來建立1000個文件
$ yarn jar hadoop-mapreduce-client-jobclient-2.8.5.jar nnbench -operation create_write -maps 12 -reduces 6 \ -blockSize 1 -bytesToWrite 0 -numberOfFiles 1000 -replicationFactorPerFile 3 -readFileAfterOpen true \ -baseDir /benchmarks/NNBench-`hostname -s`
3. mrbench測試
mrbench會屢次重複一個小做業,用於檢查在集羣上小做業的是否可重複以及運行是否可高效,用法以下:
例子:如下會運行一個小做業一共50次
$ yarn jar hadoop-mapreduce-client-jobclient-2.8.5.jar mrbench -numRuns 50 測試結果: DataLines Maps Reduces AvgTime (milliseconds) 1 2 1 30248
4. mapreduce 排序測試
生成1G測試數據放到/examples/terasort-input
$ yarn jar hadoop-mapreduce-examples-2.8.5.jar teragen 10000000 /examples/terasort-input
開始排序
$ yarn jar hadoop-mapreduce-examples-2.8.5.jar terasort /examples/terasort-input /examples/terasort-output /examples/terasort-input 輸入目錄 /examples/terasort-output 輸出目錄
查看校驗數據
/examples/terasort-output/part-r-00000
校驗數據爲空,排序功能正常