Hive出现的原因
Hadoop通过MapReduce(Hadoop和MapReduce后续我也会提到)可以将复杂的计算任务分割成多个处理单元然后分散到一群家用的或者服务器级别的硬件机器上,从而降低成本并提供运行可伸缩性。而随之出现的问题是用户如何从现有的数据基础架构转移到Hadoop平台上。Hive相当于一门SQL方言,用于查询存储在Hadoop集群上的数据。
Hive与传统SQL的异同
1 Hive不支持记录级别的更新、插入和删除操作
这是由于Hadoop以及HDFS设计本身约束的
2 Hive查询延时严重
传统数据库秒级别可以完成的查询,在Hive中往往需要执行更长的时间。因为Hadoop是一个面向批处理的系统,而MapReduce任务(job)的启动过程需要消耗较长的时间。
3 Hive不支持事务
Hive如何使用
1 在Hive中直接写SQL语句
$ hive -e "select * from mytable limit 3;"
2 从文件中执行Hive查询
例如将sql语句保存在wiehqueries.hql文件中
$ hive -f /path/to/file/withqueries.hql