Sqoop- sqoop将mysql数据表导入到hive报错
sqoop将mysql数据表导入到hive报错
- [root@ip---- lib]# sqoop import --connect jdbc:mysql://54.223.175.12:3308/gxt3 --username guesttest --password guesttest --table ecomaccessv3 -m 1 --hive-import
- Warning: /opt/cloudera/parcels/CDH-5.10.-.cdh5.10.0.p0./bin/../lib/sqoop/../accumulo does not exist! Accumulo imports will fail.
- Please set $ACCUMULO_HOME to the root of your Accumulo installation.
- // :: INFO sqoop.Sqoop: Running Sqoop version: 1.4.-cdh5.10.0
- // :: WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consider using -P instead.
- // :: INFO tool.BaseSqoopTool: Using Hive-specific delimiters for output. You can override
- // :: INFO tool.BaseSqoopTool: delimiters with --fields-terminated-by, etc.
- // :: INFO manager.MySQLManager: Preparing to use a MySQL streaming resultset.
- // :: INFO tool.CodeGenTool: Beginning code generation
- // :: ERROR manager.SqlManager: Error executing statement: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
- The last packet sent successfully to the server was milliseconds ago. The driver has not received any packets from the server.
- com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
- The last packet sent successfully to the server was milliseconds ago. The driver has not received any packets from the server.
- at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
- at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:)
- at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:)
- at java.lang.reflect.Constructor.newInstance(Constructor.java:)
- at com.mysql.jdbc.Util.handleNewInstance(Util.java:)
- at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:)
- at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:)
- at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:)
- at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:)
- at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:)
- at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:)
- at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:)
- at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
- at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:)
- at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:)
- at java.lang.reflect.Constructor.newInstance(Constructor.java:)
- at com.mysql.jdbc.Util.handleNewInstance(Util.java:)
- at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:)
- at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:)
- at java.sql.DriverManager.getConnection(DriverManager.java:)
- at java.sql.DriverManager.getConnection(DriverManager.java:)
- at org.apache.sqoop.manager.SqlManager.makeConnection(SqlManager.java:)
- at org.apache.sqoop.manager.GenericJdbcManager.getConnection(GenericJdbcManager.java:)
- at org.apache.sqoop.manager.SqlManager.execute(SqlManager.java:)
- at org.apache.sqoop.manager.SqlManager.execute(SqlManager.java:)
- at org.apache.sqoop.manager.SqlManager.getColumnInfoForRawQuery(SqlManager.java:)
- at org.apache.sqoop.manager.SqlManager.getColumnTypesForRawQuery(SqlManager.java:)
- at org.apache.sqoop.manager.SqlManager.getColumnTypes(SqlManager.java:)
- at org.apache.sqoop.manager.ConnManager.getColumnTypes(ConnManager.java:)
- at org.apache.sqoop.orm.ClassWriter.getColumnTypes(ClassWriter.java:)
- at org.apache.sqoop.orm.ClassWriter.generate(ClassWriter.java:)
- at org.apache.sqoop.tool.CodeGenTool.generateORM(CodeGenTool.java:)
- at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:)
- at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:)
- at org.apache.sqoop.Sqoop.run(Sqoop.java:)
- at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:)
- at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:)
- at org.apache.sqoop.Sqoop.runTool(Sqoop.java:)
- at org.apache.sqoop.Sqoop.runTool(Sqoop.java:)
- at org.apache.sqoop.Sqoop.main(Sqoop.java:)
- Caused by: java.net.ConnectException: Connection refused
- at java.net.PlainSocketImpl.socketConnect(Native Method)
- at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:)
- at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:)
- at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:)
- at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:)
- at java.net.Socket.connect(Socket.java:)
- at java.net.Socket.connect(Socket.java:)
- at java.net.Socket.<init>(Socket.java:)
- at java.net.Socket.<init>(Socket.java:)
- at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:)
- at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:)
- ... more
- // :: ERROR tool.ImportTool: Encountered IOException running import job: java.io.IOException: No columns to generate for ClassWriter
- at org.apache.sqoop.orm.ClassWriter.generate(ClassWriter.java:)
- at org.apache.sqoop.tool.CodeGenTool.generateORM(CodeGenTool.java:)
- at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:)
- at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:)
- at org.apache.sqoop.Sqoop.run(Sqoop.java:)
- at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:)
- at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:)
- at org.apache.sqoop.Sqoop.runTool(Sqoop.java:)
- at org.apache.sqoop.Sqoop.runTool(Sqoop.java:)
- at org.apache.sqoop.Sqoop.main(Sqoop.java:)
网上说是MySQL驱动包的问题下,需要更换驱动包:“原有的jar包是mysql-connector-java-5.1.17.jar,替换成mysql-connector-java-5.1.32-bin.jar,可以使用了” ------亲测不行
- cd /opt/cloudera/parcels/CDH-5.10.-.cdh5.10.0.p0./lib/sqoop/lib/
- ll
- cp /home/zc.lee/mysql-connector-java-5.1.-bin.jar ./mysql-connector-java.jar
运行起来还是没有能把mr task跑起来,报错和上次一致。
还有是将localhost换成IP地址,我的机器是通过ssh -i 公钥连接到远端的服务器,通过将运行命令的连接换成IP地址后测试查询库出现报错,换回loucalhost能正常list databases
分析原因:
因为我的jdbc上面用的是localhost+端口/127.0.0.1+端口,然而只有当前的机器做了端口映射,然而sqoop抽数底层的原理是去跑mapreduce,当把任务分配hadoop集群的其他node,在这些worker上面也是调用localhost,但是这些worker上面没有做端口映射所以他们没有能够连接到数据库,导致mapreduce失败,没有办法抽数。
解决方式:
如果在没有复杂的环境下,一般这个命令是完全能执行的,但是环境复杂的情况下需要集群中每个Node(节点)都能于数据库通信才能保证sqoop运行的前提准备做好。
1.所有的worker都做端口映射。
2.如果环境不复杂的话,请用ip的方式去访问数据库,不要用localhost,不要用127.0.01.
当以上的方式都不能解决的情况下只能通过查询结果重定向的方式去完成需求。
- mysql -h127.0.0.1 -P3309 -uroot -proot -e "select * from defalut.test where date>='2017-07-01' and date<'2017-08-01' " --skip-column-names |sed -e "s/[\t]/\t/" -e "s/$/\r/">/tmp/test.txt
Sqoop- sqoop将mysql数据表导入到hive报错的更多相关文章
- mysql中大数据表alter增加字段报错:"1034 Incorrect key file for table 'table_name'; try to repair it"
mysql中大数据表alter增加字段报错:"1034 Incorrect key file for table 'table_name'; try to repair it" 现 ...
- 使用命令行将Excel数据表导入Mysql中的方法小结
从Excel数据表导入MySQL,已经做过好几次了,但每次都会碰到各种问题:invalid utf8 character string, data too long, ...,浪费了不少时间 为了提高 ...
- python连接mysql数据表查询表获取数据导入到txt中
import pymysql'''连接mysql数据表查询表获取数据导入到txt中'''#查询结果写入数据到txtdef get_loan_number(file_txt): connect = py ...
- MySQL数据导出导入【转】
MySQL基础 关于MySQL数据导出导入的文章,目的有二: 1.备忘 2.供开发人员测试 工具 mysqlmysqldump 应用举例 导出 导出全库备份到本地的目录 mysqldump -u$US ...
- navicat如何导出mysql数据表结构
我们在创建数据库时会对字段进行设置,比如类型.长度等,如果字段多的话一个个设置非常麻烦,可以从其他地方已有的表导入数据表结构,怎么操作呢?我们拿navicat导出mysql数据表结构为例: 1.点击“ ...
- mysql 数据到 导入导出 总结
数据库数据的导入和导出受secure_file_priv配置项影响#限制导入导出,null时无法进行数据的导入导出,空时不限制,设置了目录则只能对该目录下的文件进行导入导出show variables ...
- 【实战】使用 Kettle 工具将 mysql 数据增量导入到 MongoDB 中
最近有一个将 mysql 数据导入到 MongoDB 中的需求,打算使用 Kettle 工具实现.本文章记录了数据导入从0到1的过程,最终实现了每秒钟快速导入约 1200 条数据.一起来看吧~ 一.K ...
- MYSQL数据表损坏的原因分析和修复方法小结
MYSQL数据表损坏的原因分析和修复方法小结 1.表损坏的原因分析 以下原因是导致mysql 表毁坏的常见原因: 1. 服务器突然断电导致数据文件损坏. 2. 强制关机,没有先关闭mysql 服务. ...
- 用Myisamchk让MySQL数据表更健康
用Myisamchk让MySQL数据表更健康 2011-03-15 09:15 水太深 ITPUB 字号:T | T 为了让MySQL数据库中的数据表“更健康”,就需要对其进行定期体检.在这里笔者推荐 ...
随机推荐
- Arcgis:坐标系统极其转换
1. ArcGIS中的坐标系统 ArcGIS中预定义了两套坐标系统,地理坐标系(Geographic coordinate system)和投影坐标系(Projectedcoordinate syst ...
- eclipse导入svn工程,在文件夹里面不展示svn工程图标
原因:没有安装subclipse插件 解决方法:在marketplace中搜索插件名字:subclipse,点击安装,或者在instal new software中输入插件名字,安装完成之后,在文件夹 ...
- Java中synchronized用在静态方法和非静态方法上面的区别
synchronized 修饰在 static方法和非static方法的区别 在Java中,synchronized是用来表示同步的,我们可以synchronized来修饰一个方法.也可以sync ...
- json性能测试
http://www.open-open.com/lib/view/open1434377191317.html
- 转载 iOS全局检测网络变化的实时状态
昨天浏览了cocoaChina,发现了一遍文章是优化Reachablity框架的出来的检测网络类,大家都知道这个Reachablity框架是用来检测网络变化的!但是也是有一点bug,事实上,基于此 ...
- Lumen Repository(仓储)
在 Laravel 5 中使用 Repository 模式实现业务逻辑和数据访问的分离:http://laravelacademy.org/post/3063.html Eloquent: 集合:ht ...
- 贝塞尔曲线与CAShapeLayer的关系以及Stroke动画
1.贝塞尔曲线与CAShapeLayer的关系 1.1CAShapeLayer须要一个形状才干生效,贝塞尔曲线能够创建基于矢量的路径.进而能够给CAShapeLayer提供路径,路径会闭环. ...
- WSGI协议解析
WSGI协议中包含两个角色:服务器方和应用程序: 服务器方:其调用应用程序,给应用程序提供(环境信息)和(回调函数), 这个回调函数是用来将应用程序设置的http header和status等信息传递 ...
- CSS 布局实例系列(三)如何实现一个左右宽度固定,中间自适应的三列布局——也聊聊双飞翼
今天聊聊一个经典的布局实例: 实现一个三列布局,其中左侧和右侧的部分宽度固定,中间部分宽度随浏览器宽度的变化而自适应变化 可能很多朋友已经笑了,这玩意儿通过双飞翼布局就能轻松实现.不过,还请容我在双飞 ...
- Django 认证系统 cookie & session & auth模块
概念 cookie不属于http协议范围,由于http协议无法保持状态,但实际情况,我们却又需要“保持状态”,因此cookie就是在这样一个场景下诞生. cookie的工作原理是:由服务器产生内容,浏 ...