下载
官网:
https://www.tpc.org/tpc_documents_current_versions/current_specifications5.asp
官网可能需要连接外网VPN才能下载。
将下载好的安装包解压到路径/opt/tpcds并改名字为tpcds3.2.0
安装编译环境
yum -y install gcc gcc-c++ expect
编译tpcds
进入tools目录
cd /opt/tpcds/tpcds3.2.0/tools
在该目录下执行make命令进行编译
make
生成数据,生成数据大小和生成数据目录按自己需求配置
mkdir/opt/tpcds/tpcdsdata
cd /opt/tpcds/tpcds3.2.0/tools
./dsdgen -SCALE 1GB -DIR /root/tpcdsdata
完成后进入生成数据的目录即可看到生成的数据。
由于生成的数据不能直接导入数据库中,所以需要手动导入
在Hive中创建相应数据库:
Create database dbname;
建表语句保存在tools目录下的tpcds.sql文件中,需做一定的修改。
建表之后导入事先创建的数据:
LOAD DATA local INPATH "/opt/tpcds/tpcdsdata/date_dim.dat" OVERWRITE INTO TABLE dbname.date_dim;
依次导入25张表的数据。
存在的问题
用该方式创建的Hive表没有分区和统计信息等,且比较麻烦。因此推荐直接使用hive-testbench-hdp
下载压缩包
github地址:
将下载的压缩包解压到/opt/tpcds
安装编译环境
sudo yum group install "Development Tools"
该命令将安装一堆新的相关软件包,包括gcc,g++和make。
验证是否已成功安装GCC编译器
gcc –version
./tpcds-setup.sh 10 /tpcds
其中10表示生成10G大小数据,/tpcds指生成数据的hdfs路径。
6. 存在问题及解决方案
生成数据后可以在hdfs指定目录下找到相应的数据,但是在hive中确没有相应数据库。
解决:
开启Hive的metastore和hiveserver2服务:
hive --service metastore -p 9083 &
hive --service hiveserver2 &
将tpcds-setup.sh脚本中的hive链接地址修改为自己的:
HIVE= "beeline …"
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
修改配置文件hdfs-site.xml,添加如下内容:
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
修改Hive的hive-site.xml文件,cd /usr/local/hive/conf, 添加以下内容:
<property>
<name>hive.server2.thrift.client.user</name>
<value>root</value>
<description>Username to use against thrift client</description>
</property>
<property>
<name>hive.server2.thrift.client.password</name>
<value>123456</value>
<description>Password to use against thrift client</description>
</property>
重启hadoop和hiveserver2服务。
8. 生成100G测试数据
./tpcds-setup.sh 100 /tpcds
生成完成后进入Hive发现已生成数据库tpcds_bin_partitioned_orc_100
9. 生成统计信息
进入Hive,选中数据库tpcds_bin_partitioned_orc_100,对24张表:
analyze table tableName compute statistics for columns;