我正在尝试使用来自 cdh5 的 sqoop 传输将大型 postgreSQL 表导入 HDFS。整桌15G左右。
首先,我尝试只使用基本信息导入,通过输入模式和表名,它不起作用。我总是超出 GC 开销限制。我尝试将 Cloudera 管理器配置中 Yarn 和 sqoop 的 JVM 堆大小更改为最大(4G),但仍然没有帮助。
然后,我尝试使用 sqoop 转移 SQL 语句来转移部分表,我在字段中添加 SQL 语句如下: select * from mytable where id>1000000 and id<2000000 ${CONDITIONS} (partition column is id )。该语句失败,实际上任何具有我自己的“where”条件的语句都有错误:“GENERIC_JDBC_CONNECTOR_0002:无法执行 SQL 语句”
我也尝试使用边界查询,我可以使用“select min(id), 1000000 from mutable”,并且它有效,但我尝试使用“select 1000000, 2000000 from mytable”来进一步选择数据,这导致了 sqoop服务器崩溃和关闭。
有人可以帮忙吗?如何添加where条件?或者如何使用边界查询。找了很多地方,没有找到关于如何用sqoop2写SQL语句的好文档。也可以直接在sqoop2上使用吗?
谢谢