043 hive数据同步到mysql
一:意义
1.意义
如果可以实现这个功能,就可以使用spark代替sqoop,功能程序就实现这个功能。
二:hive操作
1.准备数据
启动hive
否则报错,因为在hive与spark集成的时候,配置过配置项。
后来,又看见这个文档,感觉很好的解释了我存在的问题:https://blog.csdn.net/freedomboy319/article/details/44828337
2.新建部门员工表
1 -》创建员工表 2 create table emp( 3 empno int, 4 ename string, 5 job string, 6 mgr int, 7 hiredate string, 8 sal double, 9 comm double, 10 deptno int 11 ) 12 row format delimited fields terminated by '\t'; 13 load data local inpath '/opt/datas/emp.txt' into table emp; 14 15 16 -》部门表 17 create table dept( 18 deptno int, 19 dname string, 20 loc string 21 ) 22 row format delimited fields terminated by '\t'; 23 load data local inpath '/opt/datas/dept.txt' into table dept;
3.效果
三:程序
1.大纲
2.前提
需要hive-site.xml
3.需要的依赖
1 <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-hive --> 2 <dependency> 3 <groupId>org.apache.spark</groupId> 4 <artifactId>spark-hive_2.10</artifactId> 5 <version>${spark.version}</version> 6 <scope>provided</scope> 7 </dependency> 8 9 <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> 10 <dependency> 11 <groupId>mysql</groupId> 12 <artifactId>mysql-connector-java</artifactId> 13 <version>6.0.4</version> 14 </dependency>
4.报错如下
1 Exception in thread "main" java.sql.SQLNonTransientConnectionException: CLIENT_PLUGIN_AUTH is required 2 at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:550) 3 at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:537) 4 at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:527) 5 at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:512) 6 at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:480) 7 at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:498) 8 at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:494) 9 at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:72) 10 at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:1634) 11 at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:637) 12 at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:351) 13 at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:224) 14 at org.apache.spark.sql.execution.datasources.jdbc.JdbcUtils$$anonfun$createConnectionFactory$2.apply(JdbcUtils.scala:61) 15 at org.apache.spark.sql.execution.datasources.jdbc.JdbcUtils$$anonfun$createConnectionFactory$2.apply(JdbcUtils.scala:52) 16 at org.apache.spark.sql.DataFrameWriter.jdbc(DataFrameWriter.scala:278) 17 at com.scala.it.HiveToMysql$.main(HiveToMysql.scala:28) 18 at com.scala.it.HiveToMysql.main(HiveToMysql.scala) 19 Caused by: com.mysql.cj.core.exceptions.UnableToConnectException: CLIENT_PLUGIN_AUTH is required 20 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 21 at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 22 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 23 at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 24 at com.mysql.cj.core.exceptions.ExceptionFactory.createException(ExceptionFactory.java:54) 25 at com.mysql.cj.core.exceptions.ExceptionFactory.createException(ExceptionFactory.java:73) 26 at com.mysql.cj.mysqla.io.MysqlaProtocol.rejectConnection(MysqlaProtocol.java:319) 27 at com.mysql.cj.mysqla.authentication.MysqlaAuthenticationProvider.connect(MysqlaAuthenticationProvider.java:207) 28 at com.mysql.cj.mysqla.io.MysqlaProtocol.connect(MysqlaProtocol.java:1361) 29 at com.mysql.cj.mysqla.MysqlaSession.connect(MysqlaSession.java:132) 30 at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:1754) 31 at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:1624) 32 ... 8 more
原因:
mysql-connect版本不匹配,换5.1.17版本。
5.程序
1 package com.scala.it 2 3 import java.util.Properties 4 5 import org.apache.spark.sql.SaveMode 6 import org.apache.spark.sql.hive.HiveContext 7 import org.apache.spark.{SparkConf, SparkContext} 8 9 object HiveToMysql { 10 def main(args: Array[String]): Unit = { 11 val conf = new SparkConf() 12 .setMaster("local[*]") 13 .setAppName("hive-yo-mysql") 14 val sc = SparkContext.getOrCreate(conf) 15 val sqlContext = new HiveContext(sc) 16 val (url, username, password) = ("jdbc:mysql://linux-hadoop01.ibeifeng.com:3306/hadoop09", "root", "123456") 17 val props = new Properties() 18 props.put("user", username) 19 props.put("password", password) 20 21 // ================================== 22 // 第一步:同步hive的dept表到mysql中 23 sqlContext 24 .read 25 .table("hadoop09.dept") // database.tablename 26 .write 27 .mode(SaveMode.Overwrite) // 存在覆盖 28 .jdbc(url, "mysql_dept", props) 29 } 30 }
6.效果
转载于:https://www.cnblogs.com/juncaoit/p/9382516.html
043 hive数据同步到mysql相关推荐
- Table阿里云mysql_数据同步-从MySQL到Tablestore-阿里云开发者社区
数据同步-从MySQL到Tablestore DataX是阿里集团广泛使用的离线数据导出工具, 本文将详细介绍如何从MySQL导出全量数据到Tablestore(OTS)中. 一.导出步骤 DataX ...
- 把hive数据导出至mysql
##################环境########################################### 软件 版本 备注 Ubuntu 19.10 sqoop 1.4.7 ...
- MySQL用sqoop导出乱码_Sqoop将hive数据导出到MySQL中文乱码了怎么办?
今天遇到一个问题,如下图所示,我用sqoop将hive中数据导出到mysql中,结果出现了以下情况: 经过查找资料,终于解决了问题,下面我将自己的完整解决步骤做一下记录,如果能帮到需要帮助的人,我会非 ...
- Elasticsearch和Hive整合,将hive数据同步到ES中
1 Elasticsearch整合Hive 1.1 软件环境 Hadoop软件环境 Hive软件环境 ES软件环境 1.2 ES-Hadoop介绍 1.2.1 官网 https://www.elast ...
- sqoop export hive数据同步到oracle的用法
1.export 的参数 2.数据同步案例 sqoop export \--connect jdbc:oracle:thin:@ip:1521/服务名--username 用户名 --password ...
- Hive 数据同步ClickHouse
需求:按条件筛选Hive表中的数据同步到ClickHouse中 方法一: 按照ClickHouse 官方文档提供的方法,在ClickHouse 中创建HDFS引擎表,读取Hive的数据,将读取的数据插 ...
- Oracle数据库数据同步到mysql数据库(Oracle数据库备份dmp如何同步到mysql)
Oracle数据库dmp转mysql格式 一.背景 一项目客户是oracle数据库,需要导一个表数据到自研系统mysql数据库,甲方已给出oracle格式dmp文件! 处理思路: ①.安装Oracle ...
- Kafka-connect将Kafka数据同步到Mysql
一.背景信息 Kafka Connect主要用于将数据流输入和输出消息队列Kafka版.Kafka Connect主要通过各种Source Connector的实现,将数据从第三方系统输入到Kafka ...
- 数据同步:MySQL到Elasticsearch
目录 背景 1.基于应用程序多写 2.基于binlog订阅 2.1:canal 简介 工作原理 2.2.Databus 2.3.Maxwell 2.4.Flink CDC 2.5.DTS(阿里云) 2 ...
最新文章
- 如何为网站设置站点图标
- android触摸外部关闭键盘,如何隐藏Android上的软键盘,点击外部EditText?
- Linux单用户能做什么,Linux单用户模式详解 及应用场景
- Linux系统编程:lseek扩展文件大小失败原因分析
- 声卡loopback有什么用_声卡购买须知,别买来又退整麻烦事的
- 图数据库 Titan 快速入门
- 在线象棋游戏php网站源码分享
- python判断ip是否可以ping通
- python打印朱莉娅集合
- 6步讲解应对ESD基本方法
- Nacos 中配置 Map 类型,不香
- 云班课在计算机,云班课电脑版
- 代币系统对会计准则和企业财务革新的启示
- java无法连接远程服务器数据库,jar远程连接数据库失败
- echarts饼图圆环图数据为0时字体重叠
- 百度想象空间还有多少?
- 知明:技术 Leader 的思考法
- 哪款苹果无线充电宝最好?苹果无线充电宝哪个牌子好
- androidpn客户端深析
- day35 数据库的初步认识
热门文章
- java关联查询实战_MapReduce实战(五)实现关联查询
- 【译】ICO 2.0 — The Advent of What Crypto-Fund Raising Should Really Look Like
- 一种 Android 应用内全局获取 Context 实例的装置
- 一篇不一样的docker原理解析
- 实现AIDL接口的Binder连接池
- Linux内核中无名管道pipe和有名管道fifo的分析
- JZOJ 1240. Fibonacci sequence
- python数据科学导论 中南_Python数据科学导论
- 破解密码高手王小云教授简介
- NOI2020 前最后的日子