【问题标题】:Container is running beyond virtual memory limits. . Killing container容器运行超出虚拟内存限制。 .杀死容器
【发布时间】:2018-10-13 07:29:10
【问题描述】:

当前设置

mysql connector version-mysql-connector-java-5.1.13
sqoop version-sqoop-1.4.6
hadoop version-hadoop-2.7.3
java version- Jdk-8u171-linux-x64/jdk1.8.0_171(oracle JDK)
OS-Ubundu

注意:也试过 openjdk ,这个版本也存在同样的问题 Sqoop 命令: bin/sqoop import -connect jdbc:mysql://localhost:3306/testDb -username root -password root --table student --target-dir /user/hadoop/student -m 1 --driver com.mysql .jdbc.Driver

【问题讨论】:

  • 您要导入的表有多大?说您正在使用超过 4GB 的内存...您的机器上有多少内存?
  • 表只包含3条记录,我的机器内存是4GB
  • 好的,所以你在一个节点上...... Datanode、NodeManager 和 ResourceManagers 默认每个占用 1 GB 内存,没有为操作系统和其他任何东西留下太多空间......你需要将 yarn-site.xml 内存设置至少调低到每个容器和应用程序主服务器约 256MB

标签: hadoop hadoop-yarn sqoop


【解决方案1】:

尝试增加映射器的并行度(在您的命令中是-m 1 参数)。将其设置为更高的值,这样每个映射器将处理更少的数据并需要更少的内存。
如果映射器的数量>1,则还需要--split-by

请参阅有关拆分列here 的建议。

均匀分布的整数列更可取。

【讨论】:

    猜你喜欢
    • 2017-09-12
    • 2016-08-24
    • 2017-04-04
    • 1970-01-01
    • 2018-11-01
    • 2018-03-30
    • 2017-11-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多