导入数据方式:
方式一:使用load加载数据
加载本地数据
LOAD DATA LOCAL INPATH '/opt/datas/sw17-top11-dl-sh.anon.csv'
加载hdfs:将文件移动(mv)到了表对应的目录下面
LOAD DATA INPATH '/opt/datas/sw17-top11-dl-sh.anon.csv'
方式二:使用PUT
直接使用HDFS的Put上传命令,将数据上传到指定目录
企业中用的比较多
运行模式
功能:
如果设置为true,
hive 框架会根据一定的判定决定,走本地模式还是集群模式
如果处理的数据块<128M
mapTask个数<5
MapReduce开发程序模式
集群模式:YARN
本地模式:IDEA
设置方式:
->配置文件中hive-site.xml
<property>
<name>hive.exec.mode.local.auto</name>
<value>true</value>
</property>
->hive cli :仅当前会话有效
设置:set hive.exec.mode.local.auto=true
查看:set hive.exec.mode.local.auto
大数据版本框架
大数据版本分为
①原生态Apache版本
②商业版
大数据商用公司有Cloudera创建于08年,该公司开发的是CDH版本,大家可以去看下:
http://archive.cloudera.com/cdh5/cdh/5/
另一个是Hortoworks公司创建于11年,开发的是HDP,不多介绍,知道就行了
http://blog.songchunmin.com/696.html
安装CDH的Hadoop和hive与安装Apache的hadoop,hive大致是一样的,前面的文章里有,有兴趣的可以看下。
https://blog.csdn.net/qq_41934990/article/details/81901699 hive安装
https://mp.csdn.net/postedit/81510038 hadoop安装
分析结果的保存:
将运行的结果保存到第二张表:创建表的另一种方式
CREATE TABLE IF NOT EXISTS result_language_account
AS
.......
分析业务数据中间临时表
表的类型
管理表(内部表)
CREATE TABLE IF NOT EXISTS tableName
MANAGED_TABLE
外部表(托管表)
EXTERNAL_TABLE
CREATE EXTERNAL TABLE IF NOT EXISTS tableName
区别:
管理表:删除表的时候,处理是管理表,删除原数据
外部表:只是删除原数据
#show function查看支持的函数
#desc function round 查看用法
#show functions 查看方法
实际开发运行
Mapreduce
Bin/yarn jar XX.jar mainClass args01 args02
Crontab -e
* * * * * XX.sh
分 时 日 月 周
/,~,”,”
hive任务怎么办呢
方式一:
bin/hive -e “select XXX”
如果是sql语句,就一句话
方式二:
bin/hive -f XXX.sql
将多行sql语句放入到XXX。Sql文件中
自定义函数
UDF:User-Defined Function
一对一:一个参数一个返回
UDAF:User Defined Aggregate Function
多对一:多个参数一个返回
UDTF:Table-Generating Functions
一对多:一个参数,多个返回
判断当前行数据是否有效
Votetools分割之后的字段输入和ntools有效
怎样定义UDF
A,Implement one or more methods named evaluate
B,Should never be a void method,However it can return {@code null} if needed
C,Return types as well as method argument can be either java primitives or the corresponding
{@link org.apache.hadoop.io.writable} class
方法的参数和返回值类型,建议使用hadoop Mapreduce的数据类型
过程: