服务器配置
当前hive通过群集方式安装,分别安装到node1-node3中,各主机的配置如下表:
主机 | CPU | 内存 | 硬盘 |
---|---|---|---|
Node1 | 1颗1核 | 14G | 14G |
Node2 | 1颗1核 | 2G | 14G |
Node3 | 1颗1核 | 2G | 14G |
创建test数据库
1. create table test(
2. name String,
3. gender String,
4. age String,
5. city String,
6. idNumber String,
7. cardNumber String,
8. balance String
9. )
10. row format delimited fields terminated by ',' lines terminated by '\n'
stored as textfile;
测试10万条数据
使用createtestdata.jar生成10万条测试数据,并导入hdfs,使用命令行put到hdfs的/data目录,或使用hdfs帐户登录hue,上传至/data目录
1. #切换至hdfs用户
2. su hdfs
3. #将文件testdata_10w.txt存入hdfs的/data目录
4. hadoop fs -put testdata_10w.txt /data
5. #查看目录情况
6. hadoop fs -ls /data
使用如下命令,将数据导入test表中
1. load data inpath '/data/testdata_10w.txt' into table test;
执行sql语句,查询测试数据中各城市的人员年龄分布情况及总余额信息:
1. SELECT
2. city AS city_name,
3. count(NAME) AS total_persons,
4. max(age) AS max_age,
5. min(age) AS min_age,
6. round(avg(age), 2) AS avg_age,
7. sum(balance) AS total_balance
8. FROM
9. test
10. GROUP BY
11. city
执行结果:31.93s
测试100万条数据
执行结果:43.827s
测试1000万条数据
执行结果:142.885s
测试1亿条数据
执行结果:1035.759s,约17分钟
测试结论
在当前服务器配置情况下,测试结果:
数据量 | 10万 | 100万 | 1000万 | 1亿 |
---|---|---|---|---|
结果 | 31.93s | 43.827s | 142.885s | 1035.759s |