異常1
點擊idea–build–build project,或者打開源碼顯示導入異常。但是maven包都是下載好了的
Error:(45, 66) not found: type SparkFlumeProtocol
val transactionTimeout: Int, val backOffInterval: Int) extends SparkFlumeProtocol with Logging {
^
解決方法:
點擊右側 maven project ,右鍵選中相應的project , Generate Sources and update folders
異常2
右鍵—run sparkpi.scala報錯異常如下:
Exception in thread "main" java.lang.NoClassDefFoundError: scala/collection/Seq
at org.apache.spark.examples.SparkPi.main(SparkPi.scala)
Caused by: java.lang.ClassNotFoundException: scala.collection.Seq
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more
解決方法:
點擊Run/debug configurations
選中“Include dependencies with provided scope”
spark 源碼編譯打包
mvn -Pyarn -Phive -Phive-thriftserver -Phadoop-2.7 -Dhadoop.version=2.7.4 -DskipTests clean package
./dev/make-distribution.sh --name spark-2.2.2 --tgz -Pyarn -Phadoop-2.7 -Phive -Phive-thriftserver -Dhadoop-version=hadoop-2.7.4
spark 源碼導入idea
直接open就行,然後設置爲maven sbt project 依賴會自動下載。不要import 工程 as maven之類的。
idea debug 設置
以SparkPi爲例,在運行參數中加入 -Dspark.master=local
遠程debug設置
export SPARK_SUBMIT_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005
./spark-submit --master "local[2]" --class org.apache.spark.examples.SparkPi ../examples/jars/spark-examples_2.11-2.2.2.jar 100
scala style 註釋問題
在源碼中添加註釋都報錯
解決辦法:
下載 http://www.scalastyle.org/scalastyle_config.xml 替換 工程根目錄下的 scalastyle_config.xml即可