1,TestDFSIO write和read的性能測試, 測試hadoop讀寫的速度。該測試為Hadoop自帶的測試工具,位於$HADOOP_HOME/share/hadoop/mapreduce目錄中,主要用於測試DFS的IO性能。
寫入:
hadoop jar hadoop-mapreduce-client-jobclient-3.1.0.3.0.0.0-1634-tests.jar TestDFSIO -write -nrFiles 10 -size 10MB -resFile /tmp/TestDFSIOresults.txt
讀取:
hadoop jar hadoop-mapreduce-client-jobclient-3.1.0.3.0.0.0-1634-tests.jar TestDFSIO -read -nrFiles 10 -size 10 -resFile /tmp/TestDFSIOresults.txt
清空數據:
hadoop jar /usr/hdp/3.0.0.0-1634/hadoop-mapreduce/hadoop-mapreduce-client-jobclient-tests.jar TestDFSIO -clean
2,TeraSort是由微軟的數據庫專家Jim Gray創建的標准benchmark,輸入數據由Hadoop TeraGen產生。
生成數據:
hadoop jar /usr/hdp/3.0.0.0-1634/hadoop-mapreduce/hadoop-mapreduce-examples.jar teragen 數據量 數據位置
使用teragen方法進行排序:
hadoop jar /usr/hdp/3.0.0.0-1634/hadoop-mapreduce/hadoop-mapreduce-examples.jar terasort 輸入文件位置/par* 輸出文件位置
3,HiBench是一個大數據基准測試工具,它包含hadoopbench、sparkbench、flinkbench、stormbench、gearpumpbench等多個模塊。我們可以從github上下載源碼:
https://codeload.github.com/intel-hadoop/HiBench/zip/6.0
到Maven官網或其他鏡像站點下載Maven:
[root@n2 ~]# wget \ http://mirror.bit.edu.cn/apache/maven/maven-3/3.5.3/binaries/apache-maven-3.5.3-bin.tar.gz
解壓tarball,並配置Maven環境變量:
tar -xzvf apache-maven-3.5.3-bin.tar.gz -C /opt/
添加如下兩行到配置文件/etc/profile:
export MAVEN_HOME=/opt/apache-maven-3.5.3 export PATH=$MAVEN_HOME/bin:$PATH
查看maven版本:
mvn -v
要在HiBench中簡單構建所有模塊,請使用以下命令:
mvn -Dspark=2.1 -Dscala=2.11 clean package
但這樣會編譯所有模板,耗費大量時間,因為hadoopbench依賴於Mahout和Nutch等第三方工具,編譯過程會自動下載這些工具。如果我們運行這些模塊,也可以只構建特定的框架來加速編譯過程。
這里,我們只編譯編譯HadoopBench:
mvn -Phadoopbench -Dspark=2.1 -Dscala=2.11 clean package
詳細說明請參見官方文檔:
https://github.com/intel-hadoop/HiBench/blob/master/docs/build-hibench.md
3.1,指定hadoop配置
在配置文件conf/hadoop.conf中,定義hadoop相關信息:
屬性 |
值 |
備注 |
hibench.hadoop.home |
/usr/hdp/3.0.0.0-1634/hadoop-mapreduce |
Hadoop安裝目錄 |
hibench.hadoop.executable |
${hibench.hadoop.home}/../hadoop/bin/hadoop |
Hadoop可執行文件路徑 |
hibench.hadoop.configure.dir |
${hibench.hadoop.home}/etc/hadoop |
Hadoop配置文件目錄 |
hibench.hdfs.master |
nas:///hibench |
HiBench測試數據存放路徑 |
hibench.hadoop.release |
hdp |
Hadoop版本:apache/cdh5/hdp |
3.2,定義數據量級
在配置文件conf/hibench.conf中,定義數據量級別,如:
hibench.scale.profile = large
不同級別的實際數據量,定義在配置文件conf/workloads/micro/wordcount.conf:
參數 |
屬性 |
值 (byte) |
tiny |
hibench.wordcount.tiny.datasize |
32000 |
small |
hibench.wordcount.small.datasize |
320000000 |
large |
hibench.wordcount.large.datasize |
3200000000 |
huge |
hibench.wordcount.huge.datasize |
32000000000 |
gigantic |
hibench.wordcount.gigantic.datasize |
320000000000 |
bigdata |
hibench.wordcount.bigdata.datasize |
1600000000000 |
3.3,其他運行參數
還可以在配置文件conf/hibench.conf中,定義其他一些運行參數,如mapper數量、report文件路徑等參數,如:
屬性 |
默認值 |
備注 |
hibench.default.map.parallelism |
8 |
Mapper數量 |
hibench.default.shuffle.parallelism |
8 |
Reducer數量 |
hibench.report.dir |
${hibench.home}/report |
Report文件路徑 |
hibench.report.name |
hibench.report |
Report文件名 |
3.4,運行程序
運行測試數據
./bin/workloads/micro/wordcount/prepare/prepare.sh
使用測試數據進行測試
./bin/workloads/micro/wordcount/Hadoop/run.sh
等等 后續補充