成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Spark:利用Eclipse構建Spark集成開發環境

開發 前端 Spark
前一篇文章“Apache Spark學習:將Spark部署到Hadoop 2.2.0上”介紹了如何使用Maven編譯生成可直接運行在Hadoop 2.2.0上的Spark jar包,而本文則在此基礎上,介紹如何利用Eclipse構建Spark集成開發環境。

前一篇文章“Apache Spark學習:將Spark部署到Hadoop 2.2.0上”介紹了如何使用Maven編譯生成可直接運行在Hadoop 2.2.0上的Spark jar包,而本文則在此基礎上,介紹如何利用Eclipse構建Spark集成開發環境。

(1) 準備工作

在正式介紹之前,先要以下軟硬件準備:

軟件準備:

Eclipse Juno版本(4.2版本),可以直接點擊這里下載:Eclipse 4.2

Scala 2.9.3版本,Window安裝程序可以直接點擊這里下載:Scala 2.9.3

Eclipse Scala IDE插件,可直接點擊這里下載:Scala IDE(for Scala 2.9.x and Eclipse Juno)

硬件準備

裝有Linux或者Windows操作系統的機器一臺

(2) 構建Spark集成開發環境

我是在windows操作系統下操作的,流程如下:

步驟1:安裝scala 2.9.3:直接點擊安裝即可。

步驟2:將Eclipse Scala IDE插件中features和plugins兩個目錄下的所有文件拷貝到Eclipse解壓后對應的目錄中

步驟3:重新啟動Eclipse,點擊eclipse右上角方框按鈕,如下圖所示,展開后,點擊“Other….”,查看是否有“Scala”一項,有的話,直接點擊打開,否則進行步驟4操作。

步驟4:在Eclipse中,依次選擇“Help” –> “Install New Software…”,在打開的卡里填入http://download.scala-ide.org/sdk/e38/scala29/stable/site,并按回車鍵,可看到以下內容,選擇前兩項進行安裝即可。(由于步驟3已經將jar包拷貝到eclipse中,安裝很快,只是疏通一下)安裝完后,重復操作一遍步驟3便可。

(3) 使用Scala語言開發Spark程序

在eclipse中,依次選擇“File” –>“New” –> “Other…” –>  “Scala Wizard” –> “Scala Project”,創建一個Scala工程,并命名為“SparkScala”。

右擊“SaprkScala”工程,選擇“Properties”,在彈出的框中,按照下圖所示,依次選擇“Java Build Path” –>“Libraties” –>“Add External JARs…”,導入文章“Apache Spark:將Spark部署到Hadoop 2.2.0上”中給出的

assembly/target/scala-2.9.3/目錄下的spark-assembly-0.8.1-incubating- hadoop2.2.0.jar,這個jar包也可以自己編譯spark生成,放在spark目錄下的assembly/target/scala- 2.9.3/目錄中。

#p#

跟創建Scala工程類似,在工程中增加一個Scala Class,命名為:WordCount,整個工程結構如下:

