Hive学习笔记
笔记内容主要来自Hive编程指南
基础操作
Hive内部都有什么
- $HIVE_HOME/lib 目录下有 jar文件
- $HIVE_HOME/bin 目录下包含可执行文件,包括hive命令行界面(CLI)
- Hive 还有一些组件。Thrift服务提供了可远程访问其他进程的功能,也提供使用 JDBC和ODBC 访问 Hive的功能。这些都是基于Thrift服务实现的。
- 所有的Hive客户端都需要一个metastoreservice(元数据服务) ,Hve使用这个服务来存储表模式信息和其他元数据信息。默认是 使用Derby SQL。生产环境需要切换到 MySQL或者 其他关系型数据库。
- Hive提供了一个简单的Hive网页界面(HWI) , 提供了远程访问Hive的服务。
- conf目录下存放了Hive的配置文件。
Hive命令
bin/hive –help
hive服务
hive命名空间
hive中”一次使用命令”
hive -e "SELECT * FROM mytable LIMIT 3";
hive -S -e "SELECT * FROM mytable LIMIT 3";#静默模式
从文件中执行hive查询
hive -f /mypath/test.hql;
hiverc文件
hive -i ...#i选项允许用户指定一个文件,当cli启动时,提提示符出现前会先执行这个文件。Hive会自动在Home目录下寻找名为.hiverc的文件。(如果有这个文件的话)
hive cli 更多介绍
- 自动补全功能
- 查看操作命令历史(存放位置:$HOME/.hivehistory)
- 执行shell命令 ! 命令前加 感叹号
- hive内使用Hadoop的dfs命令
- Hive 脚本中注释用 - -
- 显示字段名称 hive.cli.print.header=true
数据类型和文件格式
基本数据类型
集合数据类型
文本文件数据编码
默认的记录和字段分隔符
指定分隔符:
CREATE TABLE employees(
name STRING,
salary FLOAT,
subordinates ARRAY<STRING>,
deductions MAP<STRING,FLOAT>,
address STRUCT<street:STRING,city:STRING,state:STRING,zip:INT>
)
ROW FORMAT DELIMITED
FILEDS TERMINATED BY '\001'
COLLECTION ITEMS TERMINATED BY '\002',
MAP KEYS TERMINATED BY '\003',
LINES TERMINATED BY '\N'
STORED AS TEXTFILE;
ROW FORMAT DELIMITED 这组关键词必须要写在其他子句(除了 STORED AS…子句)之前。
自定义分割 简单示例(逗号分割字段):
CREATE TABLE some_data(
first FLOAT,
second FLOAT,
third FLOAT
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ',';