记录一个写SpringBoot中Hive数据可以正常提取但无法存到MySQL的bug

【背景】

我正在用SpringBoot框架写一个数据治理项目,目前所处阶段是将hive和hdfs中的元数据提取出来,存储到MySQL中,我的hive和hdfs上的数据存储在三台Linux服务器上(hadoop102-104),MySQL在我本地Windows上

【问题】

在我启动SpringBoot服务,准备将hive元数据提取到MySQL中时,发现hive中的数据可以正常提取到(通过打断点能看到81张能正常出来),

但MySQL就是不显示

【原因】

原因1、Service模块和Mapper模块的类(接口)上没标明是我本地MySQL的数据源@DS("xxx")

原因2、application.properties这个文件中镜像源没写成动态的

原因3、(我的认知问题)SpringBoot中的主类(main方法)【DgaApplication】只负责启动服务,并不负责Hive数据提取和MySQL数据装载(当然前提是你没在main里调用该方法),我以为启动服务了里面所有的类都会自动执行,并没有在test模块测试【testMetaStore】(用于将hive数据装载到MySQL)这个方法,傻了傻了。

【解决】

 原因1的解决:在Service,Mapper模块接口和类上都加上@DS("dga-local")

(这个按理说在Mapper接口上加了注解,在Service上可以不接,但我都加,确保万无一失)

原因2的解决:application.properties文件中改为动态数据源

hive.metastore.server.url=thrift://hadoop102:9083# Linux集群上的MySQL
spring.autoconfigure.exclude=com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
spring.datasource.dynamic.datasource.dga.url=jdbc:mysql://hadoop102:3306/dga?characterEncoding=utf-8&useSSL=false&&allowPublicKeyRetrieval=true
spring.datasource.dynamic.datasource.dga.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.dynamic.datasource.dga.username=root
spring.datasource.dynamic.datasource.dga.password=000000
spring.datasource.dynamic.datasource.dga.druid.initial-size=5
spring.datasource.dynamic.datasource.dga.druid.min-idle=5
spring.datasource.dynamic.datasource.dga.druid.max-active=20
spring.datasource.dynamic.datasource.dga.druid.max-wait=60000
spring.datasource.dynamic.datasource.dga.druid.test-on-borrow=true
spring.datasource.dynamic.datasource.dga.druid.test-while-idle=true
spring.datasource.dynamic.datasource.dga.druid.test-on-return=false# 自己本地Windows的MySQL
spring.datasource.dynamic.datasource.dga_local.url=jdbc:mysql://localhost:3306/dga?characterEncoding=utf-8&useSSL=false&&allowPublicKeyRetrieval=true
spring.datasource.dynamic.datasource.dga_local.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.dynamic.datasource.dga_local.username=root
spring.datasource.dynamic.datasource.dga_local.password=123456
spring.datasource.dynamic.datasource.dga_local.druid.initial-size=5
spring.datasource.dynamic.datasource.dga_local.druid.min-idle=5
spring.datasource.dynamic.datasource.dga_local.druid.max-active=20
spring.datasource.dynamic.datasource.dga_local.druid.max-wait=60000
spring.datasource.dynamic.datasource.dga_local.druid.test-on-borrow=true
spring.datasource.dynamic.datasource.dga_local.druid.test-while-idle=true
spring.datasource.dynamic.datasource.dga_local.druid.test-on-return=false

注意标红的这段代码也要加,否则可能会报错:spring.datasource.dynamic.datasource.dga_local.url=jdbc:mysql://localhost:3306/dga?characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true

 原因3的解决:在test类中执行装载方法

    @Testvoid testMetaStore() throws Exception {tableMetaInfoServiceImpl.initTableMeta("gmall","2022-05-22");}

主类启动以后,再test模块中调用一次这个方法:

上述操作都更改后,再查看MySQL数据

成功~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/840287.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JAVA 转 Golang——速通 Golang 基础

文章目录 1. 前言:2. go的下载与配置3. Golang 目录结构4. Golang 的基础语法4.1. 变量声明4.2. 输入输出4.3. 条件控制4.4. 数组和切片4.5. 映射表 1. 前言: 根据鼠鼠的实习投递经历,由于越来越多中大型公司都使用 Golang,在现在…

vue + SpringBoot + flowable 实现工作流审批功能 (流程图部署)

目录 搭建前端vue项目 vue init webpack project_name 初始化项目 导入 element-ui 框架 npm install element-ui -s 设置 element-ui 全局配置 编辑 main.js 文件 import ElementUI from "element-ui"; // ui框架导入 import element-ui/lib/theme-chal…

XMind文件和输出图片的完整路径,知道干嘛

抱歉&#xff0c;我理解错误了您的问题。以下是包含路径的Shell脚本代码&#xff1a; #!/bin/bash# 获取当前脚本所在目录 script_dir$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)# 创建 XMind 文件 xmind_content$(cat <<EOF <?xml…

文心大模型4.0创建智能体:资深研发专家一对一辅导

目录 前言 一、什么是文心智能体平台&#xff1f; 1、通过平台能做什么 2、平台的优势 3、智能体类型 二、如何访问和使用这个智能体&#xff1f; 1、零代码开发&#xff1a;一句话创建智能体 2、资深研发专家一对一辅导智能体介绍 总结 前言 在当今快节奏和高度竞争的…

vue和react的区别?

Vue和React在设计理念上的主要不同点如下&#xff1a; Vue&#xff1a; 渐进式框架&#xff1a;Vue的设计理念强调渐进式增强&#xff0c;这意味着它允许开发者根据项目需求逐步引入其功能。Vue可以很容易地集成到现有的项目中&#xff0c;或者作为基础框架用于构建复杂的单页应…