WordCount就是最經典的詞頻統計程序,它將統計輸入目錄中所有單詞出現的總次數,Scala代碼如下:

  1. import org.apache.spark._ 
  2. import SparkContext._ 
  3. object WordCount { 
  4.   def main(args: Array[String]) { 
  5.     if (args.length != 3 ){ 
  6.       println("usage is org.test.WordCount <master> <input> <output>"
  7.       return 
  8.     } 
  9.     val sc = new SparkContext(args(0), "WordCount"
  10.     System.getenv("SPARK_HOME"), Seq(System.getenv("SPARK_TEST_JAR"))) 
  11.     val textFile = sc.textFile(args(1)) 
  12.     val result = textFile.flatMap(line => line.split("\\s+")) 
  13.         .map(word => (word, 1)).reduceByKey(_ + _) 
  14.     result.saveAsTextFile(args(2)) 
  15.   } 

在Scala工程中,右擊“WordCount.scala”,選擇“Export”,并在彈出框中選擇“Java” –> “JAR File”,進而將該程序編譯成jar包,可以起名為“spark-wordcount-in-scala.jar”,我導出的jar包下載地址是 spark-wordcount-in-scala.jar

該WordCount程序接收三個參數,分別是master位置,HDFS輸入目錄和HDFS輸出目錄,為此,可編寫run_spark_wordcount.sh腳本:

# 配置成YARN配置文件存放目錄

export YARN_CONF_DIR=/opt/hadoop/yarn-client/etc/hadoop/

SPARK_JAR=./assembly/target/scala-2.9.3/spark-assembly-0.8.1-incubating-hadoop2.2.0.jar \

./spark-class org.apache.spark.deploy.yarn.Client \

–jar spark-wordcount-in-scala.jar \

–class WordCount \

–args yarn-standalone \

–args hdfs://hadoop-test/tmp/input \

–args hdfs:/hadoop-test/tmp/output \

–num-workers 1 \

–master-memory 2g \

–worker-memory 2g \

–worker-cores 2

需要注意以下幾點:WordCount程序的輸入參數通過“-args”指定,每個參數依次單獨指定,第二個參數是HDFS上的輸入目錄,需要事先創建好,并上傳幾個文本文件,以便統計詞頻,第三個參數是HDFS上的輸出目錄,動態創建,運行前不能存在。

直接運行run_spark_wordcount.sh腳本即可得到運算結果。

在運行過程中,發現一個bug,org.apache.spark.deploy.yarn.Client有一個參數“–name”可以指定應用程序名稱:

但是使用過程中,該參數會阻塞應用程序,查看源代碼發現原來是個bug,該Bug已提交到Spark jira上:

  1. // 位置:new-yarn/src/main/scala/org/apache/spark/deploy/yarn/ClientArguments.scala 
  2.         case ("--queue") :: value :: tail => 
  3.           amQueue = value 
  4.           args = tail 
  5.   
  6.         case ("--name") :: value :: tail => 
  7.           appName = value 
  8.           args = tail //漏了這行代碼,導致程序阻塞 
  9.   
  10.         case ("--addJars") :: value :: tail => 
  11.           addJars = value 
  12.           args = tail 

因此,大家先不要使用“–name”這個參數,或者修復這個bug,重新編譯Spark。

(4) 使用Java語言開發Spark程序

方法跟普通的Java程序開發一樣,只要將Spark開發程序包spark-assembly-0.8.1-incubating-hadoop2.2.0.jar作為三方依賴庫即可。

(5) 總結

初步試用Spark On YARN過程中,發現問題還是非常多,使用起來非常不方便,門檻還是很高,遠不如Spark On Mesos成熟。

原文鏈接:http://dongxicheng.org/framework-on-yarn/spark-eclipse-ide/

責任編輯:陳四芳 來源: dongxicheng.org
相關推薦

2009-07-14 13:14:13

2014-08-11 10:15:01

Docker開發環境

2014-01-07 10:12:15

Spark

2010-06-12 16:29:00

BlackBerry開

2010-08-05 09:13:22

EclipseFlexBuilder

2014-09-16 10:13:27

Spark搭建環境

2020-05-26 15:05:30

Spark安裝環境

2009-06-01 15:56:48

eclipse sdkeclipse

2012-02-02 17:05:30

Eclipse

2012-03-19 09:47:10

EclipseJava

2011-06-03 13:38:49

Android 開發環境

2013-07-29 14:23:55

Eclipse開發環境Eclipse開發環境

2016-11-29 09:27:22

Apache SparDashboard構建

2017-03-06 09:40:39

OpenStack SHadoopSpark

2017-08-14 10:30:13

SparkSpark Strea擴容

2011-09-13 17:15:58

Eclipse And

2012-06-05 01:23:14

Ubuntueclipse

2015-10-16 13:30:59

EclipsePython開發環境

2021-03-15 14:02:21

大數據數據開發Spark

2023-08-17 20:13:42

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产一级特黄视频 | 黄色一级片aaa | 一级欧美一级日韩片免费观看 | 国产一区二区三区视频 | 久久久91精品国产一区二区三区 | 成人一区二区电影 | 亚洲va国产日韩欧美精品色婷婷 | 欧美激情精品久久久久 | 亚洲免费三级 | 日韩在线不卡视频 | 成人在线播放网址 | 久久久精| 在线观看中文字幕 | 久久91精品久久久久久9鸭 | 午夜精品久久久久久久星辰影院 | 国产精品免费观看 | 亚洲激情专区 | 国内精品久久久久久久 | 免费观看一级特黄欧美大片 | 午夜精品久久久久久久久久久久久 | 亚洲成av人影片在线观看 | 亚洲精品二区 | 97精品超碰一区二区三区 | 中文字幕亚洲在线 | a亚洲精品 | 91精品久久 | 欧美一区二区三区在线免费观看 | 欧美黄色网 | 欧美国产日韩在线观看 | 蜜桃视频在线观看www社区 | 久久精品在线 | 国产精品一二三区 | 亚洲综合大片69999 | 精品国产91乱码一区二区三区 | 91玖玖| 国产精品久久久久久238 | 欧美成年网站 | 国偷自产av一区二区三区 | 久热久| 中文字幕亚洲一区二区三区 | 精品一区二区三区免费视频 |