1. 程式人生 > >Spark jar包找不到解決方法

Spark jar包找不到解決方法

今天在使用Spark中DataFrame往Mysql中插入RDD,但是一直報出以下的異常次資訊:

[[email protected] ~]$  bin/spark-submit --master local[2] 
	--jars lib/mysql-connector-java-5.1.35.jar 
	--class  spark.sparkToJDBC ./spark-test_2.10-1.0.jar

spark assembly has been built with Hive, including Datanucleus jars on classpath
Exception in thread "main" java.sql.SQLException: No suitable driver found for 
jdbc:mysql://www.iteblog.com:3306/spark?user=root&password=123&useUnicode=
true&characterEncoding=utf8&autoReconnect=true
	at java.sql.DriverManager.getConnection(DriverManager.java:602)
	at java.sql.DriverManager.getConnection(DriverManager.java:207)
	at org.apache.spark.sql.DataFrame.createJDBCTable(DataFrame.scala:1189)
	at spark.<span class="wp_keywordlink_affiliate"><a href="http://www.iteblog.com/archives/tag/spark" title="" target="_blank" data-original-title="View all posts in Spark">Spark</a></span>ToJDBC$.toMysqlFromJavaBean(SparkToJDBC.scala:20)
	at spark.SparkToJDBC$.main(SparkToJDBC.scala:47)
	at spark.SparkToJDBC.main(SparkToJDBC.scala)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$
$runMain(SparkSubmit.scala:569)
	at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:166)
	at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:189)
	at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:110)
	at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)

感覺很奇怪,我在啟動作業的時候加了Mysql驅動啊在,怎麼會出現這種異常呢??經過查詢,發現在–jars引數裡面加入Mysql是沒有用的。通過查詢,發現提交的作業可以通過加入--driver-class-path引數來設定driver的classpath,試了一下果然沒有出現錯誤!
[[email protected] ~]$  bin/spark-submit --master local[2] 
	--driver-class-path lib/mysql-connector-java-5.1.35.jar 
	--class  spark.SparkToJDBC ./spark-test_2.10-1.0.jar
其實,我們還可以在spark安裝包的conf/spark-env.sh通過配置SPARK_CLASSPATH來設定driver的環境變數,如下:
export SPARK_CLASSPATH=$SPARK_CLASSPATH:/iteblog/com/mysql-connector-java-5.1.35.jar

這樣也可以解決上面出現的異常。但是,我們不能同時在conf/spark-env.sh裡面配置SPARK_CLASSPATH和提交作業加上–driver-class-path引數,否則會出現以下異常:
[[email protected] ~]$  bin/spark-submit --master local[2] 
	--driver-class-path lib/mysql-connector-java-5.1.35.jar 
	--class  spark.SparkToJDBC ./spark-test_2.10-1.0.jar

Spark assembly has been built with Hive, including Datanucleus jars on classpath
Exception in thread "main" org.apache.spark.SparkException: 
	Found both spark.driver.extraClassPath and SPARK_CLASSPATH. Use only the former.
	at org.apache.spark.SparkConf$$anonfun$validateSettings$6$$anonfun$apply
$7.apply(SparkConf.scala:339)
	at org.apache.spark.SparkConf$$anonfun$validateSettings$6$$anonfun$apply
$7.apply(SparkConf.scala:337)
	at scala.collection.immutable.List.foreach(List.scala:318)
	at org.apache.spark.SparkConf$$anonfun$validateSettings$6.apply(SparkConf.scala:337)
	at org.apache.spark.SparkConf$$anonfun$validateSettings$6.apply(SparkConf.scala:325)
	at scala.Option.foreach(Option.scala:236)
	at org.apache.spark.SparkConf.validateSettings(SparkConf.scala:325)
	at org.apache.spark.SparkContext.<init>(SparkContext.scala:197)
	at spark.SparkToJDBC$.main(SparkToJDBC.scala:41)
	at spark.SparkToJDBC.main(SparkToJDBC.scala)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$
		deploy$SparkSubmit$$runMain(SparkSubmit.scala:569)
	at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:166)
	at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:189)
	at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:110)
	at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)


http://www.iteblog.com/archives/1300點選開啟連結

相關推薦

Spark jar解決方法

今天在使用Spark中DataFrame往Mysql中插入RDD,但是一直報出以下的異常次資訊: [[email protected] ~]$ bin/spark-submit --master local[2] --jars lib/mysql-conne

執行jar到依賴解決方法

將Java工程打成jar包,但第三方jar包並沒有包含在包中,當在命令列中執行jar包時,出現類找不到的異常, 解決辦法1: 將第三方jar包放到JRE的擴充套件類資料夾中(%JAVA_HOME%/jre/lib/ext), 解決方法2: 修改jar包的MANIFES

直接執行jar到主類和沒有主清單屬性的解決

springboot專案module 通過maven打包編譯後,生成jar包;再通過命令 java -jar eureka-server/target/eureka-server-0.0.1-SNAPSHOT.jar 啟動後提示: jar包找不到主類和沒有主清單屬性。  

