導航:首頁 > 源碼編譯 > apachespark源碼下載

apachespark源碼下載

發布時間:2022-04-11 19:27:56

⑴ org.apache.spark.api.java.optional在哪個包下

如果你想看源碼的話:https://github.com/apache/spark/blob/master/core/src/main/java/org/apache/spark/api/java/Optional.java
如果你只想導入包的話(了解不多,1.6版本可以導入google的optional,網路「com.google.common」,2.1版本已有自己的optional):在spark-core_對應版本號.jar。

⑵ spark最佳實踐電子版 spark是什麼版本

《Spark大數據處理技術》以Spark 0.9版本為基礎進行編寫,是一本全面介紹Spark及Spark生態圈相關技術的書籍,是國內首本深入介紹Spark原理和架構的技術書籍。主要內容有Spark基礎功能介紹及內部重要模塊分析,包括部署模式、調度框架、存儲管理以及應用監控;同時也詳細介紹了Spark生態圈中其他的軟體和模塊,包括SQL處理引擎Shark和Spark SQL、流式處理引擎Spark Streaming、圖計算框架Graphx以及分布式內存文件系統Tachyon。《Spark大數據處理技術》從概念和原理上對Spark核心框架和生態圈做了詳細的解讀,並對Spark的應用現狀和未來發展做了一定的介紹,旨在為大數據從業人員和Spark愛好者提供一個更深入學習的平台。
《Spark大數據處理技術》適合任何大數據、Spark領域的從業人員閱讀,同時也為架構師、軟體開發工程師和大數據愛好者展現了一個現代大數據框架的架構原理和實現細節。相信通過學《Spark大數據處理技術》,讀者能夠熟悉和掌握Spark這一當前流行的大數據框架,並將其投入到生產實踐中去。
《Spark大數據處理:技術、應用與性能優化》根據最新技術版本,系統、全面、詳細講解Spark的各項功能使用、原理機制、技術細節、應用方法、性能優化,以及BDAS生態系統的相關技術。
通過上面兩本熟悉Spark的原理架構以及應用,想深入學習的話,還有《Apache Spark源碼剖析》,它全面、系統地介紹了Spark源碼,深入淺出。

⑶ apache spark是什麼意思

Apache Spark 是專為大規模數據處理而設計的快速通用的計算引擎,是一種快速、通用、可擴展的大數據分析引擎,是一種與 Hadoop 相似的開源集群計算環境。

2009年誕生於加州大學伯克利分校AMPLab,2010年開源,2013年6月成為Apache孵化項目,2014年2月成為Apache頂級項目。

目前,Spark生態系統已經發展成為一個包含多個子項目的集合,其中包含SparkSQL、SparkStreaming、GraphX、MLlib等子項目,Spark是基於內存計算的大數據並行計算框架,提高了在大數據環境下數據處理的實時性,同時保證了高容錯性和高可伸縮性,允許用戶將Spark部署在大量廉價硬體之上,形成集群。

⑷ spark獨立模式還需要編譯

spark有三種集群部署方式:

1、獨立部署模式standalone,spark自身有一套完整的資源管理方式

2、架構於hadoop之上的spark集群

3、架構於mesos之上的spark集群

嘗試了下搭建第一種獨立部署模式集群,將安裝方式記錄如下:

環境ubuntu 12.04 (兩台),部署方式是和hadoop類似,先在一台機器上部署成功後直接將文件打包拷貝到其他機器上,這里假設現在A機器上部署,並且A為master,最後B為slave

A和B均上創建用戶spark

sudo useradd spark
以後spark的目錄在集群所有機器的/home/spark/spark下(第一個spark是用戶名,第二個spark是spark文件目錄名)

保證A能無密碼登陸到B上的spark用戶,在ssh裡面設置

這部分是現在master機器(A)上配置

0 首先保證A能無密碼方式ssh至localhost和B ,具體方式參見: 點擊打開鏈接

0.1 在A機器上執行

ssh-keygen -t rsa
cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
ssh localhost
那麼A可以實現無密碼登陸localhost

0.2 在B機器上執行

ps -e|grep ssh
如果出現:

