------------恢复内容开始------------
《Hadoop权威指南》 第17章 关于Hive
定义: 信息平台可以描述为 "企业吸收、处理、生成信息的行为"与“帮助企业自身加速从经验数据中学习”的“中心”。
Hive简介
- Hive是一个建立在Hadoop集群上的数据仓库框架,方便对大规模HDFS数据集进行查询
- Hive是Apache项目之一,开源自FaceBook,可以作为一个通用、可伸缩的数据处理平台
- Hive可以把SQL查询转换成一系列在Hadoop集群上运行的作业,Hive把数据组织为表,通过这个方式为存储在HDFS上的数据赋予结构,比如元数据(表结构)就存储在metastore数据库中。
17.1 安装Hive
- hive.apache.org/downloads.html 选择镜像下载 版本和Hadoop的大版本号一致即可
- 解压,加进路径
tar xzf .....tar.gz
pwd
export HIVE_HOME=~/...-bin
export PATH=$PATH:$HIVE_HOME/bin
17.1.2 Hive的shell环境
- 基本与MysqL一致,
hive
启动 - 小插曲, hadoop需要先启动, ,
sbin/hadoop-daemon.sh start
,然后 关闭安全模式hdfs dfsadmin -safemode leave
- 然后还要先启动hive元数据服务,不然会报错
HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.Metadata.SessionHivemetastoreClient
- 启动Metadata, bin/hive --service metastore &
- 发生新的异常 MetaException
MetaException(message:Version @R_480_4045@ion not found in metastore. )
- 到 hive-site.xml中修改: hive.metastore.schema.verification设置成false
- 发生新的问题,需要配置MysqL,发生授权异常/版本兼容升级问题
ERROR 1805 (HY000): Column count of MysqL.user is wrong. Expected 45, found 42. The table is probably corrupted
- 后续又是各种问题, 一路百度报错信息
- 借鉴链接 https://blog.csdn.net/lz6363/article/details/85019891 一次性全部搞了一遍,可算搞完了hive的运行环境!
- 运行成功
hive> show tables;
OK
Time taken: 4.56 seconds
hive> show tables;
OK
Time taken: 0.022 seconds
hive>
17.2 hive本地加载sql示例
- 建表 create
- 加载数据 load input
- 查询 select
17.3.1 配置Hive
17.3.2 Hive服务
17.3.3 metastore
17.4.1 读时模式和写时模式
- 写时模式: 传统数据库, 表的模式在数据加载时候强制确定的,数据写入时会要求对照模式进行检查。有利于提升查询性能,可以方便对表中的列建立索引。
- 读时模式: hive对数据的验证,放到了查询的时候进行验证; 加载速度很快,数据加载仅仅只是文件复制或者移动.
17.4.2 hive 更新、事务和索引
- Hive更新,把新数据替换后放入新表实现
- Hive 不使用索引:“全表扫描” 是常态,hive本就被设计为用MapReduce操作的HDFS数据
- Hive 0.7.0 发布版本使用了标记锁和分区级锁,
show locks
获取一查询那些锁的信息 - 目前hive的索引分为两类,紧凑型索引和位图型索引
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。