我安装了CDH最新版本,并建立了一个集群,其中包括1个16 GB RAM和200 GB内存的主节点,以及3个8 GB RAM和500 GB内存的DataNode。当我尝试运行Sqoop导入时,在完成83%的映射后,它会给出Java堆空间错误和GC开销限制超出错误。我已经尝试了互联网上的所有解决方案。
以下是我尝试过的事情列表:
-
我尝试增加容器的大小以及地图,并根据这里给出的计算减少内存限制
http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.0.6.0/bk_installing_manually_book/content/rpm-chap1-11.html
-
我尝试将Java堆大小保持在映射的0.8倍,并降低内存限制
我想知道这背后可能的原因和解决方案。
我也遇到过类似的问题,并通过放置合适的MySQL/J连接器5.1.33来解决。
mysql 5.1.17和Sqoop 4.1.5版本存在一些问题。
是否使用参数?dontTrackOpenResources=true&defaultFetchSize=1000&连接字符串中的useCursorFetch=true。它在不改变JVM的情况下工作。
trysqoop-import-Dmapreduce.map.memory.mb=6000-Dmapreduct.map.java.opts=-Xmx1600m-Dmapredition.task.io.sort.mb=4800
我给出了每一百万条记录中有一个映射器。
以上参数需要根据数据进行调整,以获得成功的SQOOP拉动。