Spark开发过程当中遇到的坑有哪些

本篇内容介绍了“Spark开发过程当中遇到的坑有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

先说背景:

3台服务器,hadoop, hbase, spark都是集群环境,都建在这3台服务器上。

计划用driver的方式,远程执行spark application。

坑1:开发用的是ubuntu虚拟机,自动生成的ip地址,跟服务器集群不在一个网段上,导致服务器集群无法正常和driver通信,之后把虚拟机网络设置为桥接模式,done!

坑2:关于setJars,大部分的资料包括apache官方的资料,都是基于spark submit或者是shell方式给出的例子,根本没提到setJars什么事,导致出现各种各样的莫名其妙的问题,后来才知道需要用setJars把driver的jar包给到spark cluster,done!

坑3:还是关于setJars,由于需要访问hbase,所以引入了hbase的jar包,最初以为把jar包放到lib当中,包含在driver的jar当中即可,后来发现不行,需要单独的把以来的jar包给过去,done!(能不能在spark的环境变量当中,设置一下依赖的外部jar包?尝试了SPARK_CLASSPATH,发现不行,不知道有什么其他的办法。)

坑4:额~~~,还是关于setJars,使用saveAsHadoopDataset直接把RDD存到hbase当中,代码看我之前的帖子,启动输出一些日志之后,日志就不动了!各种找问题,到处发帖子求助!没人搭理!最后自己把spark日志等级调到debug,发现了sockettimeoutexception,又发现是连接的10620端口,怀疑端口占用,就把region server port改成了别的,错误依旧。无奈去吃饭,吃完饭回来,spark经过n次的重试终于放弃,然后给出了一个错误日志,居然是缺少jar包。加了个metrics-core-2.2.0.jar,done!

“Spark开发过程当中遇到的坑有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!