文档章节

利用sqoop1.6对mysql和hive进行同步的问题

aibati2008
 aibati2008
发布于 2016/04/26 13:36
字数 552
阅读 56
收藏 0
点赞 1
评论 0

问题1:

从mysql数据库中导入到hive中可以执行:

sqoop import --connect jdbc:mysql://localhost/gamewave --username root --password 123456 --table log --hive-import -m 1

其中-m 1 参数代表的含义是使用多少个并行,这个参数的值是1,说明没有开启并行功能。

将m参数的数值调为5或者更大,Sqoop就会开启5个进程,同时进行数据的导入操作。

注意, 如果报以下错误:

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
    at org.apache.sqoop.mapreduce.db.DBInputFormat.setConf(DBInputFormat.java:167)
    at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:73)
    at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:133)
    at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:726)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:340)
    at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:167)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:415)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1556)
    at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:162)
Caused by: java.lang.RuntimeException: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

这是因为在并行导入,集群中的其他节点并没有mysql的访问权限(设置为%也不行, 需要在mysql中x显式指定IP),执行如下命令:

GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'192.168.64.16' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

如果你的mysql不能显式指定IP,比如我们公司服务器是用的阿里云的rds,就只有把其他节点的ip加入白名单。

 

 

问题2:

在同步过程中,如果不加其他参数,导入的数据默认的列分隔符是'\001',默认的行分隔符是'\n'。这样问题就来了,如果导入的数据中有'\n',hive会认为一行已经结束,后面的数据被分割成下一行,而且会出现数据不一致的情况。

Sqoop也指定了参数 --fields-terminated-by和 --lines-terminated-by来自定义行分隔符和列分隔符。但是目前行分隔符只支持'\n', 所以该方法行不通.

查看帮助文档后发现有如下2个参数:

--hive-drop-import-delims                                   

Drops \n\r, and \01 from string fields when importing to Hive.

--hive-delims-replacement

Replace \n\r, and \01 from string fields with user defined string when importing to Hive.

因此加上这2个参数来把导入数据中包含的hive默认的分隔符去掉或替换。

sqoop import --connect jdbc:mysql://100.99.74.222:3306/fmcm_cms --username thecover --password Thecover_2016 --table fm_pgc_news --fields-terminated-by '\t' --hive-import --hive-database fmcm --create-hive-table --hive-delims-replacement ' '

 

© 著作权归作者所有

共有 人打赏支持
aibati2008
粉丝 12
博文 81
码字总数 60745
作品 0
成都
技术主管
京东大数据工程师教你怎样用Sqoop

Sqoop是什么 Sqoop:SQL-to-Hadoop 连接 传统关系型数据库 和 Hadoop 的桥梁 把关系型数据库的数据导入到 Hadoop 系统 ( 如 HDFS HBase 和 Hive) 中; 把数据从 Hadoop 系统里抽取并导出到关...

JAVA丶学习
04/16
0
0
Sqoop-1.4.4工具import和export使用详解

Sqoop可以在HDFS/Hive和关系型数据库之间进行数据的导入导出,其中主要使用了import和export这两个工具。这两个工具非常强大,提供了很多选项帮助我们完成数据的迁移和同步。比如,下面两个潜...

Zero零_度
2016/07/24
27
0
hadoop2.7.0集群,使用中遇到的bug及解决办法

hadoop环境是2.7.0的集群环境,使用sqoop 1.4.6执行从mysql向hive的数据导入。 执行过程中报错,如下方的日志信息。但是查询hive中的数据,发现实际数据已经过来了,但因为mysql的数据表较多...

灵宝
2015/09/28
1K
0
HDFS Everywhere——RDBMS on HDFS

关系型数据库和HDFS的结合 ** 目录 ** 简介: – 题目: – 摘要: – 背景: 思路和计划: – 目标: 分工: 已有解决方案: – Sqoop: Solution: sqoop与loading对比: 项目简介: – 题目...

dukeke
2015/06/25
0
0
hive 配置注意事项及初始化hive 元数据

今天配置hive 犯了一个问题:下载的hive tar.gz 里的conf目录只有一个 hive-default.xml.template,于是我就cp 了一份命名为:hive-default.xml 结果弄上去总是出现一个问题,就是我在 bin/...

Zero零_度
2016/07/06
58
0
Hadoop生态系统

首先我们先了解一下Hadoop的起源。然后介绍一些关于Hadoop生态系统中的具体工具的使用方法。如:HDFS、MapReduce、Yarn、Zookeeper、Hive、HBase、Oozie、Mahout、Pig、Flume、Sqoop。 Hadoop...

