文章来源:http://www.study-java.cn/ 上一篇文章我们使用通过beeline执行一些常规的HQL,今天这一篇文章主要来看如果通过Java将MySQL数据导入到Hive中。...Sqoop Sqoop并不在这篇文章的范围内,拿出来说的原因是,公司数据研发部门是通过Sqoop将数据库数据导入到Hive中,其原理是将数据库数据导入到HDFS中临时存储, 然后在将文件导入到Hive中...而笔者并没有采用这种方式,原因很简单,我的目的是学习Hive,过多的用这些工具会增加了我的学习工具成本,所以我看了Sqoop的原理后,准备模仿一下,简单的 实现数据的导入,过程如下: 连接MySQL 查询导入的数据...调用Hadoop的API将数据存入到HDFS中 将HDFS文件导入到Hive中 查询MySQL数据 这里我查询用户表的用户名称,年,月,日,并将结果集存入ResultSet中 String...,也不是不能存到数据库中,但是我们需要了解Hadoop封装的类,但是Hive虽然也是将数据存入HDFS,但是你只是需要知道HQL操作即可。
1、导入到Hive默认数据库 [root@node1 sqoop-1.4.7]# bin/sqoop-import-all-tables --connect jdbc:mysql://node1:3306...Use the --direct 18/05/24 15:26:22 WARN manager.MySQLManager: option to exercise a MySQL-specific fast...path. 18/05/24 15:26:22 INFO manager.MySQLManager: Setting zero DATETIME behavior to convertToNull (mysql...> 2、导入到指定Hive数据库 默认是导入到default数据库中,如果想指定导入到某个数据库中,可以使用–hive-database参数 hive> create database test; OK...:mysql://node1:3306/esdb --username root --password 123456 --hive-import --hive-database test --create-hive-table
"); } } 读取Mysql package com.xhkjedu.mysql2hive; import com.alibaba.fastjson2.JSONObject; import...,并不是全部取出放在内存,因为ResultSet.next之前,是获取了数据库连接的,数据库连接断开,你就获取不到数据了,说明是有通讯的。...写入Hive package com.xhkjedu.mysql2hive; import com.alibaba.fastjson2.JSONObject; import org.apache.flink.configuration.Configuration...; import org.apache.flink.types.Row; public class Mysql2Hive { public static void main(String[]..."default"; // 默认数据库名称 String hiveConfDir = "/data/tools/bigdata/apache-hive-2.1.0-bin/conf"
目前提供两种方法解决数据库中的字段值为NULl导入到HIVE中后变成空字符串的方法,使用以下方法可以保障在mysql中存储的是NULL,导入到HIVE表后也是NULL 第一种 解决方法: 直接修改hive...https://cloud.tencent.com/developer/article/1454899 解决方法: 通过开源工具sqoop在后台服务器上进行导入 ①部署完sqoop客户端 ②修改HIVE...表的属性 alter table ${table_name} SET SERDEPROPERTIES('serialization.null.format' = '\N'); ③执行sqoop导入命令...sqoop import \ --connect "jdbc:mysql://x.x.x.x:3306/easytest" \ --username xxx \ --password xxx \ --table...如果指定列为字符串类型,使用指定字符串替换值为null的该类列的值 --null-non-string 如果指定列为非字符串类型,使用指定字符串替换值为null的该类列的值 使用限制:导入的
一、前言 今天bug菌就来记录一下,自己是怎么如何有效这个 [Err] 1046 – No database selected 导入失败的bug吧;具有很好的参考价值!...1、首先如下是导入sqlQ文件的日常操作,结果报错,导入失败: 导入失败结果截图:具体如下: 2、接下来,我按照网上其他人的解决方案,去掉勾选[每个运行中运行多重查询]选项,导入执行结果还是失败了...,压根行不通啊; 这就是网上大佬推荐的,执行报错截图: 难得就没办法了,接下来,我来讲讲我是如何成功解决这个问题的 二、解决方案 后面才发现:出现这个问题是由于没有先新建数据库就直接导入...所以解决步骤如下: 第一步: 1、先在本地创建一个数据库,至于如何新建,可以参考下 点我教你如何本地新建数据库,不信点下我 第二步: 2、在你创建的数据库下选择表 单击右键,选择运行SQL...文件 第三步: 3、选择你所需要导入的sql文件,最后点击开始 第四步: 4、ok!
环境 Linux环境:CentOS7.8 MySQL版本:8.0.21 报错 报错:Loading local data is disabled; this must be enabled on both...如果只修改这个配置之后就使用导入文件命令会报这个错: ?...,我的centos只有/etc下面有my.cnf文件和my.cnf.d文件夹,而且my.cnf.d文件夹是空的,找了很多博客最后只能自己试,要在my.cnf文件添加local-infile=1,**[mysql...我的文件里面没有[mysql]字段,是自己添加的,没有这个字段的可以参考一下,改完之后就Okay了。 声明 本文为原创,转载请声明来源!
Hive导入数据 创建规则文件 vim /tmp/result.log baidu.com 12 2018-08-12 baidu.com 22 2018-08-12 baidu.com 19 2018...-08-12 baidu.com 10 2018-08-12 hadoop fs -put /tmp/result.log /data/ Hive创建数据库 # 创建hive数据库 create database...generate_date STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\b' STORED AS TEXTFILE; \b 制表符是文件导入到...hive表中时一个分割符,也可以填写入ascii码 在文件数据成功导入到hive中时会把hdfs中文件删除 Hive导入本地及HDFS数据 # 导入本地文件 load data local inpath...; # 查询数据导入是否正确 select * from t_result; 扩展链接 Hive基本概念 Hive批量日志分析 Hive建表格式示例
1.1hive-import参数 使用--hive-import就可以将数据导入到hive中,但是下面这个命令执行后会报错,报错信息如下: sqoop import --connect jdbc:mysql...原因是因为sqoop导数据到hive会先将数据导入到HDFS上,然后再将数据load到hive中,最后吧这个目录再删除掉。当这个目录存在的情况下,就会报错。...1.2target-dir参数来指定临时目录 为了解决上面的问题,可以把person目录删除掉,也可以使用target-dir来指定一个临时目录 sqoop import --connect jdbc:mysql...temp 1.3hive-overwrite参数 如果上面的语句执行多次,那么会产生这个表数据的多次拷贝 1.4fields-terminated-by 当吧mysql中的数据导入到hdfs中,默认使用的分隔符是空格...default.c1_dim_01216 --hive-import --fields-terminated-by "," -m 1;
table XXX( ..... )partitioned by(dt string) row format delimited fields terminated by '\t'; 2、数据导入
问题是这样的,从Mysql中导入数据到Hive中,Mysql中数据是"T2",到Hive中后,发现变为"54 32",咦,怎么乱码了,感觉这像ASCII编码。 ...现象有了,之前都没遇到过这样,觉得很奇怪,迅速找了下相关资料,再查看Mysql中数据库表字段是text类型。 ...如何解决: 在sqoop导入语句中加入如下的参数,其中xxx是数据库库表中的列名称,即上面出现ASCII的列名称。 List-1 --map-column-java xxx=String
使用 sqoop 将 hive 数据导入 mysql 后出现乱码: ? 进入数据库,输入 show variables like 'character%'; 回车 ?...我这里有两种解决办法,如下 方法1:修改数据库配置文件 (1)在下面这个位置添加几行配置 vim /etc/my.cnf ?...之后再执行命令的时候在mysql数据库名后面加上?useUnicode=true&characterEncoding=utf-8就可以了。...示例:sqoop export --connect "jdbc:mysql://数据库ip:3306/数据库名称?...characterEncoding=utf-8" \ --username root \ --password 123456 \ --table test3 \ --export-dir /user/hive
Hive支持两种方式的数据导入 使用load语句导入数据 使用sqoop导入关系型数据库中的数据 使用load语句导入数据 导入本地的数据文件 load data local inpath '/home...导入HDFS上的数据 load data inpath '/home/centos/a.txt' into table tt; 使用sqoop导入关系型数据库中的数据 将关系型数据的表结构复制到hive...--password 123456 --hive-table test 其中 --table username为mysql中的数据库test中的表 --hive-table test 为hive...中新建的表名称 ########## 从关系数据库导入文件到hive中 sqoop import --connect jdbc:mysql://localhost:3306/test --username...root --password mysql-password --table t1 --hive-import ########## 将hive中的表数据导入到mysql中 sqoop export
其他分隔符号可修改此选项; # 更多参数请查阅官方文档 df.write.insertInto('ml_test.decivsion', overwrite=False) # 将dataframe写入到指定hive
1、Navicat连接数据库失败,可能与密码、权限有关。...报警内容:1251-Client does not support authentication protocol requested by server;consider upgrading MySQL...解决办法:mysql -uroot -p,打开数据库,输入如下两条命令,问题解决。...连接其他电脑上的数据库失败,可能与防火墙有关。...报警内容:1130-Host ’...‘ is not allowed to connect to this MySQL server。解决办法:关闭防火墙。
首先,打开MySQL workbench,先新建数据库(我们会把.sql文件导入之这个数据库),新建数据库过程如下: 先点击1处,新建数据库,给数据库起个名字,点击appy,就创建成功了。...之后点击2处,就可以看到现有的数据库了。 这里圈出来的是我新建的数据库,双击选中这个数据库(双击选中很重要,因为选中之后才能将.sql文件导入这个数据库中)。...然后点击左上方的第二个图标(图中圈出来的那个),选择自己要导入的.sql文件,点击打开即可。...点击“闪电”形状的按钮,运行.sql文件,就开始导入了,导入完成之后刷新数据库,就可以看到已经导入啦。 刷新newsrec数据库,就可以看到导入的表格了。
现有文件为csv格式,需要导入hive中,设csv内容如下 1001,zs,23 1002,lis,24 首先创建表 create table if not exists csv2( uid int...as textfile ; 导入数据及查询 load data local inpath '/data/csv2.csv' into table csv2; select * from csv2; 其他注意事项...如果建表是parquet格式可否load导入csv文件?...a Parquet file. expected magic number at tail [80, 65, 82, 49] but found [44, 50, 52, 10] **不可以,需要先导入成...textfile,之后再从临时表导入成parquet,**如下 drop table csv2; create table if not exists csv2 ( uid int,
Maven 依赖导入失败 前言: 第一天上班,拉取公司项目,依赖报错… 搞了半天才弄好,恶心呐~ 看了一些文章,为了方便以后好搞,开始进行记录: 方法一: 简单粗暴:直接 clear清除 compile...案例: 本人需要爆红需要导入的依赖: 远程仓库 或 百度 任何途径找到具体的Jar…下载Jar 随便放在一个文件目录中 D盘 C盘 桌面 总得有一个存储的目录, 通过 MVN 命令进行打包构建...3.5.7 -Dpackaging=jar -Dfile=C:\Users\王斯明\Desktop\LSWork\wsm\spire.Xls-3.5.7.jar -DgroupId: 定义的在什么组, 导入...Maven依赖的组名 e-iceblue -DartifactId: 包名, 导入Maven依赖的包名 spire.XLs -Dversion: 当前版本, 导入Maven依赖的版本 3.5.7 -Dpackaging: 打包的方式: jar war...
转到“高级”选项卡并设置“服务器时区”) 解决方案 命令行登录MySQL数据库,win + R,登录数据库: mysql -uroot -p 点击回车输入密码,如图 image.png 继续输入...以下命令 (注意不要漏掉后面的分号),回车,如图: show variables like'%time_zone'; image.png 如果 显示 SYSTEM 就是我们没有设置时区, 时区错误,MySQL...默认的时区是UTC时区,比北京时间晚8个小时 , 所以要修改mysql的时长区,输入一下命令,注意不要漏掉后面的分号),回车,如图: set global time_zone = '+8:00';...image.png 这时你重新连接下数据库,基本上就没有问题了!
展开全部 方法一: 1、首先我e68a84e8a2ad3231313335323631343130323136353331333363393134们使用MySQL提供的命令行界面来导入数据库,确保自己的电脑中安装了...MySQL数据库,我们可以通过命令行来确认是否安装了MySQL数据库,当然,第一步是打开Mysql的数据库服务,我们使用命令行来打开, 2、启动MySQL后,我们找到需要用到的脚本文件,也就是数据库文件...;来导入数据库,先进入mysql, 4、首先要在数据库中建立好数据库,然后导入脚本,所以先建立一个数据库哦,不要脚本是不知道你要往哪个数据库中导入脚本的,如下图所示: 5、然后就可以输入导入.sql文件命令...: mysql> USE 数据库名; mysql> SOURCE d:/test.sql; 6、看到上面的画面,说明mysql数据库已经导入成功了哦!...现在来介绍第二种方法,使用mysql图形工具导入数据库,我们还是使用test.sql脚本来说明:方法二: 使用Navicat for MySQL图形界面来导入数据库,使用图形界面导入数据库的步骤很简单,
领取专属 10元无门槛券
手把手带您无忧上云