SpingBootプロジェクトの下でSparkはIDEAでローカルテストを行います

2916 ワード

背景


開発シーンでは、ローカルでデバッグし、サーバにパッケージ化して実行するに違いありません.頻繁にテストをパッケージ化すると、効率的ではなく、実際には次のシーンにアクセスできません.ローカルでspark localモードを使用してhiveにアクセスする例を示します.

関連コード構成


1、コード
    val session = SparkSession.builder().master("local").enableHiveSupport().getOrCreate()
    val conf=new Configuration
    conf.addResource("hebing/core-site.xml")
    conf.addResource("hebing/hdfs-site.xml")
    conf.addResource("hebing/hive-site.xml")
    session.sparkContext.hadoopConfiguration.addResource(conf);
    val frame = session.sql("select * from hive.vbapf20086ecdfc3402f9660ec553ea8ddb2 limit 10")

ここにcore-siteを追加する必要があります.xml hdfs-site.xml hive-site.xml、これらは実は公式ドキュメントでも説明されていますが、もちろん、対応するhostsの構成も完備しなければなりません.その後、
2、maven配置
       
            org.apache.spark
            spark-sql_2.11
            2.4.1
        

        
            org.apache.spark
            spark-hive_2.11
            2.4.0
        

        
            org.codehaus.janino
            janino
            3.0.8
        

問題


1、IDEAを実行する時にログが多い
私がクリックして実行する时、中のログがとても多いことを発见して、INFOとdebugのログがあって、それから関连する结果を検索してたくさんのログの中でとても不便で、ネット上で多くの答えを検索して、log 4 jにほかならない.propertiesはresourceの下に配置され、concoleに打つログレベルが向上します.しかし、役に立たない.実はspringBootのデフォルトのログプラグインがlogbackなので、ここではlog 4 jは役に立たないので、
        
            org.springframework.boot
            spring-boot-starter
            
                
                    org.springframework.boot
                    spring-boot-starter-logging
                
            
        

このloggingを除外してsparkのデフォルトのlog 4 j.propertiesはresourcesの下にコピーし、log 4 j.rootCategory=INFO、consoleをlog 4 jに変更する.rootCategory=ERROR,consoleでOK
参考資料:http://blog.didispace.com/springbootlog4j/
2、java.lang.NoClassDefFoundError: org/apache/spark/sql/SparkSession
このエラーは依存するspark-sqlの依存によるものである

	org.apache.spark
	spark-sql_2.11
	2.4.1
	provided


provided削除は、実行時に依存が無効であるため(mavenに関する知識)
3、Caused by: java.lang.ClassNotFoundException:
org.codehaus.janino.InternalCompilerException
依存関係がありません
        
            org.codehaus.janino
            janino
            3.0.8