java.lang.ClassNotFoundException(MyEclipse引入jar到類的解決

遇到的問題:     今天在MyEclispe的Java Web工程中引入Base64的jar包,在執行時報找不到類的錯誤,但是jar包已經加到Libraries中了。錯誤截圖如下:     第一次

maven assembly打出的獨立可執行jar到xml schema解決,使用shade外掛

http://blog.csdn.net/bluishglc/article/details/6085209 支援原創!     <plugin><groupId>org.apache.maven.plugins</groupId>&l

Jar沖突解決方法

maven依賴 pan inf dex 添加 war 們的 except 包括 前言 對於Jar包沖突問題,我們開發人員經常都會有碰到,當我們使用一些jar包中的類、方法等,或者有時遇到一些日誌系統的問題(參考另一篇文章Jar包沖突導致的日誌問題),我們會遇到ClassN

Maven工程jar沖突解決方法

ons 好用 ring 一個 運行 spa work lips depend   maven確實是一個好用的項目管理工具,相比較傳統的JAVAIDE,不需要你提前下載依賴包,只需要在配置文件中添加即可自動下載。但由於maven的傳遞性依賴特性,maven在下載某一個依賴包時

springboot打包jar到jsp檔案

打包成jar的時候會找不到jsp檔案 只需要 在pom.xml檔案新增 <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId>

IDEA maven專案部署到tomcat的jar到問題

IDEA在 maven專案中新增web模組 首先選擇file目錄下的Project Structure,然後在Modules中在自己的專案下新增相應模組,這裡是新增web模組  之後就是配置tomcat,這裡注意要生成artifacts,直接點fix就可以生成 to

springboot打包jar到jsp檔案以及在linux永久執行java -jar以及springboot的多環境配置

因為springboot打包jar包執行jsp和在linux永久執行java -jar以及springboot的多環境配置 都是springboot的 就放在一起說了   先說 打包jar 不能找到jsp問題: 打包成jar的時候會找不到jsp檔案  只需要 在pom.xm

Maven有時下載中斷,導致JAR存在問題解決方法

問題描述: 工程依賴包由Maven管理下載,預設maven的遠端repository server下載有時中斷,導致Maven下載的jar包存在問題。 解決方法: 1、從新配置maven的settings.xml,增加國內mirror <mirrors> 

springboot整合webservice部署jar到主清單屬性

今天工作的時候遇到一個問題,折騰了三個小時,以前寫好的springboot整合webservice專案,現在要打jar包放到生產上,我以前用的方法一直是eclipse的匯出成jar包方式這樣子匯出的專案總是報錯,三種方式我都試過,都是先提示這個錯誤,在網上搜了一下,很多人說不

spring boot maven 打包提示 “程式到” 解決方法

再用springboot maven打包的時候會碰到 找不到“程式包找不到” 的問題。解決放下如下 修改父pom.xml配置檔案。 由原來的 <build> <plugins> <plugin>

idea中的pom文件中的jar下載了,手動下載jar方法

htm .com 添加 下載 post idea AR pom .html 問題描述: 在pom文件中添加依賴的時候,程序怎麽著都是下載不了,而且實驗了各種方式: https://www.cnblogs.com/a8457013/p/7811519.html(可以參考,但

gradle設定代理(解決Android編譯時下載的jar下載了的問題)

    在使用react-native時,有時某些元件會需要下載第三方的jar包,由於國內原因總是下載不了,可以配置gradle設定代理 我用我自己伺服器的代理,需要配置android/gradle.properties檔案, 在檔案中增加如下程式碼: systemPro

java動態載入指定的類或者jar反射呼叫其方法-涉及其他jar中的類就報ClassNotFound問題分析及解決思路

       在這篇博文中java動態載入指定的類或者jar包反射呼叫其方法,介紹動態載入指定的類,當時我是拿URLClassLoader介紹的,當然可以自定義一個ClassLoader重寫對應的方

解決springboot專案打war docker到resource 下的靜態資源問題

前一段時間遇到一個問題,是關於讀取專案中檔案資源的問題。我是一個maven 工程 我把一張照片放到resource 下面,然後在本地讀取的時候 可以讀取到,但是一旦打成WAR 包以後就總是包找不到檔案資源錯誤。 我的war 包是springboot 打的wa

IDEA引入和類後仍提示方法的問題

方法一:在專案名稱上右鍵,選擇MAVEN,然後點選reimport即可(如下圖)。但我的還是報錯並未解決。 方法二:左上角點選file,選擇Invalidate Caches/Restart,然後點選左邊第一個按鍵即可。我的專案中此問題得以解決。 3、

spark on yarn執行產生缺jar錯誤及解決辦法

1、本地執行出錯及解決辦法 當執行如下命令時: ./bin/spark-submit \ --class org.apache.spark.examples.mllib.JavaALS \ --master local[*] \ /opt/cloudera/p

Spark提交作業jar

楔子 Spark 提交作業找不到jar ERROR ClientEndpoint:70 - Exception from cluster was: java.nio.file.NoSuchFileException 出錯提示 [[email prote