2017-04-14 7 views
2

sparkアプリケーションで読み込んだsparkサンプルのポストデータベースのデータベースを実行しようとしています。スパークコマンドライン引数をspark-submit --packages org.postgresql:postgresql:9.3-1101.jdbc41.jarとして与えましたが、私はまだです例外が見つからないクラスを取得しています。あなたは私の問題を解決するのを助けてくれますか?spark-submit - パッケージが私のクラスタで動作していない理由は何ですか?

+0

@himanshuIIITian bro、私が助けることができるかどうか教えてください –

答えて

1

コードスニペットをいくつか与えて、jarをビルドしてクラスタ上で実行する方法の手順を説明すれば、もっと役立ちます。また、実行モード(クライアント/クラスタ)は何ですか? classNotFoundExceptionの考えられる理由は、spark-submit呼び出しの作成方法に固有の場合があるためです。

次のコードは私のために働いた。あなたはそれを試すことができます。 EclipseのScalaのMavenプロジェクト内のScalaのオブジェクトファイルの下に作成

: コードは次のとおりです。その後

import org.apache.spark.SparkContext 
import org.apache.spark.SparkContext._ 
import org.apache.spark.sql._ 
import org.apache.spark.sql.SQLContext 
import org.apache.spark.SparkConf 

object SparkPGSQLConnect { 

case class Projects(ID:Int, Name:String, Address:String) 

def main(args:Array[String]) { 
     val conf = new SparkConf().setMaster(“local[*]”).setAppName("PostGreSQLConnection") 
     //val conf = new SparkConf().setMaster("yarn-cluster").setAppName("PostGreSQLConnection") 
    val sc = new SparkContext(conf) 
    val sqlContext= new org.apache.spark.sql.SQLContext(sc) 

    import sqlContext.implicits._ 

    val jdbcDF = sqlContext.load("jdbc", Map(
     "url" -> "jdbc:postgresql:tempdb?user=******&password=******”, 
     "dbtable" -> “employee”)) 

    jdbcDF.show(false) 
    } 
} 

、私はコードが正常に動作することを確認するために日食最初にローカルコードの上にテストしました。 次に、jarをビルドするためにmavenを使用しました。最後に

とは、以下の走ったMACターミナルからのコマンド:ローカルモードで : ./spark-submit --class SparkPGSQLConnect --masterローカル[*] --driverクラスパスにpostgresql-42.0.0.jre6。 jar〜/ SPGTestClient.jar

クラスタモードの場合: ./spark-submit --class SparkPGSQLConnect - マスタースレッド - デプロイモードクラスタ--conf spark.executor.memory = 200MB - conf spark。 = 2「spark.driver.extraClassPath =のpostgresql-42.0.0.jre6.jar」--conf〜/ SPGTestCluster.jar

executor.coresは、私が明示的に必要なjarファイルのいくつかは以下のとおりです のpostgresql-42.0.0 .jre6。 jar(これは私が必要としていたものです:スレッド "main"の例外java.sql.SQLException:私のmac端末からspark-submitをしようとすると、適切なドライバがありません)。

関連する問題