695 ? 00:00:00 sshd

1754 ? 00:00:00 ssh-agent

若沒有sshd那麼在B上執行

sudo apt-get install openssh-server
在B上安裝ssh服務端(ubuntu有可能默認只有agent端)

0.3 在B上執行:

ssh-keygen -t rsa
scp spark@A:~/.ssh/authorized_keys ~/.ssh
第一句是為了保證在B上有.ssh目錄

第二句是將A的公鑰拷貝到B上,從而實現A無密碼訪問B

0.4 在A上執行gedit ~/.ssh/config添加

user spark
這里是為了A以默認用戶spark無密碼登陸B,其實這一步沒有必要,因為A和B機器上都是在spark用戶下操作的,那麼機器A的saprk執行ssh B也是以spark用戶登陸的

1 每台機器確保有java ,一個簡單的方式:

sudo apt-get install eclipse
2 需要maven編譯spark源碼 ,下載maven 點擊打開鏈接 ,隨便下載一個版本

簡單的方式:

sudo apt-get install maven
復雜的方式:

wget http://mirrors.cnnic.cn/apache/maven/maven-3/3.2.2/binaries/apache-maven-3.2.2-bin.tar.gz
tar -zxvf apache-maven-3.2.2-bin.tar.gz
mv apache-maven-3.2.2-bin.tar.gz maven
sudo mv maven /usr/local
然後gedit /etc/profile末尾添加如下:

#set maven environment
M2_HOME=/usr/local/maven
export MAVEN_OPTS="-Xms256m -Xmx512m"
export PATH=$M2_HOME/bin:$PATH
驗證maven安裝成功:

source /etc/profile
mvn -v
出現類似語句:Apache Maven 3.2.2 (; 2014-06-17T21:51:42+08:00)

3 下載spark, 點擊打開鏈接 ,注意不要下載帶有hadoop之類字樣的版本,而是source package比如spark-1.0.0.tgz

tar -zxvf spark-1.0.0.tgz
mv spark-1.0.0 spark
cd spark
sh make-distribution.sh
最後一步會

編譯spark源碼

,過程可能有點長,取決於網路和機器配置,我的用了19min,編譯成功類似如下圖(圖來自網上):

4 配置spark

4.1 gedit ./conf/spark-env.sh在spark-env.sh末尾添加如下:

export SPARK_MASTER_IP=A
export SPARK_WORKER_CORES=1
export SPARK_WORKER_INSTANCES=1
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_MEMORY=1g
export MASTER=spark://${SPARK_MASTER_IP}:${SPARK_MASTER_PORT}
注意這里的SPARK_MASTER_IP我覺得還是設置為master機器的IP地址比較好,這里我假設master的hostname是A

SPARK_WORKER_INSTANCES表示slave機器的數目,這里只有B一台故設為1

4.2 gedit ./conf/slaves添加B的hostname,這里B機器的hostname假設就為B故在文件中追加一個B即可。文件里原來有一個localhost如果你想要master同時也為worker機器那麼可保留該行,否則可以刪除

5 驗證master機器A能否單機啟動spark

⑸ 如何修改spark中的example

(1) 下載spark源碼,地址https://github.com/apache/spark
(2) 導入到IDE中,可以用IDEA這個編輯器,找到example這個項目
就可以編輯了,前提是你要熟悉scala

⑹ 如何使用intellij搭建spark開發環境

注意,客戶端和虛擬集群中hadoop、spark、scala的安裝目錄是一致的,這樣開發的spark應用程序的時候不需要打包spark開發包和scala的庫文件,減少不必要的網路IO和磁碟IO。當然也可以不一樣,不過在使用部署工具spark-submit的時候需要參數指明classpath。
1:IDEA的安裝
官網jetbrains.com下載IntelliJ IDEA,有Community Editions 和& Ultimate Editions,前者免費,用戶可以選擇合適的版本使用。
根據安裝指導安裝IDEA後,需要安裝scala插件,有兩種途徑可以安裝scala插件:
啟動IDEA -> Welcome to IntelliJ IDEA -> Configure -> Plugins -> Install JetBrains plugin... -> 找到scala後安裝。
啟動IDEA -> Welcome to IntelliJ IDEA -> Open Project -> File -> Settings -> plugins -> Install JetBrains plugin... -> 找到scala後安裝。

