oracle - Sqoop 导出 Oracle : java.lang.OutOfMemoryError: Java heap space
问题描述
我在将 sqoop 导出到具有 150 列和大约 120 列作为 varchar2(4000) 数据类型的 oracle 表时遇到问题。以前它没有默认为 4000 数据长度,并且 sqoop 导出工作正常。当它在表级别默认为数据长度 4000 时,相同的 sqoop 导出失败并出现以下错误。我尝试过使用 mapr map & reduce of memory & opts 不同的值,但没有运气。
在 sqoop 开始时从 oracle 表中获取元数据时,Sqoop 导出失败。任何帮助表示赞赏。
谢谢,
日志:
21/03/15 05:24:08 INFO tool.CodeGenTool: Beginning code generation
21/03/15 05:24:08 DEBUG manager.OracleManager: Using column names query: SELECT t.* FROM schema.tableTest t WHERE 1=0
21/03/15 05:24:08 DEBUG manager.SqlManager: Execute getColumnInfoRawQuery : SELECT t.* FROM schema.tableTest t WHERE 1=0
21/03/15 05:24:08 DEBUG manager.OracleManager$ConnCache: Got cached connection for mockedURL
21/03/15 05:24:08 INFO manager.OracleManager: Time zone has been set to GMT
21/03/15 05:24:08 DEBUG manager.SqlManager: Using fetchSize for next query: 1000
21/03/15 05:24:08 INFO manager.SqlManager: Executing SQL statement: SELECT t.* FROM schema.tableTest t WHERE 1=0
21/03/15 05:24:08 DEBUG manager.OracleManager$ConnCache: Caching released connection for mockedURL
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.lang.reflect.Array.newArray(Native Method)
at java.lang.reflect.Array.newInstance(Array.java:75)
at oracle.jdbc.driver.BufferCache.get(BufferCache.java:226)
at oracle.jdbc.driver.PhysicalConnection.getCharBuffer(PhysicalConnection.java:7672)
at oracle.jdbc.driver.OracleStatement.prepareAccessors(OracleStatement.java:1005)
at oracle.jdbc.driver.T4CTTIdcb.receiveCommon(T4CTTIdcb.java:277)
at oracle.jdbc.driver.T4CTTIdcb.receive(T4CTTIdcb.java:146)
at oracle.jdbc.driver.T4C8Oall.readDCB(T4C8Oall.java:844)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:358)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:192)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:207)
at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:884)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1167)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1289)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3584)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3628)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1493)
at org.apache.sqoop.manager.SqlManager.execute(SqlManager.java:794)
at org.apache.sqoop.manager.SqlManager.execute(SqlManager.java:803)
at org.apache.sqoop.manager.SqlManager.getColumnInfoForRawQuery(SqlManager.java:299)
at org.apache.sqoop.manager.SqlManager.getColumnTypesForRawQuery(SqlManager.java:270)
at org.apache.sqoop.manager.SqlManager.getColumnTypes(SqlManager.java:256)
at org.apache.sqoop.manager.ConnManager.getColumnTypes(ConnManager.java:332)
at org.apache.sqoop.orm.ClassWriter.getColumnTypes(ClassWriter.java:1872)
at org.apache.sqoop.orm.ClassWriter.generate(ClassWriter.java:1671)
at org.apache.sqoop.tool.CodeGenTool.generateORM(CodeGenTool.java:106)
at org.apache.sqoop.tool.ExportTool.exportTable(ExportTool.java:63)
at org.apache.sqoop.tool.ExportTool.run(ExportTool.java:99)
at org.apache.sqoop.Sqoop.run(Sqoop.java:147)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:183)
解决方案
推荐阅读
- python - 如何在熊猫中将浮点数转换为int?
- angular - TypeError:无法读取单元测试中未定义的属性“alertType”
- swift - 快速反转数据结构的内容
- java - spring boot 无法识别应用程序属性
- php - 基于反射解析表达式
- java - 在游戏控制台 kotlin.UninitializedPropertyAccessException 中出现此错误
- ios - 我应该选择 URLSessionDataTask 还是 URLSessionDownloadTask 来获取图像
- reactjs - 如何建模 React 模态工作流
- python - scikit-learn 和 tensorflow 有什么区别?可以一起使用吗?
- javascript - 如果存在 cookie,则无法设置条件