Lunch Hive Task By SpringBoot

本文介绍如何使用SpringBoot结合JDBC连接Hive,并通过HiveServer提交任务到MapReduceOnYarn进行计算。文中详细解释了核心配置及任务提交的具体步骤。

序言

本Demo是基于SpringBoot 创建Hive 任务并提交到 MapReduce On Yarn 上进行计算.

那SpringBoot连接Hive的整体思路其实很简单就是通过JDBC.针对Hive的任务并提交到Yarn上就是通过SQL(当然实际的任务是MapReduce,那我们只是通过SQL的形式交由程序去自动创建cuiyaonan2000@163.com) 前提是要启动Hive Server

如下所示: 

参考信息:

整合方案

正如官网所说的,我们直接以JDBC的形式进行整合就行了,就像你使用Mybatis整合MySql一样.

如此我们就可以了解到,在我们自己的工程中可以同时整合Mysql,Oracle,Hive进行多数据源的操作.整合的要求参考不同JPA的技术实现,你可以把Hive看成就是Mysql.只是使用了不同的驱动.

核心配置^_^

spring:
  jmx:
     default-domain: gateway
  output:
    ansi:
      enabled: DETECT
  datasource:
    druid:
      url: jdbc:hive2://172.17.15.2:10000/default
      driver-class-name: org.apache.hive.jdbc.HiveDriver
      username: cuiyaonan
      password: cuiyaonan
      initial-size: 5
      max-active: 20
      min-idle: 5
      max-wait: 60000
      validationQuery: SELECT 1

任务提交

在显示作业中有中2中方式提交任务(如下2个命令的参数设置是共用的).

  1. start-thriftserver.sh  --即传统的jdbc模式直接连接该服务提交任务
  2. spark-submit  提交jar包的形式 

### 将Hive集成到Spring Boot项目 #### 1. 添加依赖项 为了使Spring Boot应用程序能够与Hive交互,需在项目的`pom.xml`文件中添加必要的依赖项。这些依赖项包括但不限于JDBC驱动程序以及MyBatis Plus用于简化数据访问层的操作。 ```xml <dependencies> <!-- Other dependencies --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.3</version> </dependency> <dependency> <groupId>org.apache.hive</groupId> <artifactId>hive-jdbc</artifactId> <version>3.1.2</version> </dependency> <!-- Lombok for reducing boilerplate code --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> </dependencies> ``` 此部分描述了构建工具所需的库来支持应用的功能[^3]。 #### 2. 配置数据源属性 编辑`src/main/resources/application.properties`或`application.yml`文件以设置连接至Hive的数据源参数: 对于`.properties`格式: ```properties spring.datasource.url=jdbc:hive2://localhost:10000/default spring.datasource.username= spring.datasource.password= spring.datasource.driver-class-name=org.apache.hive.jdbc.HiveDriver spark.master=local[*] ``` 而对于`.yml`格式,则如下所示: ```yaml spring: datasource: url: jdbc:hive2://localhost:10000/default username: "" password: "" driver-class-name: org.apache.hive.jdbc.HiveDriver spark: master: local[*] ``` 上述配置指定了如何通过JDBC协议建立通往Hive服务器的链接,并设定了默认情况下使用的计算资源模式为本地多线程执行环境[^2]。 #### 3. 创建实体类和服务接口 定义Java Bean表示表结构并创建相应的Mapper接口以便于操作数据库中的记录。这里假设有一个名为`User`的对象映射到了某个特定表格上。 ```java @Data // Provided by Lombok to generate getters/setters automatically. public class User { private Long id; private String name; } ``` 接着编写对应的DAO层组件——即Mapper接口,它负责处理CRUD请求。 ```java @Mapper public interface UserRepository extends BaseMapper<User> { } ``` 最后,在服务层实现业务逻辑函数调用持久化方法完成增删改查动作。 #### 4. 测试功能正常运行 确保所有先前步骤都已正确实施之后,可以尝试启动应用程序并通过API端点验证能否成功查询来自Hive存储的信息。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cuiyaonan2000

给包烟抽吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值