hive的最新学习资料:http://www.cnblogs.com/qingyunzong/p/8707885.html hive的参数设置大全: https://cwiki.apache.org/confluence/display/Hive/Configuration+Properties

一、hive的执行命令

1 hive -S :进入hive的静默模式,只显示查询结果,不显示执行过程;
2 hive -e ‘show tables’ :直接在操作系统命令下执行hive语句,不需要进入hive交互模式;
3 source /root/my.sql; :在hive模式下使用source命令执行.sql文件;

 Hive中知识点 随笔

t1:创建普通表;

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

t2:在hdfs中的指定目录创建表;

t3:创建列分隔符为“,”的表;

t4:使用查询语句创建有数据的表;

t5:使用查询语句创建列以“,”分隔有数据的表;

来自https://blog.csdn.net/qq_40784783/article/details/79168896

desc formatted 表名; 显示表结构

describe database 数据库;显示数据库所在存储路径

二、hive的.hiverc文件

在${HIVE_HOME}/bin目录下建.hiverc文件,加入:

1 set hive.cli.print.header=true;

就可以显示表头。可以显示当前数据库:

1 set hive.cli.print.current.db=true;

使用本地模式运行语句

1 set hive.exec.mode.local.auto=true;

三、自定义的udf包

由于需要满足一个hive中不等值连接的需求,必须得自己手工写udf。以前也没有试过,所以今天尝试了下自己写了个ToLowerCase.java

由于没有用eclipse,所以直接用的是vim+javac搞定的。   在/home/dwdev/cajeep目录下,新建com/alibaba/hive/udf
1 mkdir -p com/alibaba/hive/udf
新建java文件 
1 vim com/alibaba/hive/udf
java内容如下:
 1 package com.alibaba.hive.udf;
 2 import org.apache.hadoop.hive.ql.exec.UDF;
 3  
 4 public class ToLowerCase extends UDF{
 5     // 必须是 public,并且 evaluate 方法可以重载
 6     public String evaluate(String field) {
 7     String result = field.toLowerCase();
 8     return result;
 9     }
10 }
仍旧在当前目录下,执行javac的编译命令
1 javac -classpath /usr/local/hadoop-2.7.5/share/hadoop/common/lib/*.jar:/usr/local/hive/lib/hive-exec-2.3.2.jar ./ToLowerCase.java 
将对应的class文件进行打包
1 jar -cvf ToLowerCase.class
进入hive,添加对应jar包,然后创建临时的函数
1  create temporary function tolowercase as 'com.alibaba.hive.udf.ToLowerCase';
2 hive (default)> select tolowercase('HELLO');
3 OK
4 _c0
5 hello

四、hive  RegexSerDe使用详解

hive复杂格式数据的导入
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