Hive简介
- 官网: http://hive.apache.org/
- 原因: 使用SQL语句, 对非Java开发者对hdfs的数据做mapreduce操作
- 数据仓库
- 数据仓库和数据库的区别: 对数据进行分析和交互式访问数据
- 解释器, 编译器, 优化器
- 元数据存储在关系型数据库中
配置
- 下载地址:http://mirrors.shuosc.org/apache/hive/hive-2.3.3/
- 解压到/opt/hadoop/hive2/下环境变量
- 设置conf
1 | mv hive-default.xml.template hive-site.xml |
修改mysql权限:
1 | select @@validate_password_policy; |
启动
1 | > schematool -dbType mysql -initSchema |
问题:ssl连接在jdbc后加上&\amp;
- hdfs上新建hive目录
1 | hadoop fs -mkdir -p /user/hive/warehouse |
内部表和外部表的区别:
- 创建时需要定制目录
- 删除内部表会将表结构和元数据全部删除
- 外部表只删除表结构,不删除元数据.
分区
- 分区字段不能在表的列中
怎么分区?
- 分区规则
- 增加分区-实质就是加目录
- 添加分区的时候必须在现有分区的基础之上
- 删除分区的时候, 会将所有的存在的分区都删除.
操作
官方教程: https://cwiki.apache.org/confluence/display/Hive/LanguageManual
create
1 | CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name |
delete
1 | DROP (DATABASE|SCHEMA) [IF EXISTS] database_name [RESTRICT|CASCADE]; |
加数据
- insert
- load data
- from table_name insert 语法
工具
beeline
连接方式:
- beeline / !connect jdbc:hive2://node0:10000/default -n root 123
退出
1 | !quit |
Hive函数
自定义函数:
- 继承UDF