spark作业常见异常

1、java.lang.IllegalArgumentException: System memory 462225408 must be at least 471859200. Please increase heap size using the --driver-memory option or spark.driver.memory in Spark configuration.
解决:可能跟driver.memory无关,
先设置应用程序的 VM options

idea的设置路径在:Run -Edit Configurations-Application选择对应的程序,设置VM options,如下:

-Xms256m -Xmx1024m

2、cannot assign instance of scala.collection.immutable.List S e r i a l i z a t i o n P r o x y t o f i e l d o r g . a p a c h e . s p a r k . r d d . R D D . o r g SerializationProxy to field org.apache.spark.rdd.RDD.org SerializationProxytofieldorg.apache.spark.rdd.RDD.orgapache s p a r k spark sparkrdd R D D RDD RDD$dependencies_ of type scala.collection.Seq in instance of org.apache.spark.rdd.MapPartitionsRDD :
问题很可能在使用spart-submit提交程序时,环境不一致导致的
比如

 import org.apache.spark.{SparkConf, SparkContext}
    object WordCount {
      def main(args: Array[String]): Unit = {
        val conf = new SparkConf().setAppName("wordcount").setMaster("spark://master:7077")
        val sc = new SparkContext(conf)
        val lines = sc.textFile("hdfs://node1:8020/user/spark/data/a.scala")
        lines.flatMap(_.split(" ")).map((_, 1)).reduceByKey(_+_).foreach(println _)
        sc.stop()
  }
}

在idea中运行时则会报以上异常
应将setMaster设置为local[2] 本地模式运行
用URL则需在集群运行
另一种更复杂的情况:https://www.cnblogs.com/benfly/p/9072957.html
3、WARN NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java
网上办法:
原因是hadoop-2.6.0.tar.gz安装包是在32位机器上编译的,64位的机器加载本地库.so文件时出错,不影响使用。
解决:
1)重新编译源码后将新的lib/native替换到集群中原来的lib/native
这里替换完毕,可是还是出现。
2)修改hadoop-env.sh ,增加
export HADOOP_OPTS="-Djava.library.path= H A D O O P P R E F I X / l i b : HADOOP_PREFIX/lib: HADOOPPREFIX/lib:HADOOP_PREFIX/lib/native"
上面解决办法比较正统的,当然还有其他办法
修改一下core-site.xml这个配置
在这里插入图片描述
3)在.bashrc中加入如下配置:
vim ~/.bashrc

export HADOOP_HOME=/home/hadoop/hadoop-2.6.4
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"

4)直接在log4j日志中去除告警信息。在//usr/local/hadoop-2.5.2/etc/hadoop/log4j.properties文件中添加

log4j.logger.org.apache.hadoop.util.NativeCodeLoader=ERROR

以上方法经测试均无效,正在寻求其它方案…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值