0

我跟着https://sqoop.apache.org/docs/1.99.4/RESTAPI.html尝试了 sqoop2。但我收到错误“线程“主”org.apache.sqoop.common.SqoopException 中的异常:MODEL_011:输入不存在 - 输入名称:linkConfig.connectionString”行 linkConfig.getStringInput("linkConfig.connectionString").setValue ("jdbc:mysql://localhost/my"); 我从终端测试了 sqoop2、mysql、数据库等,并且工作正常。请帮忙。提前致谢。

这是我正在尝试的代码

import org.apache.sqoop.client.SqoopClient;
import org.apache.sqoop.model.MLink;
import org.apache.sqoop.model.MLinkConfig;
import org.apache.sqoop.validation.Status;
public class Sqoop2 {
     public static void main(String[] args) {
         //Initialization SqoopClient
         String url = "http://<myip>:12000/sqoop/";
         SqoopClient client = new SqoopClient(url);

        // create a placeholder for link
         long connectorId = 1;
         MLink link = client.createLink(connectorId);
         link.setName("Vampire");
         link.setCreationUser("Buffy");
         MLinkConfig linkConfig = link.getConnectorLinkConfig();
         // fill in the link config values
         linkConfig.getStringInput("linkConfig.connectionString").setValue("jdbc:mysql://<myip>/<dbname>");
         linkConfig.getStringInput("linkConfig.jdbcDriver").setValue("com.mysql.jdbc.Driver");
         linkConfig.getStringInput("linkConfig.username").setValue("root");
         linkConfig.getStringInput("linkConfig.password").setValue("root");
         // save the link object that was filled
         Status status = client.saveLink(link);
         if(status.canProceed()) {
          System.out.println("Created Link with Link Id : " + link.getPersistenceId());
         } else {
          System.out.println("Something went wrong creating the link");
         }   
       }
    }
4

2 回答 2

1

我遇到了同样的问题。根据文档 generic-jdbc connector id =1 和 hdfs-connector id =2。但是在我们升级到 5.3.2 之后,id 被交换了。不要对连接器 ID 进行硬编码(如文档中所述)。使用 client.getConnectors(); 或显示连接器 --all 方法来查找现有连接器并获取您需要的连接器 ID。当前记录了此https://issues.apache.org/jira/browse/SQOOP-1965的问题。

于 2015-04-08T16:09:10.660 回答
0

看起来连接器 1 已经存在。您可以尝试使用另一个 id 吗?

于 2015-01-01T09:34:33.093 回答