算法题 — 合并两个有序数组

合并两个有序数组 两个有数整数数组 nums1 和 nums2&#xff0c;将 nums2 合并到 nums1 中&#xff0c;使 nums1 成为一个有序数组。 初始化 nums1 和 nums2 的元素数量分别为 m 和 n。假设 nums1 的空间大小等于 m n&#xff0c;这样它就能有足够的空间保存来自 nums2 的元…

Sping源码(八)—registerBeanPostProcessors

序言 之前我们用大量的篇幅介绍过invokeBeanFactoryPostProcessors()方法的执行流程。 而invokeBeanFactoryPostProcessors的主要逻辑就是遍历执行实现了BeanDefinitionRegistryPostProcesso类(主要是针对BeanDefinition的操作)和BeanFactoryPostProcessor(主要针对BeanFacrot…

深入分析 Android Activity (五)

深入分析 Android Activity (五) 1. Activity 的进程和线程模型 在 Android 中&#xff0c;Activity 默认在主线程&#xff08;也称为 UI 线程&#xff09;中运行。理解进程和线程模型对于开发响应迅速且无阻塞的应用程序至关重要。 1.1 主线程与 UI 操作 所有 UI 操作必须…

干货 | 什么是单相感应电机控制器?一文带你看感应交流电机解决方案KP86202

单相感应电机控制器是一种用于控制单相感应电机运行的电子设备。单相感应电机是一种常见的电动机类型&#xff0c;广泛应用于家用电器、商业设备以及轻工制造等领域。 单相感应电机控制器通常包括电源模块、控制逻辑模块和功率输出模块。其主要功能是对单相感应电机进行启停、…

如何生成Github Badge徽章图标

如何生成徽章Badge 什么是徽章(Badge)生成小徽章shields网站开源项目的徽章lib版本徽章代码测试覆盖度开源协议Github workflow的徽章 开源代码实践效果py-enumjs-enumerate 什么是徽章(Badge) 在开源项目的README中&#xff0c;经常会见到一些徽章(Badge)小图标&#xff0c;如…

FastCopy

目录 背景: 简介&#xff1a; 原理: 下载地址: 工具的使用: 背景: 简介&#xff1a; FastCopy是一款速度非常快的拷贝软件&#xff0c;软件版本为5.7.1 Fastcopy是日本的最快的文件拷贝工具&#xff0c;磁盘间相互拷贝文件是司空见惯的事情&#xff0c;通常情况…

redis--redis Cluster

简介 解决了redis单机写入的瓶颈问题&#xff0c;即单机的redis写入性能受限于单机的内存大小、并发数量、网卡速率等因素无中心架构的redis cluster机制&#xff0c;在无中心的redis集群当中&#xff0c;其每个节点保存当前节点数据和整个集群状态,每个节点都和其他所有节点连…

【MySQL精通之路】InnoDB-INFORMATION_SCHEMA库Metrics表

1.介绍 INNODB_METRICS表提供了有关INNODB性能和资源相关计数器的信息。 INNODB_METRICS表列如下所示。 有关列描述&#xff0c;请参阅“INFORMATION_SCHEMA库INNODB_METRICS表”。 【MySQL精通之路】INFORMATION_SCHEMA库-INNODB_METRICS表-CSDN博客 mysql> SELECT * FRO…

好书推荐|MATLAB科技绘图与数据分析

提升你的数据洞察力&#xff0c;用于精确绘图和分析的高级MATLAB技术 MATLAB科技绘图与数据分析——jd 本书内容 《MATLAB科技绘图与数据分析》结合作者多年的数据分析与科研绘图经验&#xff0c;详细讲解MATLAB在科技图表制作与数据分析中的使用方法与技巧。全书分为3部分&a…

C语言 数组——数组的定义和初始化

目录 为什么使用数组(Array)? 一维数组的定义 一维数组的初始化 一维数组元素的访问 一维数组元素的赋值 数组的逻辑存储结构 数组的物理存储结构 二维数组的定义和初始化 为什么使用数组(Array)? 一维数组的定义 一维 数组的定义 int a[10]; 定义一个有 10 个 int 型元素的…

云WAF在应对新型网络攻击中的作用是什么?

云WAF&#xff08;Web Application Firewall&#xff09;在应对新型网络攻击中扮演着至关重要的角色。以下是云WAF的主要作用&#xff1a; 实时防御与智能分析 云WAF能够实时监测并分析网络流量&#xff0c;一旦发现潜在攻击行为立即进行阻断&#xff0c;有效防止各类Web应用层…

构建传统企业信息化数字化智能化技术架构:挑战与机遇

随着数字化和智能化技术的快速发展&#xff0c;传统企业在信息化转型过程中面临着前所未有的机遇和挑战。如何构建适应企业需求的信息化数字化智能化技术架构&#xff0c;成为企业发展的关键之一。本文将探讨传统企业信息化数字化智能化技术架构的设计与实践。 一、数字化转型的…

【缺失的第一个正数】leetcode,python

真是越做越觉得自己所学尚浅&#xff0c;&#xff0c; 啊&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff1f; 直接上石山代码&#xff1a;&#xff08;过不了一点&#xff09;。。。。。 class Solution:def firstMissingPositive(self…

SpringBoot发送邮箱

一、导入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId> </dependency> 二、添加配置 application.yml文件 将username修改为自己的邮箱&#xff0c;password修改为…

SQL——DDL之数据表的操作

基础 # 每一列都要指定对应的类型 # 字符串&#xff1a;varchar(N) # 整数&#xff1a;int # 小数&#xff1a;double # 年月日&#xff1a;date # 年月日时分秒&#xff1a;datetime# 创建表 create table if not exists db_bigdata.student(stuid varchar(10),stuname varch…