基础操作部分
文章目录
- 基础操作部分
- 1.Hive安装
- 1.1 测试Hadoop
- 1.2 启动Hive
- 2.数据类型和文件格式
- 2.1 基本数据类型
- 2.2 集合数据类型
- 2.3文本文件数据编码
- 2.4读时模式
1.Hive安装
在学习中,不应该反复的困在安装软件中,应该更多的把精力放在应用和原理方面.这里省略了安装的整理.
(实验环境使用打包好的大数据软件环境,Hive使用本地模式.)
note:hive使用本地模式会运行的更快,可以设置属性来测试.
(支持在分布式或者伪分布式下的场景)
sethive.exec.mode.local.auto=true
1.1 测试Hadoop
hadoop dfs -ls /
hadoop jar demo.jar wc_in wc_out
hadoop dfs -cat wc_out/
1.2 启动Hive
Hive支持命令行CLI运行.(hive)
hive -help
#hive一次使用
hive -e "select * from dual;"
hive -s -e "select name from dual;" > /demo #把结果写到一个文件里面.(-S 开启静默模式)
#从文件中执行Hive查询
hive -f test.hql
#Hive支持Tab补全快捷键
#查看操作历史:$HOME/.hivehistory (存最近的100条)
#执行shell命令
hive> !/bin/echo "Hello";
hive> ! pwd
#执行Hadoop dfs命令
hive>dfs -ls /
#hive脚本注释:--
# 显示字段名称:set hive.cli.print.header=true
# 如果需要长期显示,键入配置文件.hiverc
2.数据类型和文件格式
2.1 基本数据类型
数据类型 | 长度 | 备注 |
tinyint | 1byte | |
smailint | 2byte | |
int | 4byte | |
bigint | 8byte | |
boolean | 布尔 | |
float | 单精度浮点数 | |
double | 双精度浮点数 | |
string | 字符序列 | |
timestamp | 时间戳 | |
binary | 字节数组 |
说明:
- 这些都是保留关键词.
- 这些都在对应的java数据类型.
- 工作中较多用到的是string,bigint,double,(Hadoop和hive中,强调优化磁盘的读写性能,对数据的长度限制不是很强)
- CAST,类型转换
2.2 集合数据类型
数据类型 | 长度 | 备注 |
struct | struct(‘Jon’,‘DOe’) | |
map | map(“name”,yxy",“Age”,“12”) | |
array | Array(“Jon”,“Bool”) |
说明:在工作的时候,遇到的这个次数不多,暂时跳过这部分.在后面再学习补充.
2.3文本文件数据编码
分隔符 | 说明 | |
\n | 换行 | |
^A (ctrl A) | 分割字段,可以使用\001 | |
^B | 用于在ARRAY,STRUCT,MAP之间做分割,可以用\002 | |
^C | 用于MAP中键的分割.可以输入\003代替 |
说明:
- 在存储数据的时候,需要额外注意一些问题,慎重处理分隔符问题.因为在一些情况下是存在\t.\n等奇怪的符号的,建议用一些特殊的符号.
- Hive在建表的时候支持定义字段的分隔符.这方便了数据的ETL过程.
- 自定义语句格式
row format delimited fields terminated by '\t'
2.4读时模式
和传统数据库写入数据不一样,在大数据的场景下,入库的数据可能有很多.因此会存在一些特殊场景,(数据和表结构不一致).hive在这种情况下,会使用null来填充,尽量纠正这些问题.