我们正在尝试将数据从mysql打包到hdfs。当我们运行代码时,数据存储在本地文件系统中。我们希望数据是hdfs格式的。有人能给我们提供以下代码吗?
SqoopOptions options = new SqoopOptions();
options.setConnectString("jdbc:mysql:hostname/db_name");
options.setUsername("user");
options.setPassword("pass");
options.setTableName("table");
options.setDirectMode(true);
options.setNumMappers(4);
options.setDriverClassName("com.mysql.jdbc.Driver");
options.setSqlQuery("select * from table");
options.setWhereClause("value > 15.0");
options.setTargetDir("output");
options.doHiveImport();
System.out.println();
int ret=new ImportTool().run(options);
System.out.println(ret);
2条答案
按热度按时间2vuwiymt1#
这里的问题是
options.setTargetDir("output");
您没有指定合格的hdfs路径。如果您使用有效的hdfs路径更改“output”,那么您应该能够从任何地方运行代码,并且仍然得到正确的结果。ffx8fchx2#
我在hdfs中运行了相同的程序并得到了输出:)