我已经安装了CDH最新版本并设置了一个集群,其中包含1个16 GB RAM和200 GB内存的主节点以及3个8 GB RAM和500 GB内存的DataNode。当我尝试运行Sqoop导入时,在完成83%的映射后,它会导致Java堆空间错误和GC开销限制超出错误。我已经尝试了互联网上的所有解决方案。
以下列出了我尝试过的事情:
我尝试增加容器的大小以及地图,并根据此处给出的计算减少内存限制
我尝试将Java堆大小保持为地图的0.8倍并减少内存限制
我想知道这背后可能的原因和解决方案。
答案 0 :(得分:0)
我遇到了类似的问题,并通过放置正确的MySQL / J Connector 5.1.33来解决。
mysql 5.1.17和Sqoop 4.1.5版本存在一些问题。
答案 1 :(得分:0)
在连接字符串中使用参数?dontTrackOpenResources = true&defaultFetchSize = 1000&useCursorFetch = true。它可以在不更改JVM的情况下工作。
答案 2 :(得分:0)
尝试 sqoop import -Dmapreduce.map.memory.mb = 6000 -Dmapreduce.map.java.opts = -Xmx1600m -Dmapreduce.task.io.sort.mb = 4800
我每百万记录中有1个映射器。
需要根据数据调整上述参数,以成功进行SQOOP拉取。