如果你想使用那種酷酷的黑底界面,在File -> Settings -> Appearance -> Theme選擇Darcula,同時需要修改默認字體,不然菜單中的中文字體不能正常顯示。2:建立Spark應用程序
下面講述如何建立一個Spark項目week2(,正在錄制視頻),該項目包含3個object:
取自spark examples源碼中的SparkPi
計詞程序WordCount1
計詞排序程序WordCount2

A:建立新項目
創建名為dataguru的project:啟動IDEA -> Welcome to IntelliJ IDEA -> Create New Project -> Scala -> Non-SBT -> 創建一個名為week2的project(注意這里選擇自己安裝的JDK和scala編譯器) -> Finish。
設置week2的project structure
增加源碼目錄:File -> Project Structure -> Meles -> week2,給week2創建源代碼目錄和資源目錄,注意用上面的按鈕標注新增加的目錄的用途。


增加開發包:File -> Project Structure -> Libraries -> + -> java -> 選擇
/app/hadoop/spark100/lib/spark-assembly-1.0.0-hadoop2.2.0.jar
/app/scala2104/lib/scala-library.jar可能會提示錯誤,可以根據fix提示進行處理

B:編寫代碼
在源代碼scala目錄下創建1個名為week2的package,並增加3個object(SparkPi、WordCoun1、WordCount2):


SparkPi代碼
package week2

import scala.math.random
import org.apache.spark._

/** Computes an approximation to pi */
object SparkPi {
def main(args: Array[String]) {
val conf = new SparkConf().setAppName("Spark Pi")
val spark = new SparkContext(conf)
val slices = if (args.length > 0) args(0).toInt else 2
val n = 100000 * slices
val count = spark.parallelize(1 to n, slices).map { i =>
val x = random * 2 - 1
val y = random * 2 - 1
if (x*x + y*y < 1) 1 else 0
}.rece(_ + _)
println("Pi is roughly " + 4.0 * count / n)
spark.stop()
}
}
復制代碼

WordCount1代碼

package week2

import org.apache.spark.{SparkContext, SparkConf}
import org.apache.spark.SparkContext._

object WordCount1 {
def main(args: Array[String]) {
if (args.length == 0) {
System.err.println("Usage: WordCount1 <file1>")
System.exit(1)
}

val conf = new SparkConf().setAppName("WordCount1")
val sc = new SparkContext(conf)
sc.textFile(args(0)).flatMap(_.split(" ")).map(x => (x, 1)).receByKey(_ + _).take(10).foreach(println)
sc.stop()
}
}
復制代碼

WordCount2代碼

package week2

import org.apache.spark.{SparkContext, SparkConf}
import org.apache.spark.SparkContext._

object WordCount2 {
def main(args: Array[String]) {
if (args.length == 0) {
System.err.println("Usage: WordCount2 <file1>")
System.exit(1)
}

val conf = new SparkConf().setAppName("WordCount2")
val sc = new SparkContext(conf)
sc.textFile(args(0)).flatMap(_.split(" ")).map(x => (x, 1)).receByKey(_ + _).map(x=>(x._2,x._1)).sortByKey(false).map(x=>(x._2,x._1)).take(10).foreach(println)
sc.stop()
}
}
復制代碼

C:生成程序包
生成程序包之前要先建立一個artifacts,File -> Project Structure -> Artifacts -> + -> Jars -> From moudles with dependencies,然後隨便選一個class作為主class。


按OK後,對artifacts進行配置,修改Name為week2,刪除Output Layout中week2.jar中的幾個依賴包,只剩week2項目本身。


按OK後, Build -> Build Artifacts -> week2 -> rebuild進行打包,經過編譯後,程序包放置在out/artifacts/week2目錄下,文件名為week2.jar。

3:Spark應用程序部署
將生成的程序包week2.jar復制到spark安裝目錄下,切換到用戶hadoop,然後切換到/app/hadoop/spark100目錄,進行程序包的部署。具體的部署參見應用程序部署工具spark-submit 。

