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
以上方法经测试均无效,正在寻求其它方案…