Hive学习笔记(一)
什么是Hive
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射成一张表,并提供类SQL查询功能
- 构建在Hadoop之上的数据仓库
- 使用HQL作为查询接口
- 使用HDFS存储
- 使用MapReduce计算
本质是:将HQL转化成MapReduce程序
- 灵活性和扩展性比较好;支持UDF,自定义存储格式等
- 适合离线数据处理
Hive优点及使用场景
- 操作接口采用类SQL语法,提供快速开发的能力(简单,容易上手)。
- 避免了写MapReduce,减少开发人员的学习成本。
- 统一的元数据管理,可与impala/spark等共享元数据;
- 易扩展(HDFS+MapReduce;可以扩展集群规模;支持自定义函数)。
- 数据的离线处理。如:日志分析,海量结构化数据离线分析
- Hive的执行延迟比较高,因此Hive常用语需要数据分析,且对实时性要求不高的场合。
- Hive又是在于处理大数据,对于处理小数据没有优势,因为Hive的执行延迟较高。
Hive架构

用户接口
- CLI(hive shell)
- JDBC/ODBC(使用java访问hive)
- WebUI(浏览器访问Hive)
Metastore 元数据
元数据包括:表明、表所属的数据库(默认是default),表的拥有者、列/分区字段、表的类型(是否是外部表)、表的数据所在目录等。
Metastore默认存储在derby数据库中,推荐使用MySQL存储MetaStore。
Hadoop
使用HDFS进行存储,使用MapReduce进行计算
Hadoop安装的三种类型:
- 单机模式
此种模式基本不需要配置安装,数据存储在本机上,而非HDFS分布式系统上 - 伪分布式(测试环境)
此种模式将数据存储到HDFS系统上,同时MapReduce运行在Yarn系统中,只是只有一个节点,而非多个节点。 - 分布式(生产环境)
此种模式为生产环境应用,与伪分布式的主要区别只是有多个节点,配置更加复杂。
Hadoop安装过程中的注意事项
1. 服务器端绑定ip
sudo vi /etc/hosts

2. 创建用户组skedu及用户skadmin,并设置sudo权限
groupadd skedu
user add -g skedu skadmin
passwd skadmin
3. 给新创建的用户sudo权限
vi /etc/sudoers
//找到如下一行,在下面添加即可
.....
root ALL=(ALL) ALL
skadmin ALL=(ALL) ALL //这一行是添加的
4. 配置ssh无秘钥登录
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
5. 格式化HDFS文件系统
bin/hdfs namenode -format
6. 启动hadoop的HDFS文件系统
sbin/start-dfs.sh
Hive安装的一些重要步骤
初始化metastore默认derby
hive-2.3.9/bin/schematool -initSchema -dbType derby
运行Hive客户端
bin/hive
Comments | NOTHING