当前位置: 首页 > news >正文

大数据实验6 熟悉Hive的基本操作

下载和安装Hive

source ~/.bashrc

配置环境变量

修改/usr/local/hive/conf下的hive-site.xml

使用vim编辑器新建一个配置文件hive-site.xml

bug:误以为Mysql环境前面的实验里面已经配置好了,直接启动,但是其实是不一样的,后面启动hive之后就找不到mysql了

解决:下载mysql启动包之后重启mysql

# 1. 进入 Hive 的库目录 cd /usr/local/hive/lib # 2. 直接下载 MySQL 驱动包 (这里用 5.1.49 版本,最稳) sudo wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.49/mysql-connector-java-5.1.49.jar # 3. 赋予权限 (防止无法读取) sudo chmod 777 mysql-connector-java-5.1.49.jar

结果再次启动hive的时候又报错

【错误3】在启动Hive时,有可能会出现Hive metastore database is not initialized的错误,这里给出解决方案。
【解决方案】
解决Hive启动,Hive metastore database is not initialized的错误。出错原因:以前曾经安装了Hive或MySQL,重新安装Hive和MySQL以后,导致版本、配置不一致。解决方法是,使用schematool工具。Hive现在包含一个用于 Hive Metastore 架构操控的脱机工具,名为 schematool.此工具可用于初始化当前 Hive 版本的 Metastore 架构。此外,其还可处理从较旧版本到新版本的架构升级。所以,解决上述错误,你可以在终端执行如下命令:

cd /usr/local/hive ./bin/schematool -dbType mysql -initSchema

这下正常运行了

新建hive数据库

配置mysql允许hive接入

启动hive(要先启动hadoop集群)

bug:这里启动hive失败了

第一次是因为空间不够,解压后的文件不完整,第二次扩容了之后再解压遇到以下错误

【错误1】
java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument
【原因】
com.google.common.base.Preconditions.checkArgument 这是因为hive内依赖的guava.jar和hadoop内的版本不一致造成的。
【解决方法】
1.查看hadoop安装目录下share/hadoop/common/lib内guava.jar版本
2.查看hive安装目录下lib内guava.jar的版本 如果两者不一致,删除版本低的,并拷贝高版本的 问题解决!

解决:

实验要求:

1.创建一个内部表stocks

bug:exchange是 Hive(以及 SQL)的一个保留关键字,不能直接使用这个作为列名

解决:使用反引号引起来

2.创建一个外部分区表dividends

3.从stocks.csv文件箱stocks表中导入数据,先从(http://dblab.xmu.edu.cn/post/bigdata3/)下载stocks.csvdividends.csv

导入数据

4.创建未分区的外部表dividends_unpartitioned,并从csv文件中导入数据

5.以针对dividends_unpartitioned,的查询为基础,利用Hive自动分区特性向分区表dividends各个分区中插入对应数据

开启动态分区功能

执行插入操作

6.查询IBM从2000年起所有交付股息的交易日的收盘价

使用JOINstocks表和dividends表连接起来

7.查询苹果公司 2008年10月的涨跌情况

CASE WHEN语句进行条件判断,并使用LIKE过滤日期

8.查询收盘价与开盘价差额最大的记录

计算差价,按差价倒序排序 (DESC),然后取第一条 (LIMIT 1)

9.查询 Apple (symbol='AAPL') 年平均调整后收盘价 (price_adj_close) 大于 50 的年份及价格

substr(ymd, 1, 4)截取年份

GROUP BY按年份分组

HAVING过滤平均值大于 50 的组

10.查询每年年平均price_adj_close排名前三的公司代码及价格

先按年份和公司分组,算出平均价格

使用RANK() OVER (PARTITION BY year ORDER BY ...)给每年的公司排名,再筛选排名小于等于 3 的记录

http://www.jsqmd.com/news/521592/

相关文章:

  • AUTOSAR CAN网络管理(CanNm)协议深度解析
  • iOS分类扩展终极指南:如何用QMUI_iOS为系统类添加强大功能
  • 终极二进制后门工具The Backdoor Factory:揭秘专业级shellcode注入技术
  • 手把手教你排查Buildroot工具链路径陷阱:为什么gcc总找错目录?
  • 避坑指南:Vivado 2018.3中HLS IP模块丢失的两种修复方案(含Python补丁安装)
  • Three20模块化设计:iOS项目解耦终极指南
  • IMU技术解析:加速度计与陀螺仪如何协同工作
  • STM32硬件定时器复用库:单TIM驱动多逻辑定时器
  • 终极OCR指南:Tesseract数据模型的完整使用教程
  • 我好像会被 Agent 淘汰,我用数据算了一算
  • Maelstrom多语言实现对比:Go、Java、Python、Rust等语言的分布式系统实现差异
  • 为什么企业都在升级全光网络?锐捷极简以太方案实测对比POL架构
  • 避坑指南:GNSS差分码偏差(DCB)文件下载与使用的5个常见错误
  • feapder数据采集任务数据治理框架:标准规范与最佳实践指南
  • 赤道仪支撑腿主动阻尼控制固件设计
  • Cursor玩转MySQL:不用写SQL就能查数据的3种MCP配置方案对比
  • 告别缓慢渲染:深入浅出解读Splatter Image如何用‘图像到高斯’实现实时3D重建
  • rate-limiter-flexible 集群模式终极指南:在 PM2 和 Node.js Cluster 中的最佳实践
  • 3步掌握Pulover‘s Macro Creator:终极免费自动化脚本工具指南
  • 3秒去水印:高效抖音视频批量处理工具,让内容备份不再繁琐
  • v8go性能优化指南:预编译脚本与CPU性能分析终极教程
  • 终极Windows隐形运行工具:RunHiddenConsole完整使用指南
  • RexUniNLU中文NLP系统快速上手:Gradio界面快捷键与批量上传功能详解
  • 如何快速上手minimatch:10分钟掌握文件模式匹配技巧
  • wxParse 微信小程序富文本解析终极指南:如何快速实现HTML和Markdown内容渲染
  • SenseVoice-small-onnx语音识别效果对比:中文普通话vs粤语识别差异
  • Qwen3-0.6B-FP8真实案例:Jetson Nano适配可行性与性能基准测试
  • ACIS SAT 文件格式详解及其解析
  • 为什么你的Neovim图标显示异常?深入解析Nerd Fonts工作原理与选型建议
  • Bilibili视频下载完整指南:如何用开源工具高效获取优质内容