1、搭建Hadoop平台+Hive,计算使用mapreduce
2、多大数据可以称大数据?对于谁来说?本文对于MySQL来说,另外不从功能特性等方面比较,就单单比较数据查询时间
测试环境虚拟机1
Mysql:
内存:4GB
处理器:2
硬盘:500GB
测试环境虚拟机2
Hadoop:3.3.2
Hive:3.1.2
集群:
node1:内存4GB 硬盘:20GB
node2:内存2GB 硬盘:20GB
node2:内存2GB 硬盘:20GB
测试表为传感器观测数据表
数据总量:71864040
导出CSV:3.19GB
hive建表语句:
- create table ittest.ADCP(
- `time` date comment "时间",
- depth_cell int comment "深度",
- beam int comment "层位",
- corrleation_magnitude int comment "corrleation",
- echo_intensity double comment "intensity",
- good_percent int comment "%",
- velocity double comment "速度"
- )
- row format delimited fields terminated by ",";
表结构

测试语句1:select * from ADCP limit 100;
MySQL:0.003s Hive:0.254s
测试语句2:select * from ADCP where `time` between '2019-07-04' and '2019-07-05';
MySQL:1.783s Hive:2min52s
测试语句2:select * from ADCP where `time` between '2019-07-04' and '2019-08-04';
MySQL:45.155s Hive:3min12s
MySQL时间上一直优于Hive,MySQL功能上更强大,不需要Hive
3.19GB、7000万条数据对于Mysql来说,的确是比较大的数据,影响了查询运算的时间
但是对于hive来说,数据不大,没有优势
新数据表:30GB 10.15亿条数据
再执行查询
测试语句1:select * from ADCP where `time` between '2019-07-04' and '2019-07-05';
MySQL:18min20s Hive:4min31s
Hive的查询优势开始显现,但是本文用的是mapreduce进行计算,是比较慢的选择,如果用spark,Hive会更快得到查询结果。另外,整个过程都在个人笔记本上集群,资源、性能都差些。
Hive主要用于不太注意时效性的数仓,关注的点:大数据、分布式查询计算