文章也同時在個人博客 http://kimihe.com/更新
引言
HiBench是intel為評估各大數據框架而設計的測試集,它可以用來測試hadoop集群對于常見計算任務的性能。從普通的排序,字符串統計到機器學習,數據庫操作,圖像處理和搜索引擎,都能夠涵蓋。本文是HiBench中hadoopbench的快速配置指南。更加具體的使用說明可以參考官方wiki。
軟件依賴
HiBench需要java環境,以及Maven管理。
安裝java運行環境
安裝JDK&JRE
sudo apt-get install openjdk-8-jre openjdk-8-jdk
建議裝version 8不要裝9。安裝完成后,默認路徑是/usr/lib/jvm/java-8-openjdk-amd64
,如果不一致請搜索到正確路徑。
添加環境變量
cd
vim .bashrc
添加如下jave的PATH:
# JAVA PATH
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
更新環境變量
source .bashrc
測試java環境
java -version
看到相應版本信息輸出即表明配置正確:
hadoop@hadoop-master:~$ java -version
openjdk version "1.8.0_121"
OpenJDK Runtime Environment (build 1.8.0_121-8u121-b13-0ubuntu1.16.04.2-b13)
OpenJDK 64-Bit Server VM (build 25.121-b13, mixed mode)
安裝Maven
方法1:直接安裝
這是最方便的方法,即直接sudo apt-get instll maven
。
方法2:手動安裝
下載Maven包
當然,也可以選擇手動安裝:
wget http://apache.fayea.com/maven/maven-3/3.5.0/binaries/apache-maven-3.5.0-bin.zip
解壓縮
unzip apache-maven-3.5.0-bin.zip -d /YOUR/PATH/TO/RESTORE
筆者解壓位置為/usr/local/
。
添加環境變量
cd
vim .bashrc
添加如下Maven的PATH:
# set maven environment
export M3_HOME=/usr/local/apache-maven-3.5.0
export PATH=$M3_HOME/bin:$PATH
更新環境變量
source .bashrc
測試Maven環境
mvn -v
看到相應版本信息輸出即表明配置正確:
hadoop@hadoop-slave1:~$ mvn -v
Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-04T03:39:06+08:00)
Maven home: /usr/local/apache-maven-3.5.0
Java version: 1.8.0_121, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-8-openjdk-amd64/jre
Default locale: en_US, platform encoding: ANSI_X3.4-1968
OS name: "linux", version: "4.4.0-53-generic", arch: "amd64", family: "unix"
下載HiBench
git clone https://github.com/intel-hadoop/HiBench.git
比較慢,建議直接網頁下載zip包,然后解壓到理想的目錄下。
安裝Hibench
切到HiBench下,執行對應的安裝操作,可以選擇自己想要安裝的模塊。以安裝hadoop框架下用于測試sql的模塊為例:
mvn -Phadoopbench -Dmodules -Psql -Dscala=2.11 clean package
更多安裝命令可見https://github.com/intel-hadoop/HiBench/blob/master/docs/build-hibench.md。
鑒于網絡因素,建議一個模塊一個模塊的安裝,某些模塊的安裝可能會非常耗時。
配置HiBench
主要配置conf/hadoop.conf
及conf/hibench.conf
兩個文件。
hadoop.conf
筆者的hadoop是安裝在/usr/local/hadoop-2.8.0
目錄下的,并且以單機localhost:9000(真分布式時使用真實的IP:port)為例:
# Hadoop home
hibench.hadoop.home /usr/local/hadoop-2.8.0
# The path of hadoop executable
hibench.hadoop.executable /usr/local/hadoop-2.8.0/bin/hadoop
# Hadoop configraution directory
hibench.hadoop.configure.dir /usr/local/hadoop-2.8.0/etc/hadoop
# The root HDFS path to store HiBench data
hibench.hdfs.master hdfs://localhost:9000/user/hadoop/HiBench
# Hadoop release provider. Supported value: apache, cdh5, hdp
hibench.hadoop.release apache
hibench.conf
The definition of these profiles can be found in the workload's conf file i.e. conf/workloads/micro/wordcount.conf
hibench.scale.profile tiny
# Mapper number in hadoop, partition number in Spark
hibench.default.map.parallelism 8
# Reducer nubmer in hadoop, shuffle partition number in Spark
hibench.default.shuffle.parallelism 8
主要設置測試集運行時的數據量和并發度。
運行HiBench
安裝完成后,可以運行其中的測試集。首先要啟動hadoop:
start-dfs.sh;
start-yarn.sh;
關于hadoop的快速配置教程請見Hadoop真分布式集群最速搭建攻略
。
以運行Hadoop框架下micro集的sort為例:
bin/workloads/micro/sort/prepare/prepare.sh
bin/workloads/micro/sort/hadoop/run.sh
等待讀條MapReduce完畢,可以在report/sort/hadoop/bench.log
處查看具體的運行結果和日志。運行結果大致是這樣的:
17/05/11 15:16:41 INFO client.RMProxy: Connecting to ResourceManager at localhost/127.0.0.1:8032
Running on 1 nodes to sort from hdfs://localhost:9000/user/hadoop/HiBench/HiBench/Sort/Input into hdfs://localhost:9000/user/hadoop/HiBench/HiBench/Sort/Output with 8 reduces.
Job started: Thu May 11 15:16:43 CST 2017
17/05/11 15:16:43 INFO client.RMProxy: Connecting to ResourceManager at localhost/127.0.0.1:8032
17/05/11 15:16:56 INFO input.FileInputFormat: Total input files to process : 8
17/05/11 15:17:11 INFO mapreduce.JobSubmitter: number of splits:24
17/05/11 15:17:15 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1494484569605_0006
...
17/05/11 15:17:27 INFO mapreduce.Job: map 0% reduce 0%
17/05/11 15:17:43 INFO mapreduce.Job: map 25% reduce 0%
...
17/05/11 15:22:40 INFO mapreduce.Job: map 100% reduce 98%
17/05/11 15:22:48 INFO mapreduce.Job: map 100% reduce 100%
7/05/11 15:23:02 INFO mapreduce.Job: Job job_1494484569605_0006 completed successfully
17/05/11 15:23:02 INFO mapreduce.Job: Counters: 51
File System Counters
...
Job Counters
...
Map-Reduce Framework
...
Shuffle Errors
...
File Input Format Counters
...
File Output Format Counters
...
Job ended: Thu May 11 15:23:02 CST 2017
The job took 378 seconds.
總結
本文是hadoop常用測試集HiBench快速配置指南,希望對大家有所幫助。任何問題歡迎在下方留言,筆者會及時回答。