我正在尝试使用java代码将数据从mysql导入hive SqoopOptions 班级,但上面写着这个班级( com.cloudera.sqoop.SqoopOptions )已弃用,类sqoopoptions。我谷歌出这个替代品,但没有找到任何东西,有人能告诉我什么是替代品做这件事。我想通过java程序使用sqoop命令。
SqoopOptions
com.cloudera.sqoop.SqoopOptions
byqmnocz1#
当sqoop进入apache时 com.cloudera.sqoop.* 代码已重命名/迁移到 org.apache.sqoop.* . 你要找的班级是 org.apache.sqoop.SqoopOptions 我相信。我强烈建议不要从java程序中使用sqoop。相反,试试sqoop2。我相信你可以导入到hdfs使用风筝连接器在avro或Parquet格式。然后您应该能够将数据加载到配置单元中。
com.cloudera.sqoop.*
org.apache.sqoop.*
org.apache.sqoop.SqoopOptions
uxh89sit2#
一个选项是可以使用sshxcute执行sqoop导入命令下面是您可以使用的代码段
import net.neoremind.sshxcute.core.ConnBean; import net.neoremind.sshxcute.core.Result; import net.neoremind.sshxcute.core.SSHExec; import net.neoremind.sshxcute.task.CustomTask; import net.neoremind.sshxcute.task.impl.ExecCommand; public static void main(String[] args) { ConnBean connBean = new ConnBean("<SYSTEM_IP>", "<USERNAME>","<PASSWORD>"); SSHExec sshExec = SSHExec.getInstance(connBean); StringBuilder sqoopImportCommand = new StringBuilder("sqoop import --connect jdbc:mysql://<IP_ADDRESS>:<PORT>/<DATABASE> ") .append("--username <USERNAME> --password <PASSWORD> --table <TABLE_NAME> --target-dir <HDFS_PATH>"); try { sshExec.connect(); CustomTask sqoopImportTask = new ExecCommand(sqoopImportCommand.toString()); Result crres = sshExec.exec(sqoopImportTask); if(crres.isSuccess){ System.out.println("Data imported successfully"); } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } finally { sshExec.disconnect(); } }
2条答案
按热度按时间byqmnocz1#
当sqoop进入apache时
com.cloudera.sqoop.*
代码已重命名/迁移到org.apache.sqoop.*
. 你要找的班级是org.apache.sqoop.SqoopOptions
我相信。我强烈建议不要从java程序中使用sqoop。相反,试试sqoop2。我相信你可以导入到hdfs使用风筝连接器在avro或Parquet格式。然后您应该能够将数据加载到配置单元中。
uxh89sit2#
一个选项是可以使用sshxcute执行sqoop导入命令
下面是您可以使用的代码段