我跟着https://sqoop.apache.org/docs/1.99.4/restapi.html 因为尝试了sqoop2。但是iam在linkconfig.getstringinput(“linkconfig.connectionstring”)行上获取错误“exception in thread”main“org.apache.sqoop.common.sqoopexception:model\u 011:输入不存在-输入名称: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");
}
}
}
2条答案
按热度按时间vbopmzt11#
看起来连接器1已经存在。你能换个身份证吗?
wfsdck302#
我也面临同样的问题。根据文档,通用jdbc连接器id=1和hdfs连接器id=2。但是在我们升级到5.3.2之后,id被交换了。不要硬编码连接器id(如文档中所述)。使用client.getconnectors();或者show connector--all方法查找现有连接器并获取所需的连接器id。当前为此记录了一个问题https://issues.apache.org/jira/browse/sqoop-1965.