Hive编程指南学习笔记-1

基础操作部分

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 字节数组

说明:

  1. 这些都是保留关键词.
  2. 这些都在对应的java数据类型.
  3. 工作中较多用到的是string,bigint,double,(Hadoop和hive中,强调优化磁盘的读写性能,对数据的长度限制不是很强)
  4. 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来填充,尽量纠正这些问题.

猜你喜欢

转载自blog.csdn.net/qq_30901367/article/details/83051398