
# 通过Sqoop迁移数据库数据时报错
#### 用户问题
- MRS Sqoop迁移数据库数据报错如下：
  ```
  Communications link failure;
  The driver has not received any packets from the server;
  ```
  
- 源端为DWS数据库时报错如下：
  ```
  got exception running sqoop .java.lang.Runtime.Exception, could not load db driver class.
  ```
  
图1Sqoop迁移数据库数据报错   
![](https://support.huaweicloud.com/trouble-mrs/zh-cn_image_0000001409738372.png "点击放大")
图2源端为DWS时报错   
![](https://support.huaweicloud.com/trouble-mrs/zh-cn_image_0000001803342777.png "点击放大")
#### 问题分析
从上述两个报错分析，可能是驱动问题，服务端未正确加载JDBC驱动，或者是网络原因，由于Sqoop迁移数据过程，MapReduce任务是运行在分析core节点，因此需要保证正常加载驱动类的情况下，保证源端数据库和集群节点的网络正常通信。
#### 处理步骤
1. 检查源端数据库端口对集群节点均放通。 若使用EIP公网通信，那么集群节点均需要绑定公网，尤其是分析节点，必须绑定公网才能保证作业正常运行。
   ![](https://support.huaweicloud.com/trouble-mrs/public_sys-resources/note_3.0-zh-cn.png)
   sqoop实例一般分布在Master节点，但作业真正运行在分析节点，因此创建数据库连接，是和Master节点通信，作业是通过Yarn任务分发到分析节点执行。
   
2. 检查Sqoop实例安装目录下是否放置数据库驱动jar包，并保证jar包路径正确，文件权限及属主属组正确；配置文件正确配置；保证这些后需要重启Sqoop实例后才可以正常加载驱动。
   - MRS 3.X集群驱动路径为：/opt/Bigdata/FusionInsight_Current/1_xx_LoaderServer/install/FusionInsight-Sqoop-1.99.3/server/webapps/loader/WEB-INF/ext-lib/
   
   - MRS3.X之前版本集群驱动路径为：/opt/Bigdata/MRS_XXX/install/FusionInsight-Sqoop-1.99.7/FusionInsight-Sqoop-1.99.7/server/jdbc/
     ![](https://support.huaweicloud.com/trouble-mrs/public_sys-resources/note_3.0-zh-cn.png)
     3.x之前版本需要修改配置文件。
     
    
3. 如果是命令行提交作业，建议指定--driver参数。 如源端是DWS时命令行加：--driver com.xxx.gauss200.jdbc.Driver ，如下图。
   图3源端是dws时driver参数   
   ![](https://support.huaweicloud.com/trouble-mrs/zh-cn_image_0000001460257933.jpg "点击放大")
   其他数据库根据实际情况填写--driver参数。
   
 