⑺ GitHub上面有哪些經典的java框架源碼

⑻ spark mllib演算法介面源碼在什麼地方查看

1.1LDA實例實例步驟:1)載入數據返回的數據格式為:documents:RDD[(Long,Vector)],其中:Long為文章ID,Vector為文章分詞後的詞向量;用戶可以讀取指定目錄下的數據,通過分詞以及數據格式的轉換,轉換成RDD[(Long,Vector)]即可。2)建立模型模型參數設置說明:k:主題數,或者聚類中心數DocConcentration:文章分布的超參數(Dirichlet分布的參數),必需>1.0TopicConcentration:主題分布的超參數(Dirichlet分布的參數),必需>1.0MaxIterations:迭代次數setSeed:隨機種子CheckpointInterval:迭代計算時檢查點的間隔Optimizer:優化計算方法,目前支持"em","online"3)結果輸出topicsMatrix以及topics(word,topic))輸出。實例代碼如下:[java]viewplainimportorg.apache.log4j.{Level,Logger}importorg.apache.spark.{SparkConf,SparkContext}importorg.apache.spark.mllib.clustering.LDAimportorg.apache.spark.mllib.linalg.Vectorsobjectlda{defmain(args:Array[String]){//0構建Spark對象valconf=newSparkConf().setAppName("lda")valsc=newSparkContext(conf)Logger.getRootLogger.setLevel(Level.WARN)//1載入數據,返回的數據格式為:documents:RDD[(Long,Vector)]//其中:Long為文章ID,Vector為文章分詞後的詞向量//可以讀取指定目錄下的數據,通過分詞以及數據格式的轉換,轉換成RDD[(Long,Vector)]即可valdata=sc.textFile("data/mllib/sample_lda_data.txt")valparsedData=data.map(s=>Vectors.dense(s.trim.split('').map(_.toDouble)))//=parsedData.zipWithIndex.map(_.swap).cache()//2建立模型,設置訓練參數,訓練模型/***k:主題數,或者聚類中心數*DocConcentration:文章分布的超參數(Dirichlet分布的參數),必需>1.0*TopicConcentration:主題分布的超參數(Dirichlet分布的參數),必需>1.0*MaxIterations:迭代次數*setSeed:隨機種子*CheckpointInterval:迭代計算時檢查點的間隔*Optimizer:優化計算方法,目前支持"em","online"*/valldaModel=newLDA().setK(3).setDocConcentration(5).setTopicConcentration(5).setMaxIterations(20).setSeed(0L).setCheckpointInterval(10).setOptimizer("em").run(corpus)//3模型輸出,模型參數輸出,結果輸出//Outputtopics.Eachisadistributionoverwords(matchingwordcountvectors)println("Learnedtopics(asdistributionsovervocabof"+ldaModel.vocabSize+"words):")valtopics=ldaModel.topicsMatrixfor(topic<-Range(0,3)){print("Topic"+topic+":")for(word<-Range(0,ldaModel.vocabSize)){print(""+topics(word,topic));}println()}}}

閱讀全文

與apachespark源碼下載相關的資料

熱點內容
極光電商app是什麼軟體 瀏覽:68
php調用html5 瀏覽:498
修改pdf安卓 瀏覽:475
php方法命名 瀏覽:159
200命令 瀏覽:328
圖庫已存在文件夾 瀏覽:728
U8硬體加密和軟體加密區別 瀏覽:282
android設置啟動頁 瀏覽:115
mt4代碼怎麼加密 瀏覽:100
python的除法運算符 瀏覽:251
程序員逼宮老闆 瀏覽:302
亞馬遜雲伺服器多久會暫停 瀏覽:123
旅居游用什麼app 瀏覽:259
代碼加密後有什麼影響 瀏覽:154
繽紛水母系列解壓 瀏覽:993
mc無敵命令 瀏覽:87
windows核心編程光碟 瀏覽:621
美女和程序員相親視頻 瀏覽:658
你熟悉哪些演算法 瀏覽:770
杭州有什麼伺服器地址 瀏覽:1005