基于Hadoop的管理系统作弊法-编写bash脚本

入门

我是参考的这位博主,非常好理解和上手如何在 Linux 中创建并运行 Shell 脚本(Bash 初学者教程)_创建、运行shell脚本的步骤-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_46278037/article/details/120457468

这里有一点值得提到:在Ubuntu中创建新文件直接右键实现不了,需要在命令行进入目标文件夹,然后再使用touch命令创建一个空白的.sh文件,例如:`touch test.sh`。

 尝试

首先明确:我只是为了混过大作业,不需要在系统的任何目录下都可以运行脚本,故没有添加系统变量,采用了原始的./XXX.sh方式运行。

菜单栏

参考了这个博主的思路和写法:linux shell编程之菜单选择(一)_创建一个命令菜单,显示菜单项并提示用户选择。-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/XSL1990/article/details/8241416 产生了疑问:原博主中菜单的EOF是干嘛的

发现问题解决问题!!了解之后知道EOF和cat>>EOF形成固定用法,代表将多行字符串输入到文件里。具体可以看这个链接,翻到最后就是Bash 中的 Cat EOF

我最终选择不用上述方法,因为hive的语句数量会在bash"xxx"中受到限制。

我选用了github上面一位同学的简便方法:(链接:GitHub - Rafael8830/Hadoop_OMS: Hadoop大作业:商业订单管理系统

我根据我的需要进行了改编:

#!/bin/bash

while true
do
printf "========================================================================================\n"
printf "#############################欢迎来到安阳热门景点旅游管理系统#############################\n"
printf "========================================================================================\n"
printf "【查询选择】\n"
printf "1.查看景点信息现状\n"
printf "2.查询缺失信息的数据\n"
printf "3.添加新的景点\n"
printf "4.编辑景点信息\n"
printf "5.删除景点信息\n"
printf "6.价格排行榜(从高到低)\n"
printf "7.价格排行榜(从低到高)\n"
printf "8.退出系统\n"
printf "========================================================================================\n"

read -p "请选择查询项目 > " pin
if [ "$pin" -eq "1" ]; then 
	echo 景点总数:
	hive -e "
use hotview;
select count(*) from ay"
	echo 缺失景区等级的景区数:
	hive -e "
use hotview;
select count(*) from ay where level ='无';"
	echo 缺失景点详细地址的景区数:
	hive -e "
use hotview;
select count(*) from ay where address='未知';"
	echo 缺失景点介绍的景区数:
	hive -e "
use hotview;
select count(*) from ay where introduction='未知';"
	echo 缺失景区价格的景区数:
	hive -e "
use hotview;
select count(*) from ay where price ='未知';"
	echo 缺失相关景点推荐的景区数:
	hive -e "
use hotview;
select count(*) from ay where relation=0"
elif [ "$pin" -eq "2" ]; then
	echo 缺失景区等级的景区
	hive -e "
select * from ay where level ='无';"
	echo 缺失景点详细地址的景区
	hive -e "
select * from ay where ddress='未知';"
	echo 缺失景区介绍的景区
	hive -e "
use hotview;
select * from ay where introduction ='未知';
"
	echo 缺失景区价格的景区
	hive -e "
use hotview;
select * from ay where price ='未知';
"
	echo 缺失景点推荐的景区
	hive -e "
use hotview;
select * from ay where relation=0;
"
elif [ "$pin" -eq "3" ]; then
	read -p "请输入需要添加的景区名称  > " para1
	read -p "请输入需要添加的景区级别  > " para2
	read -p "请输入需要添加的景区地区  > " para3
	read -p "请输入需要添加的景区详细地址  > " para4
	read -p "请输入需要添加的景区介绍  > " para5
	read -p "请输入需要添加的景区价格  > " para6
	read -p "请输入需要添加的景区相关景点个数  > " para7
	hive -e "
use hotview;
insert into table ay values($para1,$para2,$para3,$para4,$para5,$para6,$para7);
"
elif [ "$pin" -eq "4" ]; then
	read -p "请输入需要编辑的景区名称  > " para8
	hive -e "
use hotview;

"	
elif [ "$pin" -eq "5" ]; then
	hive -e"
use hotview;
select customerName
from ruozedata_order
group by customerName;
"
elif [ "$pin" -eq "6" ]; then
	read -p "请输入需要查询的客户名  > " para6
	hive -e"
use hotview;
select customerName,orderid,ordertime,paymoney,detail
from ruozedata_order
join state_detail on (state_detail.state=ruozedata_order.state)
where customerName=\"$para6\";
"
elif [ "$pin" -eq "7" ]; then
	hive -e"
use hotview;
select street_code from ruozedata_area;
"

elif [ "$pin" = "8" ]; then 
	echo "成功退出系统!"
	exit 0
fi
done

我想在hive使用查询语句的时候显示出来表头,故在hive运行时执行了(后面发现每次想要显示表头都要执行一遍set命令)

set hive.cli.print.header=true;

成功!

hive的updata操作

好像不支持??!!查一下版本hive --version3.1.3版本支持!开始操作!

e。。。。。。创建内部表、进行update和delete操作还是报错  内容是:Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask,如图:

不管了用insert overwrite吧,重写一下!

发现几篇很好的科普文~非常贴合我的hive版本

【大数据】Hive入门➕安装(尚硅谷大数据Hive 3.1.3教程)_尚硅谷hive文档-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/YG15165/article/details/132529562Hive3.1.3安装和使用指南_厦大数据库实验室博客 (xmu.edu.cn)icon-default.png?t=N7T8https://dblab.xmu.edu.cn/blog/4309/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值