ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
当前位置:首页 >> 数据库 >> 其他数据库 >> 利用sqoop16对mysql和hive进行同步的问题

利用sqoop16对mysql和hive进行同步的问题

来源:网络整理     时间:2016-04-27     关键词:Mysql,hive

本篇文章主要介绍了"利用sqoop16对mysql和hive进行同步的问题",主要涉及到Mysql,hive方面的内容,对于其他数据库感兴趣的同学可以参考一下: 从mysql数据库中导入到hive中可以执行:sqoop import --connect jdbc:mysql://localhost/gamewave --...

从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,比如我们公司是用的阿里的云DB,就只有把-m 设置为1,不使用并行导入了.

以上就介绍了利用sqoop16对mysql和hive进行同步的问题,包括了Mysql,hive方面的内容,希望对其他数据库有兴趣的朋友有所帮助。

本文网址链接:http://www.codes51.com/article/detail_852640.html

相关图片

相关文章