Hive导数据入MySQL

建立与hbase表映射的hive,用sqoop导入mysql

创建mysql表

use anticheat;

create table newsinfo_anticheat_blacklist(

userid varchar(30) primary key ,

dt int,

update_time timestamp,

delete_flag int,

operator varchar(30)

);

全量导出

用sqoop export全量导出hive表数据入mysql,具体命令如下:

sqoop export -D mapred.job.queue.name=datacenter

--connect jdbc:mysql://localhost:3306/anticheat?tinyInt1isBit=false

--username root

--password ^qn9DFYPm

--table newsinfo_anticheat_blacklist

--input-fields-terminated-by '\t'

--input-null-string '\\N'

--input-null-non-string '\\N'

--num-mappers 10

--export-dir hdfs://dc5/user/infodata/hive/online/newsinfo_anticheat_blacklist_mysql

增量导出

sqoop export -D mapred.job.queue.name=datacenter

--connect jdbc:mysql://localhost:3306/anticheat?tinyInt1isBit=false

--username root

--password ^qn9DFYPm

--table newsinfo_anticheat_blacklist2

--input-fields-terminated-by '\t'

--input-null-string '\\N'

--input-null-non-string '\\N'

--num-mappers 10

--update-key update_time

--update-mode allowinsert

--export-dir hdfs://dc5/user/infodata/hive/online/newsinfo_anticheat_blacklist_mysql2

MySQL导数据入Hive

创建Hive表

创建同步mysql表的hive表

CREATE TABLE infodata.newsinfo_anticheat_blacklist_mysql(

key string,

dt int,

update_time timestamp,

delete_flag int,

operator string

)

ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'

STORED AS TEXTFILE

LOCATION 'hdfs://dc5/user/infodata/hive/online/newsinfo_anticheat_blacklist_mysql';

全量导入

用sqoop import全量导出mysql表数据入hive表,具体命令如下:

sqoop import -D mapred.job.queue.name=datacenter

--connect jdbc:mysql://localhost:3306/anticheat?tinyInt1isBit=false

--username root

--password ^qn9DFYPm

--table newsinfo_anticheat_blacklist

--delete-target-dir

--beeline "jdbc:hive2://:10000/infodata;principal=hive/@;"

--hive-import --fields-terminated-by '\t'

--hive-database infodata

--hive-table newsinfo_anticheat_blacklist_mysql

--null-string '\\N'

--null-non-string '\\N'

--hive-overwrite

--num-mappers 1

--outdir /home/infodata/data/anticheat/mysql2hive

null字符串转为NULL,添加下面两条参数可以实现:

–null-string 如果指定列为字符串类型,使用指定字符串替换值为null的该类列的值

–null-non-string 如果指定列为非字符串类型,使用指定字符串替换值为null的该类列的值

增量导入

增量导入:(根据时间来导入,如果表中没有时间属性,可以增加一列时间簇)

核心参数:

–check-column 用来指定一些列,这些列在增量导入时用来检查这些数据是否作为增量数据进行导入,和关系型数据库中的自增字段及时间戳类似. 注意:这些被指定的列的类型不能使任意字符类型(在关系数据库中),如char、varchar等类型都是不可以的,同时–check-column可以去指定多个列

–incremental 用来指定增量导入的模式,两种模式分别为Append和Lastmodified

–last-value 指定上一次导入中检查列指定字段最大值,即会导入比lastvalue指定值大的数据记录

注意:上面三个参数都必须添加!

执行语句:

sqoop import -D mapred.job.queue.name=datacenter

--connect jdbc:mysql://localhost:3306/anticheat?tinyInt1isBit=false

--username root

--password ^qn9DFYPm

--table newsinfo_anticheat_blacklist2

--delete-target-dir

--hive-import --fields-terminated-by '\t'

--beeline "jdbc:hive2://:10000/infodata;principal=hive/@;"

--hive-database infodata

--hive-table newsinfo_anticheat_blacklist_mysql2

--null-string '\\N'

--hive-overwrite

--num-mappers 1

--check-column update_time

--incremental lastmodified

--last-value "2019-04-12 14:31:34"

--outdir /home/infodata/data/anticheat/mysql2hive

以上语句使用 lastmodified 模式进行增量导入,结果报错:

错误信息:--incremental lastmodified option for hive imports is not supported. Please remove the parameter --incremental lastmodified

错误原因:Sqoop 不支持 mysql转hive时使用 lastmodified 模式进行增量导入,但mysql转HDFS时可以支持该方式!

我们使用append方式导入:

sqoop import -D mapred.job.queue.name=datacenter

--connect jdbc:mysql://localhost:3306/anticheat?tinyInt1isBit=false

--username root

--password ^qn9DFYPm

--table newsinfo_anticheat_blacklist2

--delete-target-dir

--hive-import --fields-terminated-by '\t'

--hive-database infodata

--hive-table newsinfo_anticheat_blacklist_mysql2

--null-string '\\N'

--null-non-string '\\N'

--num-mappers 1

--check-column update_time

--incremental append