huojiao2006
2017/03/06
0
0
基于flink的分布式同步工具

一.FlinkX是一个基于Flink的异构数据源离线同步工具,用于在多种数据源(MySQL、Oracle、SqlServer、Ftp、Hdfs,HBase、Hive、Elasticsearch等)之间进行高效稳定的数据同步。 二.FlinkX简化了...

whiletrue
07/02
0
0
有Mysql数据库的情况下为什么要用Hive数据库?

有Mysql数据库的情况下为什么要用Hive? 最近接到公司的一个需求,要求使用Hive做数据查询。当时第一反应就是What?Hive是什么鬼?一脸懵逼状。(请原谅一个刚开始实习的Java实习生见识短浅)...

nxw_tsp
2017/01/10
0
0
Hive架构以及应用介绍

Hive这个框架在Hadoop的生态体系结构中占有及其重要的地位,在实际的业务当中用的也非常多,可以说Hadoop之所以这么流行在很大程度上是因为Hive的存在。那么Hive究竟是什么,为什么在Hadoop家...

a2011480169
2016/05/23
0
0
基于论坛的apachecommon日志分析项目开发步骤

项目描述 通过对技术论坛的apache common日志进行分析,计算论坛关键指标,供运营者决策。 项目设计 MapReduce程序计算KPI HBASE详单查询 HIVE数据仓库多维分析 开发步骤: 使用flume把日志数...

On the Way
2017/12/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring Cloud Gateway 接口文档聚合实现

在微服务架构下,通常每个微服务都会使用Swagger来管理我们的接口文档,当微服务越来越多,接口查找管理无形中要浪费我们不少时间,毕竟懒是程序员的美德。 由于swagger2暂时不支持webflux 走...

冷冷gg
30分钟前
12
0
流利阅读笔记30-20180719待学习

1.今日导读 2.带着问题听讲解 3.新闻正文(中英文对照) 4.重点词汇 5.拓展内容

aibinxiao
32分钟前
1
0
OSChina 周五乱弹 —— 我们是食物链的最底层

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @温家成 :分享谢安琪的单曲《姿色份子》 《姿色份子》- 谢安琪 手机党少年们想听歌,请使劲儿戳(这里) @贪吃飒:最近p2p怎么了、半个月爆了...

小小编辑
46分钟前
6
1
Android Studio 3.0 之后打包apk出现应用未安装问题

1、废话 出现这个问题的原因,并不是只有一个,而是有多个原因,不懂的估计会被搞得一头雾水,下面我列举的是我遇到的几种问题和网友遇到的几种问题,但不一定是全部,也有可能有些莫名其妙的...

她叫我小渝
今天
0
0
前端基础

1. get请求传参长度的误区 误区:我们经常说get请求参数的大小存在限制,而post请求的参数大小是无限制的。 实际上HTTP 协议从未规定 GET/POST 的请求长度限制是多少。对get请求参数的限制是...

wenxingjun
今天
0
0
拦截SQLSERVER的SSL加密通道替换传输过程中的用户名密码实现运维审计(一)

工作准备 •一台SQLSERVER 2005/SQLSERVER 2008服务 •SQLSERVER jdbc驱动程序 •Java开发环境eclipse + jdk1.8 •java反编译工具JD-Core 反编译JDBC分析SQLSERVER客户端与服务器通信原理 SQ...

紅顏為君笑
今天
9
0
jQuery零基础入门——(六)修改DOM结构

《jQuery零基础入门》系列博文是在廖雪峰老师的博文基础上,可能补充了个人的理解和日常遇到的点,用我的理解表述出来,主干出处来自廖雪峰老师的技术分享。 在《零基础入门JavaScript》的时...

JandenMa
今天
0
0
linux mint 1.9 qq 安装

转: https://www.jianshu.com/p/cdc3d03c144d 1. 下载 qq 轻聊版,可在百度搜索后下载 QQ7.9Light.exe 2. 去wine的官网(https://wiki.winehq.org/Ubuntu) 安装 wine . 提醒网页可以切换成中...

Canaan_
今天
0
0
PHP后台运行命令并管理运行程序

php后台运行命令并管理后台运行程序 class ProcessModel{ private $pid; private $command; private $resultToFile = ''; public function __construct($cl=false){......

colin_86
今天
1
0
数据结构与算法4

在此程序中,HighArray类中的find()方法用数据项的值作为参数传递,它的返回值决定是否找到此数据项。 insert()方法向数组下一个空位置放置一个新的数据项。一个名为nElems的字段跟踪记录着...

沉迷于编程的小菜菜
今天
1
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部