Spark 開發過程中遇到的若干大坑(持續更新中......)

先說背景:shell

3臺服務器,hadoop, hbase, spark都是集羣環境,都建在這3臺服務器上。apache

計劃用driver的方式,遠程執行spark application。ubuntu

坑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,發現不行,不知道有什麼其餘的辦法。)app

坑4:額~~~,仍是關於setJars,使用saveAsHadoopDataset直接把RDD存到hbase當中,代碼看我以前的帖子,啓動輸出一些日誌以後,日誌就不動了!各類找問題,處處發帖子求助!沒人搭理!最後本身把spark日誌等級調到debug,發現了sockettimeoutexception,又發現是鏈接的10620端口,懷疑端口占用,就把region server port改爲了別的,錯誤依舊。無奈去吃飯,吃完飯回來,spark通過n次的重試終於放棄,而後給出了一個錯誤日誌,竟然是缺乏jar包。加了個metrics-core-2.2.0.jar,done!socket

相關文章
相關標籤/搜索