版本号
•Apache Spark 3.1.1 / 2.4.7•Apache Hadoop 2.7.7•TiSpark 2.3.13
环境
内网 3 台机器,每台 40 核 189 GB 内存 NVMe 3TB 磁盘,相互之间已配置好网络连接。
测试逻辑
Standalone 部署的 Spark SQL 读取 HDFS 上以 Parquet 格式存储的 TPC-H 100 数据,随后执行 Query 并计算 Query 耗时。弱依赖 TiSpark 完成数据导入,也可采用其他数据导入方式。强依赖 spark-sql-perl[1] 提供的执行框架。
测试步骤
搭建 HDFS 集群
下载 Hadoop 2.7.7 压缩包并解压,随后在启动脚本中设置环境变量,配置完成后重新进入 Shell 或通过 source
命令使其生效。
export HADOOP_HOME=/path/to/hadoop-2.7.7
export PATH=$PATH:$HADOOP_HOME/bin
这个操作需要在三台机器上都执行,不确定是否需要同一个路径,但是同一个路径是工作的。
配置 $HADOOP_HOME/etc/hadoop
目录下的 core-site.xml
,hdfs-site.xml
和 slaves
文件,本次性能测试不依赖 YARN 及 MapReduce 组件。
对于 core-site.xml
添加以下配置,根据具体环境相应调整 hostname 和文件路径。
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://h59:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:///root/tison/data/hadoop/tmp</value>
</property>
</configuration>
对于 hdfs-site.xml
添加以下配置,同样根据具体环境微调配置值。
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///root/tison/data/hadoop/hd