Squall是Storm之上的类SQL查询工具,能够将类SQL语句转换成topology,然后提交给Storm运行。
安装Squall前要先安装Java和sbt(simple build tool),通过这两个软件将Squall源码编译成squall-0.2.0.jar和squall-dependencies-0.2.0.jar。
【一】安装sbt
1、下载sbt,解压后在bin目录下运行sbt脚本,首次运行会联网下载一些sbt依赖的软件包,例如会下载ivy2工具来管理包。
2、在/etc/profile里配置环境变量
3、配置好后可以运行sbt sbt-version输出版本信息,运行sbt -h输出帮助信息。
4、在sbt/conf/sbtopt里修改-sbt-version选项的值,安装的是哪个版本就修改成该值。
如果不修改,运行sbt package打包命令时候会默认使用最新版本的sbt,又会去重新下载sbt,这个没必要。
【二】安装Squall
1、github上下载squall源码,解压。
2、在bin目录下运行install.sh脚本。
运行之前,如果已经下载并安装了Storm,可以把脚本里下载Storm的命令注释掉,并且在storm_env.sh里修改自己已安装的Storm版本号。
3、在bin目录下./squall_local.sh ../test/squall/confs/local/0_01G_hyracks_ncl,可在终端中直接查看测试结果
【三】集群环境下运行Squall
修改配置文件如下:
DIP_DISTRIBUTED true DIP_QUERY_NAME hyracks DIP_TOPOLOGY_NAME_PREFIX tgl_squall_tpch DIP_DATA_ROOT /home/tgl/tpchdata/ DIP_SQL_ROOT ../test/squall/sql_queries/ DIP_SCHEMA_PATH ../test/squall/schemas/tpch.txt # DIP_DB_SIZE is in GBs DIP_DB_SIZE 1 ######################################## #DIP_OPTIMIZER_TYPE INDEX_SIMPLE #DIP_MAX_SRC_PAR 1 #DIP_OPTIMIZER_TYPE INDEX_RULE_BUSHY #DIP_MAX_SRC_PAR 1 #DIP_OPTIMIZER_TYPE NAME_MANUAL_PAR_LEFTY #DIP_PLAN CUSTOMER:2,ORDERS:3:4 #DIP_OPTIMIZER_TYPE NAME_MANUAL_COST_LEFTY #DIP_PLAN CUSTOMER,ORDERS #DIP_TOTAL_SRC_PAR 20 #DIP_OPTIMIZER_TYPE NAME_RULE_LEFTY #DIP_TOTAL_SRC_PAR 20 DIP_OPTIMIZER_TYPE NAME_COST_LEFTY DIP_TOTAL_SRC_PAR 20 ######################################## #below are unlikely to change DIP_EXTENSION .tbl DIP_READ_SPLIT_DELIMITER \| DIP_GLOBAL_ADD_DELIMITER | DIP_GLOBAL_SPLIT_DELIMITER \| DIP_ACK_EVERY_TUPLE true DIP_KILL_AT_THE_END true # Storage manager parameters # Storage directory for local runs STORAGE_LOCAL_DIR /tmp/ramdisk # Storage directory for cluster runs STORAGE_CLUSTER_DIR /home/tgl/tpchdata/storage STORAGE_COLD_START true STORAGE_MEMORY_SIZE_MB 4096
1、用TPC-H(Transaction processing performance council)工具产生测试数据,将测试数据放到DIP_DATA_ROOT指定的文件下,多机集群情况下还要scp到集群各个机器上。
2、集群环境下运行./squall_cluster.sh ../test/squall/confs/cluster/1G_hyracks
3、可以在Storm UI中查看topology运行情况;在Storm supervisor机器的storm/logs/worker-xxxx.log中能够查看查询结果