日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

IDEA15 下运行Scala遇到问题以及解决办法

發布時間:2023/12/19 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IDEA15 下运行Scala遇到问题以及解决办法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為了讓Scala運行起來還是很麻煩,為了大家方便,還是記錄下來:

1、首先我下載的是IDEA的社區版本,版本號為15.

2、下載安裝scala插件:

2.1 進入設置菜單。

??

2.2 點擊安裝JetBrains plugin

2.3 輸入scala查詢插件,點擊安裝

說明:我的IDEA已經安裝,所以這里面沒有顯示出來安裝按鈕,否則右邊有顯示綠色按鈕。

?

3、新建Scala工程

3.1 新建工程

通過菜單:File----》New Project 選擇Scala工程。

并且設置項目基本信息,如下圖:

?

3.2 設置Modules

1)點擊右上角的方塊:

?

2)在左邊選擇Libraries---》+---》Scala SDK--》選擇版本為2.10.4?

說明:如果不存在這個版本可以通過左下角的download去下載。

3)選擇添加Java的Jar文件,選擇Spark和Hadoop關聯的Jar

我這里添加的是:spark-assembly-1.6.1-hadoop2.6.0.jar 這個是spark安裝時候自帶的lib里面有,很大。

定位到jar所在的目錄后,刷新,選擇這個文件,點擊OK,會花費比較長時間建索引。

?

4)在Src源碼目錄新建文件:WordCount.scala

且輸入如下代碼:

import org.apache.spark.{SparkConf, SparkContext} import org.apache.spark.SparkContext._object WordCount {def main(args: Array[String]) {if (args.length < 1) {System.err.println("Usage:<File>")System.exit(1)}val conf = new SparkConf().setAppName("WordCount")val sc = new SparkContext(conf)val line = sc.textFile(args(0))val words = line.flatMap(_.split("")).map((_, 1))val reducewords = words.reduceByKey(_ + _).collect().foreach(println)sc.stop()}}

 5)編譯運行:

? 需要輸入參數,所以要設置下相關參數信息:

隨便復制個文件過去,然后設置下:

  • 拋出異常:

Exception in thread "main" org.apache.spark.SparkException: A master URL must be set in your configuration
at org.apache.spark.SparkContext.<init>(SparkContext.scala:401)

解決辦法:需要設置下SparkContext的地址:

?

  • ?拋出異常:

16/06/25 12:14:18 ERROR Shell: Failed to locate the winutils binary in the hadoop binary path
java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.

解決辦法:

http://stackoverflow.com/questions/19620642/failed-to-locate-the-winutils-binary-in-the-hadoop-binary-path

可能是因為我沒有安裝hadoop的原因,設置下相關信息就可以:

下載:

<a href="http://www.srccodes.com/p/article/39/error-util-shell-failed-locate-winutils-binary-hadoop-binary-path">Click here</a>

設置:HADOOP_HOME為下載后解壓內容的上級目錄,然后在PATH里面添加%HADOOP_HOME%/bin;

4、其他異常

1)異常內容:類或Object XXX已經被定義

? ? ?解決辦法: 這個可能是工程里面設置了兩個source目錄,需要刪除一個。

2)異常內容:sparkContext.class 依賴不存在

? ? 解決辦法:需要引入hadoop的jar包,我這里是:spark-assembly-1.6.1-hadoop2.6.0.jar

3)異常內容:Error:(17, 29) value reduceByKey is not a member of org.apache.spark.rdd.RDD[(String, Int)]

? ?解決辦法: 導入這個:? import org.apache.spark.SparkContext._

4)異常內容:Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/util/concurrent/ThreadFactoryBuilder

? ?解決辦法:添加依賴Jar :guava-11.0.2.jar

5)異常內容:Exception in thread "main" java.lang.NoSuchMethodError: scala.collection.immutable.HashSet$.empty()Lscala/collection/immutable/HashSet;

? 解決辦法:更改scala-sdk版本為2.10,如果沒有通過如下方式下載:(速度奇慢)

通過project Structure--》LIbraries--》+---》Scala SDK--》 Browse--》選擇2.10---》Download... 6)異常內容:java.lang.AbstractMethodError? at akka.actor.ActorCell.create(ActorCell.scala:580) ? ?解決辦法: 不知道怎么好了,JDK從1.8換到1.7,再次換到1.8就好了,莫名。

5、打包成Jar

?

1、設置下導出Jar信息:

2、設置導出的工程還導出的Main類:

3、通過選擇點擊-號刪除其他依賴的class

4、導出Jar包:

?

5、上傳后執行Jar包

?./spark-submit --master spark://inas:7077 --class WordCount --executor-memory 512m /home/hadoop/sparkapp/scalatest4.jar hdfs://inas:9000/user/hadoop/input/core-site.xml

說明: hadoop文件為以前新建的,在提交之前需要先啟動hadoop再自動spark,然后再用以上辦法提交。

啟動Hdfs:?./start-dfs.sh

啟動spark:./sbin/start-all.sh(沒試過)

可以通過如下方法啟動:

~/project/spark-1.3.0-bin-hadoop2.4 $./sbin/start-master.sh
~/project/spark-1.3.0-bin-hadoop2.4 $./bin/spark-class org.apache.spark.deploy.worker.Worker spark://inas:7077
注意:必須使用主機名

啟動模式為standaline模式。

Spark Standalone Mode 多機啟動,則其他主機作為worker啟動,設置master主題。

?

總結

以上是生活随笔為你收集整理的IDEA15 下运行Scala遇到问题以及解决办法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。