2015-10-28
hive安装:http://blog.youkuaiyun.com/yinhaonefu/article/details/44246357
基本语法:http://blog.youkuaiyun.com/yinhaonefu/article/details/44656749
HIve中变量和属性命名空间
1.hivevar 用户自定义变量
2.hiveconf Hive相关的配置属性
3.system Java定义的配置属性
4.env Shell环境定义的环境变量
使用set命令,显示或修改变量值
hive>set env:HOME 显示Shell环境的HOME变量值
hive>set hivevar:name=zhangsan 设置HIve中的变量name为zhangsan
hive>set hiveconf:hive.cli.print.current.db=true 设置Hive中的配置-显示当前数据库名称
hive>set hiveconf:hive.cli.print.header=true设置Hive中的配置-显示查询字段名称
对于常用的命令及属性,可以在HOME目录下的.hiverc文件中设置,每次启动命令时会默认执行.hiverc文件中的命令
HIve可以直接在shell环境一次执行后返回到shell环境中
hive -S -e "select * from table" > /tmp/data 将HIve中table表数据查询出并存储在本地文件系统中 -S 静默模式
如果记不清楚某个属性名,可以使用grep查看一下
hive -S -e "set" | grep warehouse 显示存在关键字warehouse的属性内容
hive -f /usr/local/file.hql 可以使用-f执行文件中的一个或多个HiveQL
hive> source /usr/local/file.hql在Hive环境使用source执行文件中的一个或多个HiveQL
HIve命令的操作历史会存储在HOME/.hivehistory中,会将最近10000行命令保存
hive>! pwd 在HIve环境中执行shell脚本,前面加上!即可
hive>dfs -ls / 在HIve环境中可去掉关键字hdfs,执行Hadoop命令
Hive脚本中使用--注释
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2015-10-29
HIve中集合类型
struct 类似于对象
定义struct(firstName STRING,lastName STRING)
struct('zhangsan','lisi')则 字段名.firstName为zhangsan
map 一组键值对元组集合 如果某个字段类型是map 则map('first','zhangsan','last','lisi')。通过字段名["last"]获取lisi
array 数组Array('zhangsan','lisi') 通过字段名[1]获取lisi
create table employees(
name STRING,
salary FLOAT,
address STRUCT<street:STRING,city:STRING,state:STRING,zip:INT>,
children ARRAY<STRING>, 下属
cards MAP<STRING,BIGINT> 各个银行的卡号
)
HIve读时模式
当数据加载到Hive表中时,不会验证数据是否有效,而是在读取数据时验证,如果少字段或者数据类型和字段定义不
符,则会显示null。
创建外部表时,需要使用location关键字指定一个目录。创建外部分区表时不需要使用location,在创建后,可以使用
alter新增分区 altert table tableName add partition(year=2015,month=10,day=29)
(关于内部,外部,分区表http://blog.youkuaiyun.com/yinhaonefu/article/details/44656749)