配置Hive可能出现的问题:
元数据,mysql,hdfs的文件出错的话,查看配置文件
vi ${HIVE_HOME}/conf/XXX.xml
hive出现权限问题的话:
select user,host from user;(查看权限,%表示全部都有)
删除其他多余权限就可以了(很多时候hive识别权限会出错)
Hive介绍
Hive是用来进行数据分析的工具,他提供一种类SQL语言。
Hive没有本身的存储和计算存储,存储依赖于HDFS或者hbase 计算依赖于MR
Hive与Mysql的不同
hive的元数据(表名,字段名,分区,分桶,数据类型等)是存在关系型数据库(Mysql)上的。
- 存储:hive扩展性很强,SQL可以集群存储,但是存在容量上限,数据量越大,计算能力越低
- 执行引擎:hive 依赖于MR,SQL有自己的执行引擎
- 分析速度:大数据量的情况下hive更高效
- 执行延迟:hive 的执行延迟高
- 数据加载模式:hive 是读时模式(快),sql是写时模式,即写入数据时检查数据内容
- 数据操作:hive是数据覆盖和追加,SQL行级更新删除
- 应用场景:海量数据查询(OLAP),实时查询(OLTP)
DDL语句官网链接
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL
hive语句详见官网
http://hive.apache.org/
Hive的sql与Mysql的简单的不同
- 在Hive版本0.3.2之前是不支持in语法的
- 查询语句
select
a.s_id,stu.s_name,avg(a.s_score) as avgscore
from score a
join student stu on a.s_id = stu.s_id
group by a.s_id,stu.s_name(注:hive中select的字段如果没有被聚合一定要被groupby)
having avgscore >= 60;