美文网首页
Spark集群搭建过程中遇到的一些问题

Spark集群搭建过程中遇到的一些问题

作者: 蠟筆小噺没有烦恼 | 来源:发表于2017-04-02 18:26 被阅读545次

    1、
    在搭建好hadoop,spark之后,提交第一次任务的时候就出现了错误。
    在任务提交并创建之后,从8088看,任务一直处于ACCEPTED状态,而在shell中一直重复如下信息:
    17/04/03 16:43:24 INFO yarn.Client: Application report for application_1491208536792_0001 (state: ACCEPTED)
    直到
    17/04/03 16:43:25 INFO yarn.Client: Application report for application_1491208536792_0001 (state: FAILED)
    出现之后,整个任务完全失败。查询log,发现有如下错误信息:
    Application application_1491211547264_0001 failed 2 times due to AM Container for appattempt_1491211547264_0001_000002 exited with exitCode: -103 due to: Container [pid=3122,containerID=container_1491211547264_0001_02_000001] is running beyond virtual memory limits. Current usage: 84.7 MB of 1 GB physical memory used; 2.2 GB of 2.1 GB virtual memory used. Killing container.
    Dump of the process-tree for container_1491211547264_0001_02_000001 :
    |- PID PPID PGRPID SESSID CMD_NAME USER_MODE_TIME(MILLIS) SYSTEM_TIME(MILLIS) VMEM_USAGE(BYTES) RSSMEM_USAGE(PAGES) FULL_CMD_LINE 。
    上网看了一下,原来是对于yarn的内存分配问题。
    所以在yarn-site.xml中增加了如下配置代码
    <property>
    <name>yarn.nodemanager.resource.memory-mb</name>
    <value>100000</value>
    </property>
    <property>
    <name>yarn.scheduler.maximum-allocation-mb</name>
    <value>10000</value>
    </property>
    <property>
    <name>yarn.scheduler.minimum-allocation-mb</name>
    <value>3000</value>
    </property>
    <property>
    <name>mapreduce.reduce.memory.mb</name>
    <value>2000</value>
    </property>
    但是结果并不如人意,没有解决我的问题。
    于是我加上如下代码,修改检查虚拟内存的属性为false
    <property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
    </property>
    没错,修改完这些之后,问题就不再出现了,随后便出现了其他问题
    2、
    我们知道,spark有三种运行方式,分别是local、standalone以及yarn模式,目前来说,这三种都会出现不同的问题,其中local和stantalone模式会出现:
    node1/192.168.10.100 to node1:8020 failed on connection exception的异常。
    修改了很多,无济于事。
    而yarn模式出现了exitCode15的退出码错误,任务一直处于Accepted,最后突然成功,然而没有任何结果,同时会报出一个错,exitCode15错误码。
    无法解决,只能看看我的配置是不是有没有问题:
    这时候我把spark-env.sh中的

    export SPARK_YARN_USER_ENV="CLASSPATH=/usr/hadoop/hadoop2.5"

    export SPARK_MASTER_IP=192.168.10.100

    这两句进行了注释,便没有了exidCode15错误。
    3、
    随后,运行任务到最后一步,web端已经显示成功,但是还是冒出了如下错误
    Exception in thread "main" java.lang.IllegalArgumentException: Log directory hdfs://node1:8020/sparkHistoryLogs does not exist.
    仔细一想,之前在创建fs目录的时候,由于教程中的hdfs端口是9000,而我的是8020,所以,那次创建目录虽然没有报错,但是却是失败的。重新创建:
    hadoop fs -mkdir hdfs://node1:8020/sparkHistoryLogs
    之后再运行测试任务,便没有了错误,仔细一想,还是自己对于集群的各个参数没有深入的了解导致的。
    4、
    目前来说,spark on Yarn运行任务是没有问题了,但是其他两种模式遇到的connection失败问题还是迟迟没有解决,暂时先略过,待对spark集群理解深入一些之后再来解决这个问题。

    相关文章

      网友评论

          本文标题:Spark集群搭建过程中遇到的一些问题

          本文链接:https://www.haomeiwen.com/subject/zbvgottx.html