FPGrowth算法实践问题总结

2019-02-28  本文已影响0人  Anan_楠

前言

前段时间开始接触大数据相关分布式框架,对Hadoop和Spark的运行机制有了初步了解。在此基础上,我进行了一次关于FPGrowth关联规则算法的简单实践,此文章是对实践过程中所遇问题的总结归纳。
另:GitHub实践项目地址:https://github.com/NAMZseng/Spark_FPGrowth


Q1

Spark 2.x版本无1.x版本中的lib文件夹

从 2.x版本开始,原有的lib目录下的整个大jar包(lib/spark-assembly-*jar)已经分散到各个小的jar包从,放置在jars/目录下。

Q2

每次提交spark任务到yarn的时,出现 Neither spark.yarn.jars nor spark.yarn.archive is set

  • Reason:
    因为没有设置spark.yarn.jars,所以每次提交任务到yarn,yarn都会把$SPARK_HOME/jars打包成zip文件上传到hdfs对应的用户目录,这样对任务的顺利执行没有太大影响,但因为每次都需要上传,所以会降低任务执行的效率。
  • Solution:
    将spark.yarn.jars上传到hdfs中,并指定其为公共依赖包
    • hdfs dfs -mkdir /root/spark_jars
    • hdfs dfs -put $SPARK_HOME/jars/*  /root/spark_jars/
    • 在spark-default.conf中添加 spark.yarn.jars hdfs:///root/spark_jars/*

Q3

spark-submit 提交任务时,出现NoClassDefFoundError

Q4

提交任务时,出现beyond the 'VIRTUAL' memory limit. 2.2 GB of 2.1 GB virtual memory used

  • Reason:
    为YARN的虚拟内存计算方式导致。若用户程序申请的内存为1GB,YARN根据此值乘以一个比例(默认为2.1)得出申请的虚拟内存的值2.1GB,当YARN计算的用户程序所需虚拟内存值大于计算出来的值时,就会报出以上错误。
  • solution1:在yarn.site.xml修改yarn.nodemanager.vmem-pmem-ratio值(默认为2.1)
  • solution2: 将yarn.nodemanager.vmem-check-enabled的值改为false,即不检查VM的值

Q5

提交任务时,出现Remote RPC client disassociated. Likely due to containers exceeding thresholds, or network issues. Check driver logs for WARN messages

  • minSupport或minConfidence设置太大,spark运行时内存不足。
  • 应根据数据选取合适置信参数
上一篇 下一篇

猜你喜欢

热点阅读