999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

將TPC-DS工具合入HiBench測(cè)試框架的方法

2019-01-08 08:37:44劉建鵬劉堯

劉建鵬 劉堯

摘要:TPC-DS是事務(wù)性能管理委員會(huì)(TPC)組織發(fā)布的一種數(shù)據(jù)庫(kù)評(píng)測(cè)基準(zhǔn),其中共包含99種查詢語(yǔ)句,涵蓋各種復(fù)雜的SQL應(yīng)用,與真實(shí)數(shù)據(jù)一致。但是執(zhí)行時(shí)生成數(shù)據(jù)、生成查詢語(yǔ)句、執(zhí)行語(yǔ)句都需要手動(dòng)操作,使用起來(lái)較為不方便。本文介紹一種將TPC-DS工具合入HiBench測(cè)試框架的方法。

關(guān)鍵詞:TPC-DS;HiBench;性能測(cè)試

中圖分類(lèi)號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2019)10-0064-02

HiBench是一個(gè)大數(shù)據(jù)性能測(cè)試套件,可以用來(lái)測(cè)試一個(gè)Hadoop集群對(duì)于各種常見(jiàn)任務(wù)的處理速度。可以對(duì)MapReduce、Spark、Flink、Hdfs等組件進(jìn)行性能測(cè)試,支持的負(fù)載包括文件讀寫(xiě)、圖處理、機(jī)器學(xué)習(xí)、數(shù)據(jù)庫(kù)操作等類(lèi)型。但是HiBench提供的SQL類(lèi)執(zhí)行語(yǔ)句較少,主要是Join、Aggregation操作。而TPC-DS工具包含了大量的SQL語(yǔ)句,但并沒(méi)有提供便捷的使用方法。因此我們結(jié)合兩種測(cè)試工具,將TPC-DS合入HiBench框架進(jìn)行執(zhí)行。

1 HiBench框架介紹

以HiBench5.0版本為例,根目錄下有四個(gè)目錄,分別是src、bin、conf、workloads。src目錄存放待執(zhí)行負(fù)載的源代碼,編譯后生成jar包;conf目錄存放大部分的配置,如數(shù)據(jù)規(guī)模、大數(shù)據(jù)組件的路徑、集群節(jié)點(diǎn)數(shù)等;workloads目錄存放各個(gè)負(fù)載的執(zhí)行入口;bin目錄存放一些控制負(fù)載執(zhí)行的腳本,如讀取配置、啟動(dòng)任務(wù)、展示進(jìn)度、記錄結(jié)果等。

以使用mapreduce執(zhí)行bayes作業(yè)為例,工具的執(zhí)行流程如下:首先使用mvn clean package命令編譯整個(gè)HiBench工具;然后編輯conf/99-user_defined_properties.conf文件,配置關(guān)鍵參數(shù),如hibench.scale.profile表示數(shù)據(jù)規(guī)模、hibench.hadoop.home表示Hadoop的安裝路徑、hibench.hadoop.executable記錄hadoop命令的執(zhí)行位置;再分別運(yùn)行workloads/bayes/prepare/prepare.sh和 workloads/bayes/mapreduce/bin/run.sh來(lái)生成數(shù)據(jù)文件和啟動(dòng)負(fù)載;等待任務(wù)執(zhí)行結(jié)束后,可以通過(guò)查看生成的report/hibench.report文件查看作業(yè)執(zhí)行的時(shí)間及集群的吞吐量等結(jié)果。

2 加入TPC-DS的方法

首先需要增加執(zhí)行入口。以hive作計(jì)算引擎為例,需要增加workloads/tpcds/hive/bin/run.sh文件,主要內(nèi)容如下:

……

show_banner start

CRT_SQL=${SQL_GEN}/create_tb.sql

create_tpcds_tb ${CRT_SQL}

execute_tpcds_query sparksql

show_bannar finish

leave_bench

……

其中${SQL_GEN}為存放TPC-DS創(chuàng)建表語(yǔ)句文件的路徑。

然后在bin/function/workload-functions.sh文件中增加如下函數(shù):

