做好笔记,是对自己的工作的负责。
一、
我一般就是把提交命令写到shell脚本里面去,类似如下:
这几个参数用过的人都看得懂,还是有几点要注意的:
关于executor-memory和cores,不要超出集群和每个单机的极限,8080(默认)界面能看到能使用的memory,cores等。
然后就是一个大小关系:SPARK_EXECUTOR_MEMORY < SPARK_DRIVER_MEMORY<集群中每个nodemanager内存大小
不然运行的时候可能出现这两个问题的:
1、java.lang.OutOfMemoryError: GC overhead limit exceeded
2、java.lang.OutOfMemoryError: java heap space
二、
讲一下提交命令时需要的依赖jar包,这里确实坑,有两种:
--driver-class-path 指定driver需要的依赖包,多个的话用“:”分开
--jars 指定driver和executor需要的依赖包,多个的话用逗号“,”分开
如果出现如下错误,就是上面没设置好:
未完待续。。。