親愛的社區!在我描述的問題,這裏的軟件中使用的簡短描述(其中後兩個在三個節點的小集羣中運行,他們每個人的使用的Ubuntu 14.04):在Ubuntu上以紗線客戶端模式在Spark上載入Zeppelin的外部依賴關係14.04
- 齊柏林0.6。 1
- 火花2.0.0與Scala的2.11.8
- 的Hadoop 2.7.3
的情況如下:爲了使用TwitterUtils類寫成齊柏林音符星火流應用程序,我需要包括從Maven的org.apache.spark.streaming.twitter._(org.apache.bahir:spark-streaming-twitter_2.11:2.0.0-preview)。我瞭解到,到目前爲止是,有一對夫婦的選擇,使外部依賴提供飛艇:
- 導出SPARK_SUBMIT_OPTIONS在的conf/zeppelin-env.sh變量,並設置--jars (在我的情況下,--jars hdfs:// admdsmaster:54310/global/jars/spark-streaming-twitter_2.11-2.0.0-preview.jar(指向本地文件系統的路徑也經過測試))。
- 出口SPARK_SUBMIT_OPTIONS並設置--packages(在我的情況--packages org.apache.bahir:火花流-twitter_2.11:2.0.0預覽)。
- 設置spark.jars或spark.jars.packages在CONF /火花defaults.conf與上述的值。
- 使用%DEP解釋在飛艇本身就像這樣:z.load( 「org.apache.bahir:火花流-twitter_2.11:2.0.0預覽」)。儘管這已被棄用。
- 在Zeppelin說明中使用sc.addJar()手動添加.jar文件。
嘗試過所有上述的後 - 和幾乎任意的組合和它們的變體 - 的問題是,我仍然不能從齊柏林音符內導入TwitterUtils類:
Class import failing in Zeppelin note.
從圖片中還可以看到sc.listJars()的輸出結果,它顯示實際包含.jar文件。儘管如此,課程導入仍然失敗。
我的第一個想法是,問題的發生是因爲Spark運行在yarn-client模式下,所以我在yarn-client模式下啓動了Spark shell,並試圖從那裏導入類 - 它工作正常:
Class import working from Spark shell.
爲了找出發生了什麼事情,我搜索飛艇,Spark和紗線的日誌文件,但找不到任何錯誤消息指出我的問題的原因。
長話短說:雖然jar文件被列入齊柏林飛艇(由sc.listJars()作爲證明),雖然從火花殼紗客戶端模式的類進口的作品,我只是從我的齊柏林鈔票中得不到進口。
長故事更短:我真的很感謝你的想法如何解決這個問題!
在此先感謝您的時間和精力。
P.S .:很抱歉,我無法直接將圖像上傳到這個帖子 - 它說我至少需要10個聲望點,這是我沒有的,因爲這是我第一次在這裏發佈。
您是否嘗試從解釋器選項卡添加它們? – eliasah