--last-value "2019-04-12 14:31:34"

--outdir /home/infodata/data/anticheat/mysql2hive

增量导入成功!

hive mysql互导_Hive和MySQL数据互导相关推荐

  1. 如何将hive与mysql连接_hive连接mysql配置

    1.进入hive/conf目录下,修改hive-default.xml:  @baidu, I 修改的是 hive-site.xml hive.metastore.local true javax.j ...

  2. 大数据案例——Hive、MySQL、HBase数据互导

    本文是基于教程大数据案例--本地文件上传hive数据库,对数据在Hive,MySQL,HBase之间的互导进行进阶版的学习.数据集:淘宝用户点击商品操作数据集,共30万条记录.如果没有安装MySQL, ...

  3. hive mysql 远程_Hive配置 远程连接MySQL

    因为hive是Hadoop的一个组件,作为数据厂库,hive的数据是存储在Hadoop的文件系统中的,hive为Hadoop提供SQL语句,是Hadoop可以通过SQL语句操作文件系统中的数据.hiv ...

  4. HIVE的安装配置、mysql的安装、hive创建表、创建分区、修改表等内容、hive beeline使用、HIVE的四种数据导入方式、使用Java代码执行hive的sql命令

    1.上传tar包 这里我上传的是apache-hive-1.2.1-bin.tar.gz 2.解压 mkdir -p /home/tuzq/software/hive/ tar -zxvf apach ...

  5. Hadoop Hive概念学习系列之HDFS、Hive、MySQL、Sqoop之间的数据导入导出(强烈建议去看)(十八)...

    把MySQL里的数据导入到HDFS 1.使用MySQL工具手工导入 把MySQL的导出数据导入到HDFS的最简单方法就是,使用命令行工具和MySQL语句. 为了导出整个数据表或整个数据库的内容,MyS ...

  6. 巨坑:从Sqoop导入MySQL导入TINYINT(1)类型数据到hive(tinyint),数据为null

    问题描述 从Sqoop导入MySQL导入TINYINT(1)类型数据到hive(tinyint),数据为null 问题原因 Sqoop在抽取数据到Hive或者HDFS时,会自动将类型为Tinyint( ...

  7. Sqoop是一款开源的工具,主要用于在HADOOP(Hive)与传统的数据库(mysql、oracle...)间进行数据的传递...

    http://niuzhenxin.iteye.com/blog/1706203 Sqoop是一款开源的工具,主要用于在HADOOP(Hive)与传统的数据库(mysql.postgresql...) ...

  8. hive和mysql的区别_hive和mysql的区别是什么

    hive和mysql的区别是什么 hive和mysql的区别有: 1.查询语言不同:hive是hql语言,mysql是sql语句: 2.数据存储位置不同:hive是把数据存储在hdfs上,而mysql ...

  9. hive安装需要安装mysql区别_HIVE安装系列之一:在Linux中安装mysql,为其作为hive的metastore做准备...

    安装mysql的Linux机器是Centos6的系统,机器名字叫combanc05 mysql我采用的是5.5版本. 安装过程中需要解决新旧版的冲突问题,并允许mysql被远程访问.以便其作为hive ...

最新文章

  1. C# 写入和读出文本文件
  2. C# 获取指定进程的主窗口句柄
  3. mybatis 联查
  4. nyc检测Javascript代码覆盖率
  5. AB1601中使用定时器来进行延时的弊端
  6. 使用Jenkins时,如果GIT_COMMIT无变化,跳过构建
  7. IntelliJ IDEA安装
  8. designpatterns -- strategy
  9. HBase性能优化方法总结(三):读表操作
  10. Linux 信号量 生产者消费者小例题
  11. 在Spring WebFlux中创建多个RouterFunction
  12. mysql 安装1364_安装完MySQL,在配置最后一步报错error Nr.1364
  13. 收藏 || 11个超好用的在线检查语法的网站!!!
  14. 总结_____大二上
  15. list元素求和_C# lamda =gt;与 数组 list,简单应用
  16. h.264回顾——001
  17. 鼎捷易助8.0ERP系统制造业ERP系统介绍
  18. 阿里云天池大赛赛题解析——深度学习篇
  19. bigemap地图下载器 好用吗?
  20. mac开机启动mysql_mac 设置mysql开机自启动

热门文章

  1. 个性化联邦学习算法框架发布,赋能AI药物研发
  2. 一招教你数据仓库如何高效批量导入与更新数据
  3. 因为这几个TypeScript代码的坏习惯,同事被罚了500块
  4. 【华为云技术分享】选择困难症必看!云服务器操作系统选择技巧+经验
  5. 华为云推出新冠肺炎AI辅助诊断服务,CT量化结果秒级输出
  6. 【华为云技术分享】打卡APIG服务专享版,打造全栈API治理方案
  7. 野生前端的数据结构练习(1)——栈
  8. Head First设计模式读书笔记六 第七章下 外观模式
  9. 基于Matlab的跨孔CT胖射线追踪算法(三)
  10. java math tan,Java Math.tan() 方法