数据工具sqoop用法之mysql与hive数据导入导出

2023-11-04

一、pom

org.apache.hive hive-jdbc 1.1.0 org.apache.hadoop hadoop-common 2.6.0 org.mybatis mybatis 3.4.6 mysql mysql-connector-java 5.1.38 # 二、目录 ![在这里插入图片描述](https://img-blog.csdnimg.cn/5365076218b84b1b81f5795227b3ecde.png)

三、配置类

mybatis.cfg

<?xml version="1.0" encoding="UTF-8" ?> hive_mapper.xml <?xml version="1.0" encoding="UTF-8" ?> select customer_sk ,product_sk, d_date,recent_num,recent_amount,order_num,order_dailyamount from dm_sales_order_count mysql_mapper.xml <?xml version="1.0" encoding="UTF-8" ?> insert into dm_sales_order_count values (#{ord.d_date}, #{ord.customer_sk}, #{ord.product_sk}, #{ord.order_num}, #{ord.order_dailyamount}, #{ord.recent_amount}, #{ord.recent_num}) # 三、代码 实体类:

public class SaleOrder {
private String d_date ;
private Integer customer_sk ;
private Integer product_sk;
private Long order_num ;
private Double order_dailyamount ;
private Double recent_amount ;
private Long recent_num ;
HiveDao

public interface HiveDao {
List findAll();
}
mysqlDao

public interface MysqlDao {
void saveDate(List lst);
}
ReadHiveTab(测试用的)

import com.sun.org.apache.regexp.internal.RE;

import java.sql.*;
import java.util.List;

public class ReadHiveTab {
public static List readTab(String dbname,String table){
try {
Class.forName(“org.apache.hive.jdbc.HiveDriver”);
Connection con = DriverManager.getConnection(“jdbc:hive2://192.168.56.111:10000/”+dbname,“root”,“root”);
PreparedStatement pstat = con.prepareStatement("select * from "+table);
ResultSet rs = pstat.executeQuery();
while (rs.next()){
System.out.println(rs.getInt(“customer_sk”));
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
}
Tools(main方法):从hive到sql

package com.njbdqn.utils;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.Reader;
import java.util.List;

public class Tools {

public static void main(String[] args) throws Exception {
  //  ReadHiveTab.readTab("dm_sales_source","dm_sales_order_count");
    Reader reader  = Resources.getResourceAsReader("mybatis.cfg.xml");
    SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader,"cm");
    SqlSession session = factory.openSession();
    HiveDao hdao = session.getMapper(HiveDao.class);
    List<SaleOrder> lst = hdao.findAll();
    session.close();

    Reader r1  = Resources.getResourceAsReader("mybatis.cfg.xml");
    SqlSessionFactory mf = new SqlSessionFactoryBuilder().build(r1, "ms");
    SqlSession se = mf.openSession();
    MysqlDao mdao = se.getMapper(MysqlDao.class);
    mdao.saveDate(lst);
    se.commit();
    se.close();
}

}

四、打胖包后运行(因为执行环境没有driver等)

java -jar HiveBatchMysql.jar

=> 验证mysql是否增加了数据

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据工具sqoop用法之mysql与hive数据导入导出 的相关文章

随机推荐

  • RuntimeError: expected dtype Double but got dtype Float 问题解决

    利用Pytorch框架自己构建网络结构 在程序运行到 loss backward 的时候报错 RuntimeError expected dtype Double but got dtype Float validate dtype at
  • 万字长文讲述我是怎样保送清华的

    点击 小卡片 回复 1024 获取大厂面试指南 背景 大家好 我是石头哥 本篇是系列文章第 4 篇 前三篇如下 家穷应该读大学吗 寒门学子的奋斗史 一 第一篇回忆了自己读小学的场景 寒门学子的奋斗史 二 第二篇讲了自己就读的贫困山区中学的
  • Python RSA加密解密

    Python RSA加密解密 RSA是一种非对称加密算法 非对称加密需要公钥 publickey 和私钥 privatekey 消息传递前需要先生成公钥和私钥 发送方将待发送消息用公钥加密 发送给接收方 接收方收到消息后 用私钥解密 在这个
  • 学生信息管理系统

    学生信息管理系统 基于动态链表的增 删 改 查和文件的存储 实现对学生信息 姓名 性别 年龄 学号 电话 语文 数学 英语 的管理 存储学生信息的文件 define FILEPATH information txt 学生基本信息结构体 学生
  • 将用户“C:\Users\XXX”文件夹映射到其他盘符

    注意事项 在要改变用户 以xxx为例 时 系统XXX关闭 用微PE或安装好U盘的系统 进入U盘启动操作 确保映射稳定 主机的盘符与U盘启动下的盘符一致 其他的可以不一样 要将用户XXX移动到的盘符必须一致 不建议将整个用户文件夹 C Use
  • 网络通讯中的checksum算法

    网络通讯中的checksum算法 一 实验目的和任务 本实验要求复习Debian系统抓包工具的使用 本实验要求理解checksum算法原理和实现方法 二 实验设备介绍 1 软件需求 win7操作系统 VMware workstation u
  • latex第一段的首行缩进问题

    setlength parindent 2em 首行全部缩进2字符 但是在第一行使用没有效果 indent也是首行缩进 第一段第一行的缩进只能用 hspace 0 5em 来控制空格的多少 解决中文排版问题 hspace 0 5em 随着科
  • 复制微信公众号图片不能用,防盗链问题

    问题起因很简单 直接复制的公众号文章到网站 不单独处理图片 复制出来的文章图片因为微信防盗链设置不能显示出来 如下图 防盗链原理就是后端先拦截请求获取其中的referrer 将其和自身的白名单 本地域名等对比 符合条件的将通过 不符合的将会
  • Java:最小栈()

    一 知识准备 1 栈 核心 先进后出 从栈顶入 栈顶出 栈的几种基本操作 void push int data 入栈 int pop 弹出栈顶元素 即 删除并返回最后一个入栈的元素 int peek 返回栈顶元素但不删除 boolean e
  • 2021-03-30 python离线安装openpyxl模块

    1 前言 最近Python项目需要用openpyxl对excel进行处理 引用到了openpyxl模块 但是客户的环境没有网 无法用pip安装openpyxl 因此需要离线安装 记录下遇到的问题及解决的办法 2 过程 能联网的话用pip 一
  • WEB安全-RCE代码及命令执行漏洞

    WEB安全 RCE代码及命令执行漏洞 摘要 RCE概述 远程代码执行 eval 案例 远程命令执行 system shell exec 与 exec 案例 靶场案例 墨者靶场黑盒功能点命令执行 应用功能 墨者靶场白盒代码及命令执行 代码分析
  • make编译内核驱动模块

    make编译内核驱动模块 方法一 obj m hello world o KDIR home july7 prj Firefly RK3308 kernel 内核源码路径 PWD shell pwd 获取当前目录的变量 all make C
  • java 获取当前服务器CPU,JVM,内存等信息

    借助于 Hyperic Sigar 是一个收集系统各项底层信息的工具集 没啥技术含量 参考 https support hyperic com display SIGAR Home 下载地址 http sourceforge net pro
  • #ifndef 与 #pragma once 的使用方法

    ifndef 与 pragma once 都能让头文件只编译一次 避免重复编译 新版本的代码建议使用 pragma once 这样只要编译一次就可以了 但是很多老编译器不支持该语法 很尴尬 ifndef则需要每次使用的时候进行一次编译 速度
  • 概率论【离散型随机变量】--猴博士爱讲课

    第二课 离散型随机变量 1 6 求分布律里的未知数 2 6 根据X的分布律写Y的分布律 一维随机变量函数的分布 注意 3 6 根据 X Y 的分布律写Z的分布律 4 6 根据 X Y 的分布律写边缘分布律 边缘分布 5 6 X与Y相互独立时
  • python训练预测_python中NARX的示例-训练和预测 - python

    是否有使用Python中的NARX模型训练和预测 推断数据的端到端示例 有图书馆PyNeurgen NARX PyNeurgen library 但是PyNeurgen的文档不是很完整 该OP似乎已经编写了Keras实现 但是代码缺少用于推
  • CLion2021.2配置qt环境

    文章参考文档 使用CLion开发Qt Qt5 9 1 CLion2020 3 Clion中Cmake构建出现复制文件错误的解决办法 Clion 创建 Qt UI Class 踩坑 文章目录 1 前言 2 QT安装与环境变量的配置 3 工具链
  • Spring系列之@EnableAsync & @Async 实现方法异步调用

    1 本文内容 详解 EnableAsync Async 主要分下面几个点进行介绍 作用 用法 获取异步执行结果 自定义异步执行的线程池 自定义异常处理 线程隔离 源码 原理 2 作用 spring容器中实现bean方法的异步调用 比如有个l
  • 代码随想录算法训练营19期第44天

    完全背包 视频讲解 带你学透完全背包问题 和 01背包有什么差别 遍历顺序上有什么讲究 哔哩哔哩 bilibili https programmercarl com E8 83 8C E5 8C 85 E9 97 AE E9 A2 98 E
  • 数据工具sqoop用法之mysql与hive数据导入导出

    一 pom org apache hive hive jdbc 1 1 0 org apache hadoop hadoop common 2 6 0 org mybatis mybatis 3 4 6 mysql mysql connec