function prepare_tpcds_data(){

sql_scale=$1

cd ${SQL_GEN}

parallel=10

for ((i=1;i<=$parallel;i++))

do

${SQL_GEN}/dsdgen -scale $sql_scale -dir ${SQL_DATA_DIR} -parallel $parallel -child $i 2>/dev/null 1>&2 &

done

wait

tbs=(dbgen_version customer_address customer_ demographics date_dim warehouse ship_mode time_dim reason income_band item store call_center customer web_site store_returns household_demographics web_page promotion catalog_page inventory catalog_returns web_returns web_sales catalog_sales store_sales)

for table in ${tbs[@]}

do

$HADOOP_EXECUTABLE fs -mkdir -p ${OUTPUT_HDFS}/$table 2>/dev/null

$HADOOP_EXECUTABLE fs -rm -r -skipTrash ${OUTPUT_HDFS}/$table/*.dat 2>/dev/null

$HADOOP_EXECUTABLE fs -put ${SQL_DATA_DIR}/${table}*.dat ${OUTPUT_HDFS}/$table 2>/dev/null

done

}

function create_tpcds_tb(){

create_sql_file=$1

rm -f ${create_sql_file}

sed “s#\${TPCDS_DB}#${TPCDS_DB}#g” ${SQL_GEN}/create_tb_template.tpl >> ${create_sql_file}

CMD=“${LOADDATA_EXECUTABLE} -f ${create_sql_file}”

execute_withlog $CMD

}

function execute_tpcds_query(){

exec_type=$1

cd ${SQL_GEN}

CUR_WORKLOAD_TMP=${TPCDS_DB}

for query in ${QUERY_SQL_LIST}

do

${SQL_GEN}/dsqgen -TEMPLATE $query -directory ${SQL_GEN}/query_new -dialect ${exec_type} -scale ${DATASIZE} -output_dir ${W_S_FOLDER}

sed “1 iuse ${TPCDS_DB};” -i ${W_S_FOLDER}/query_0.sql

mv ${W_S_FOLDER}/query_0.sql ${W_S_FOLDER}/${query}.sql

local CUR_WORKLOAD=${CUR_WORKLOAD_TMP}_${query}

echo “execting ${query}”

START_TIME=`timestamp`

CMD=“ ${LOADDATA_EXECUTABLE} -f ${W_S_FOLDER}/${query}.sql”

execute_withlog $CMD

END_TIME=`timestamp`

mv ${W_S_FOLDER}/bench.log ${W_S_FOLDER}/${query}.log

gen_report ${START_TIME} ${END_TIME} 0

}

以上prepare_tpcds_data函數(shù)用于生成TPC-DS工具使用的數(shù)據(jù)并將其傳至HDFS的相應(yīng)目錄;create_tpcds_tb函數(shù)用于執(zhí)行建表語(yǔ)句,將HDFS數(shù)據(jù)目錄與外表關(guān)聯(lián)起來(lái);execute_tpcds_query函數(shù)用于執(zhí)行SQL語(yǔ)句的操作,其中${QUERY_SQL_LIST}為所有需要執(zhí)行查詢的名稱(chēng)列表。每次做查詢時(shí),會(huì)使用dsqgen程序生成一個(gè)查詢文件供計(jì)算引擎使用;SQL語(yǔ)句執(zhí)行完成后,將執(zhí)行結(jié)果放于report目錄下以供查閱,最后通過(guò)gen_report函數(shù)生成性能結(jié)果。

至此,只要于conf目錄下配置相應(yīng)的變量即可實(shí)現(xiàn)TPC-DS工具的自動(dòng)化執(zhí)行。

主站蜘蛛池模板: 亚洲综合九九| 97国产一区二区精品久久呦| 色婷婷久久| 亚洲女同一区二区| 亚洲美女视频一区| 综合亚洲色图| 欧美一级高清免费a| 在线免费不卡视频| 久久永久视频| 国产成人夜色91| a毛片免费观看| 欧美成人一级| 一级毛片在线播放| 中文字幕日韩丝袜一区| 直接黄91麻豆网站| 99视频在线看| 中文字幕首页系列人妻| 亚洲国产精品不卡在线| 日本精品影院| 国产不卡国语在线| 日本人真淫视频一区二区三区| 国产丝袜91| 国产精品手机视频一区二区| 日韩精品一区二区三区视频免费看| 久久这里只精品国产99热8| 99精品国产高清一区二区| 亚洲精品无码成人片在线观看| 亚洲综合经典在线一区二区| 久久精品国产999大香线焦| 草草线在成年免费视频2| 久草青青在线视频| 亚洲欧美日韩中文字幕一区二区三区| 国产精品午夜福利麻豆| 国产成人调教在线视频| 国产草草影院18成年视频| 潮喷在线无码白浆| 手机精品福利在线观看| 亚洲最大看欧美片网站地址| 蜜芽国产尤物av尤物在线看| 找国产毛片看| 国产免费a级片| 国产区在线看| 精品国产福利在线| 中文字幕有乳无码| 国产高清又黄又嫩的免费视频网站| 亚洲第一国产综合| 国产精品性| 日本国产精品一区久久久| 天堂在线www网亚洲| 色男人的天堂久久综合| 最新日韩AV网址在线观看| 亚洲婷婷在线视频| 免费高清a毛片| 男人天堂亚洲天堂| 天天色综合4| 免费中文字幕一级毛片| 中文字幕 91| 亚洲精品久综合蜜| 午夜精品福利影院| 91久久精品日日躁夜夜躁欧美| 亚欧成人无码AV在线播放| 国产簧片免费在线播放| 992tv国产人成在线观看| 亚洲福利视频网址| 成人日韩视频| 91外围女在线观看| 国产在线一二三区| 亚洲成人高清在线观看| 久久国产高潮流白浆免费观看 | 青青草原国产精品啪啪视频| 欧美国产日韩一区二区三区精品影视| 永久在线精品免费视频观看| 动漫精品啪啪一区二区三区| 国产成人毛片| 亚洲国产欧美目韩成人综合| 日本免费一级视频| 欧美日韩高清在线| 久久国产精品影院| 国产精品视频3p| 久久一色本道亚洲| 国产色爱av资源综合区| 无码一区中文字幕|