Hive是一个构建在Hadoop上的数据仓库框架,需要的支持组件包括:HDFS、YARN、MapReduce。它是应Facebook每天产生的海量新兴社交网络数据进行管理和机器学习的需求而产生和发展的。
Hive提供一套类SQL语言——HiveQL语言,可将HiveQL编译成MapReduce程序并在YARN中执行,支持HDFS文件数据和HBase数据记录查询。
(相关资料图)
一、Hive安装1、去下载Hive ()/dyn//hive/2、解压安装包创建hive目录和临时目录
解压完后,注意最后没有报错信息
tar: Exiting with failure status due to previous errors如果有,则尝试寻找原因重新解压
3、修改环境变量
添加以下行
加载资源并执行命令查看版本
如果提示Missing Hive Execution Jar,则可能是下载或解压不完全导致
解压不全可能的原因:
(1)下载文件错误,在windows中解压试试
(2)传输错误,重新将文件传给linux试试
(3)虚拟硬盘空间已满,查看虚拟硬盘剩余空间:df -h
4、进入hive安装目录下的conf目录
从模板复制一个配置文件并打开
在文件末尾增加(以实际的hadoop和hive版本为主)
不配置数据库Hive即缺省采用Derby数据库
5、启动Hadoop HDFS和YARN,确保HDFS和YARN能正常工作
6、初次执行时,先初始化derby元数据库cd进入hive安装目录:
初始化derby元数据库
Derby会在第一次启动初始化命令时,在当前所在目录创建元数据库文件(metastore_db)
注意:执行hive会在当前所在目录寻找元数据文件(metastore_db),必须先cd进入第6步的目录,否则会在原地创建一个空metastore_db并报找不到元数据表的错误
执行命令 bin/hive 进入Hive命令行界面
二、Hive命令行应用(注意单条命令以 ; 结尾!!)
内部表应用(1) 创建内部表Student,要求的字段和类型: id int, name string, sex string, age int,执行insert语句录入以下数据:
(2) 执行查询查询所有男生
查询大于18岁的学生,并按年龄升序排列
2.外部表应用
(1) 将本实验数据上传至HDFS,数据为,此数据修改了实验4中stock-daily数据中的日期格式以支持Hive中的Date数据类型:
/download/m0_69488210/87961142
stock-daily数据说明:
[‘code’,‘isst’,open’, ‘close’, ‘high’, ‘low’, ‘volume’, ‘money’, ‘factor’, ‘high_limit’, ‘low_limit’, ‘avg’, ‘paused’, ‘date’]
code 股票代码
isst 是否ST
open 开盘价
close 收盘价
high 当日最高价
low 当日最低价
volume 交易量(手)
money 交易量(万元)
factor 除权比例
high_limit 涨停价
low_limit 跌停价
avg 每日均价
paused 是否停牌
date 日期
在hdfs中新建/hivedata/stock-daily目录,并把上传到/hivedata/stock-daily目录中
(2) 创建外部表Stock,具体的字段名称和类型为:code string, isst boolean, open float, close float, high float, low float, volume float, money float, factor float, high_limit float, low_limit float, avg float, paused boolean, trade_date date;注意日期字段不要用date或time,可使用trade_date以避免语法错误。
(3) 执行查询查询上证所的股票数量,代码以.SH结尾的股票
参考SQL语句group语句,查询每日市场总交易量(万元)
结果须包含日期和对应的中交易量数据
结果按时间做降序排列
市场总交易量为当天所有股票交易量(万元)之和
(4) 学习与思考:计算实验4中,股票5日滚动收益率_1_ 搜索所有交易日,并对交易日编号(保存中间数据到tradedate表)
_2_ 利用连接查询,搜索提取计算所需股票代码和收盘价,并将交易日标记上对应编号(保存中间数据到closewithid表)
_3_ 利用自连接,让股票当日收益与改股票前第五日收益连接在同一行中,并计算五日收益率,此计算对每个股票和交易日都生效(保存中间数据到rollreturn表)
_4_ 查询某只股票的五日滚动收益率
关键词: