HIVE的分区、hive关联Hbase、UDF函数
来源:互联网 发布:cst仿真软件破解版 编辑:程序博客网 时间:2024/06/07 22:49
Hive and HDFS
原始数据
//建立hive和Hdfs的外部关联表
CREATE EXTERNAL TABLE people(id int,sex string,name string)
partitioned by (logdate string,hour string)
row format delimited fields terminated by ‘,’;
//追加数据
ALTER TABLE people ADD IF NOT EXISTS PARTITION(logdate=20160111,hour=00)
LOCATION ‘/user/yuhui/20160111/00’;
Hive partition Query
分区背景
1)在Hive Select查询中一般会扫描整个表内容,会消耗很多时间做没必要的工作。有时候只需要扫描表中关心的一部分数据,因此建表时引入了partition概念。
2)分区表指的是在创建表时指定的partition的分区空间。
3)如果需要创建有分区的表,需要在create表的时候调用可选参数partitioned by
分区技术细节
1)一个表可以拥有一个或者多个分区,每个分区以文件夹的形式单独存在表文件夹的目录下。
2)表和列名不区分大小写。
3)分区是以字段的形式在表结构中存在,通过describe table命令可以查看到字段存在,但是该字段不存放实际的数据内容,仅仅是分区的表示
ALTER TABLE people ADD IF NOT EXISTS PARTITION(logdate=20160111,hour=00) LOCATION ‘/user/yuhui/20160111/00’;
ALTER TABLE people ADD IF NOT EXISTS PARTITION(logdate=20160112,hour=00) LOCATION ‘/user/yuhui/20160112/00’;
Hive 条件查询和多表查询
Hive的条件查询和多表join查询都和SQL查询一样,唯一不同的是hive将查询转为
MapReduce的job运行。
Hive and Hbase
Hbase的建表
Hbase的数据插入
创建hive连接Hbase的外部表
CREATE EXTERNAL TABLE hive_join_hbase(
key string,
id string,
name string,
sex string
)
STORED BY ‘org.apache.hadoop.hive.hbase.HBaseStorageHandler’
WITH SERDEPROPERTIES
(“hbase.columns.mapping”=”:key,info:id,info:name,info:sex”)
TBLPROPERTIES(“hbase.table.name”=”bigdata”);
通过hive查询数据
根据rowkey查询
select * from hive_join_hbase where key=‘people1‘
根据某个字段查询
select * from hive_join_hbase where name =‘wangya‘
组合查询
select * from hive_join_hbase where name = wangya ’ and sex=man’
Hive and UDF
编辑Java程序
import org.apache.hadoop.hive.ql.exec.UDF;
public class helloUDF extends UDF {
public String evaluate(String str) {
try {
return “HelloWorld ” + str;
} catch (Exception e) {
return null;
}
}
}
添加到hive的第三方jar hive>ADD JAR helloudf.jar;
自定义hive临时函数名称 hive>create temporary function helloworld as ‘com.hrj.hive.udf.helloUDF’;
使用UDF函数 hive> select helloworld(t.col1) from t limit 10;
删除UDF函数 hive> drop temporary function helloworld;
Hive的第三方Jar包的路径
Hive/conf/hive-env.sh
export HIVE_AUX_JARS_PATH=$HIVE_HOME/lib
Hive的相关命令
创建新表
hive> CREATE TABLE t_hive (a int, b int, c int) ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘\t’;
导入数据t_hive.txt到t_hive表
hive> LOAD DATA LOCAL INPATH ‘/home/cos/demo/t_hive.txt’ OVERWRITE INTO TABLE t_hive ;
正则匹配表名
hive>show tables ‘t‘;
增加一个字段
hive> ALTER TABLE t_hive ADD COLUMNS (new_col String);
重命令表名
hive> ALTER TABLE t_hive RENAME TO t_hadoop;
从HDFS加载数据
hive> LOAD DATA INPATH ‘/user/hive/warehouse/t_hive/t_hive.txt’ OVERWRITE INTO TABLE t_hive2;
从其他表导入数据
hive> INSERT OVERWRITE TABLE t_hive2 SELECT * FROM t_hive ;
创建表并从其他表导入数据
hive> CREATE TABLE t_hive AS SELECT * FROM t_hive2 ;
仅复制表结构不导数据
hive> CREATE TABLE t_hive3 LIKE t_hive;
通过Hive导出到本地文件系统
hive> INSERT OVERWRITE LOCAL DIRECTORY ‘/tmp/t_hive’ SELECT * FROM t_hive;
Hive查询HiveQL
from ( select b,c as c2 from t_hive) t select t.b, t.c2 limit 2;
select b,c from t_hive limit 2;
- HIVE的分区、hive关联Hbase、UDF函数
- hive的UDF 函数
- hive的UDF 函数
- hive的UDF 函数
- hive udf写hbase
- 写hive的udf函数
- 编写hive udf和使用hive udf:hue的hive界面中使用hive udf函数、oozie使用hive udf函数、hive命令行使用udf函数
- 编写hive udf和使用hive udf:hue的hive界面中使用hive udf函数、oozie使用hive udf函数、hive命令行使用udf函数
- 开发hive UDF函数
- HIVE 自定义函数 UDF
- HIVE UDF函数(一)
- HIVE UDF函数使用
- 开发hive UDF函数
- Hive UDF函数
- hive 永久udf函数
- Hive自定义函数-UDF
- hive UDF函数开发
- hive 永久udf函数
- 欢迎使用CSDN-markdown编辑器
- hdu1394线段树求逆序数
- CVE-2014-3153笔记
- 在Linux中使用线程
- 53.创建你自己的Framework
- HIVE的分区、hive关联Hbase、UDF函数
- Hibernate和MyBatis的区别
- PAT 乙级 1013. 数素数
- android AndFix热补丁框架(不发版本,修复线上bug)
- Hibernate主键生成策略
- sqlserver字符串拆分(split)方法汇总
- 什么是线程?
- html移动Web开发
- SqlServer批量插入数据方法--SqlBulkCopy