目录

Hive

Hive

1 概述

元数据管理: https://github.com/linkedin/WhereHows

2 hive 安装

3 hive-site.xml 配置

4 hive command

4.1 Hive Cli

4.1.1 hive执行dfs命令

hive> dfs -ls /;
  /tmp/xx
  

4.1.2 hive Cli “一次性” 使用

hive -S -e "select * from table  limit 3"
# -S 静态模式

4.1.3 hive 从文件中执行hive查询

方法一:
hive -f /tmp/demo.hql

cat /tmp/demo.hql
select * from $table;

方法二:
hive> source  /tmp/demo.hql;

4.1.3 hive hiverc文件

  • 对于频繁初始化操作的命令,可以写到 $HOME/.hiverc 中, 当执行hive命令时,会自动执行此文件中的内容.

4.1.4 hive Cli 历史命令

  • 记录文件 $HOME/.hivehistory

4.1.5 hive 执行shell命令

# -- 是注释符
hive> -- echo hello;
hive> !echo  hello;
hello
hive> !pwd;
/data/bokun.wang

4.2 Hive Create Table

4.2.1 Create cvs table

#需要引入SERDE指定数据格式为csv,默认逗号分隔,可以指定其他分隔符
CREATE TABLE alert_info (
    status string,
    environment string,
    ...
    nowTime string,
    day string
    )

partitioned by (
    day string)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'

LOCATION '/$hdfs目录/xx/xx';

4.2.2 create json table

#SERDE指定json数据格式,默认不支持json格式,参照 7.1 引入json jar
CREATE TABLE alert_info (
    status string,
    level string,
    ...
    startsAt string
    )

partitioned by (
    daily string)

ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'

STORED AS TEXTFILE

LOCATION '/$hdfs目录/xx/xx';

4.3 Create partition

#create partition,xx.hql
USE ${DB_NAME};

ALTER TABLE ${TABLE_NAME}  ADD IF NOT EXISTS PARTITION (daily='${Day}') LOCATION '${Path}'

5 权限管理

6 Kerberos

7 Hive dependence jar

7.1 hive-json-serde

https://github.com/rcongiu/Hive-JSON-Serde

配置

hive.aux.jars.path

-w759

-w1092

Q&A