當前位置:首頁 » 編程軟體 » spark源碼編譯

spark源碼編譯

發布時間: 2022-01-23 02:53:16

❶ 大家對spark的源碼了解多少,sparkshuffle,調度,sparkstreaming的源碼

流(Streaming),在大數據時代為數據流處理,就像水流一樣,是數據流;既然是數據流處理,就會想到數據的流入、數據的加工、數據的流出。

日常工作、生活中數據來源很多不同的地方。例如:工業時代的汽車製造、監控設備、工業設備會產生很多源數據;信息時代的電商網站、日誌伺服器、社交網路、金融交易系統、黑客攻擊、垃圾郵件、交通監控等;通信時代的手機、平板、智能設備、物聯網等會產生很多實時數據,數據流無處不在。

在大數據時代SparkStreaming能做什麼?

平時用戶都有網上購物的經歷,用戶在網站上進行的各種操作通過Spark Streaming流處理技術可以被監控,用戶的購買愛好、關注度、交易等可以進行行為分析。在金融領域,通過Spark Streaming流處理技術可以對交易量很大的賬號進行監控,防止罪犯洗錢、財產轉移、防欺詐等。在網路安全性方面,黑客攻擊時有發生,通過Spark Streaming流處理技術可以將某類可疑IP進行監控並結合機器學習訓練模型匹配出當前請求是否屬於黑客攻擊。其他方面,如:垃圾郵件監控過濾、交通監控、網路監控、工業設備監控的背後都是Spark Streaming發揮強大流處理的地方。

大數據時代,數據價值一般怎麼定義?

所有沒經過流處理的數據都是無效數據或沒有價值的數據;數據產生之後立即處理產生的價值是最大的,數據放置越久或越滯後其使用價值越低。以前絕大多數電商網站盈利走的是網路流量(即用戶的訪問量),如今,電商網站不僅僅需要關注流量、交易量,更重要的是要通過數據流技術讓電商網站的各種數據流動起來,通過實時流動的數據及時分析、挖掘出各種有價值的數據;比如:對不同交易量的用戶指定用戶畫像,從而提供不同服務質量;准對用戶訪問電商網站板塊愛好及時推薦相關的信息。

SparkStreaming VSHadoopMR:

Spark Streaming是一個准實時流處理框架,而Hadoop MR是一個離線、批處理框架;很顯然,在數據的價值性角度,Spark Streaming完勝於Hadoop MR。

SparkStreaming VS Storm:

Spark Streaming是一個准實時流處理框架,處理響應時間一般以分鍾為單位,也就是說處理實時數據的延遲時間是秒級別的;Storm是一個實時流處理框架,處理響應是毫秒級的。所以在流框架選型方面要看具體業務場景。需要澄清的是現在很多人認為Spark Streaming流處理運行不穩定、數據丟失、事務性支持不好等等,那是因為很多人不會駕馭Spark Streaming及Spark本身。在Spark Streaming流處理的延遲時間方面,Spark定製版本,會將Spark Streaming的延遲從秒級別推進到100毫秒之內甚至更少。

SparkStreaming優點:

1、提供了豐富的API,企業中能快速實現各種復雜的業務邏輯。

2、流入Spark Streaming的數據流通過和機器學習演算法結合,完成機器模擬和圖計算。

3、Spark Streaming基於Spark優秀的血統。

SparkStreaming能不能像Storm一樣,一條一條處理數據?

Storm處理數據的方式是以條為單位來一條一條處理的,而Spark Streaming基於單位時間處理數據的,SparkStreaming能不能像Storm一樣呢?答案是:可以的。

業界一般的做法是Spark Streaming和Kafka搭檔即可達到這種效果,入下圖:

總結:

使用Spark Streaming可以處理各種數據來源類型,如:資料庫、HDFS,伺服器log日誌、網路流,其強大超越了你想像不到的場景,只是很多時候大家不會用,其真正原因是對Spark、spark streaming本身不了解。

❷ 使用maven編譯spark報錯,誰知道是什麼原因嗎

maven項目編譯的標准輸出路徑就是mavenProject/target/classes, 項目右鍵 build path--configure build path--java build path--source,把default output folder改成mavenProject/target/classes,在菜單欄project下把自動編譯打勾。

❸ 怎麼編譯spark-streaming-flume

storm是實時處理,spark和hadoop是批處理,兩者是互補。在Hadoop2.0之後,hadoop使用了新的yarn框架,map/rece只是其中一種默許了,spark也可以在hadoop的yarn框架下運行的,所以2者還會是融合的。
spark還有與storm相同功能的 Spark Steaming,實時處理流式數據。可以順著Hadoop -> spark -> spark Steaming一路學下去,storm是否學習,你可以自己選擇下。如果有相同功能的spark Steaming,肯定是學習spark Steaming啦。
如果我的回答沒幫助到您,請繼續追問。

❹ 怎麼用Eclipse搭建Spark源碼閱讀環境

第一部分、軟體安裝

1、 安裝JDK (版本為1.7.0_11)

2、 安裝Scala (版本為2.11.2)

3、 安裝ScalaIDE(版本為3.0.4)

第二部分:加壓縮官網下載的源代碼包或者找到通過Git抽取的Spark源文件:

我用的是spark-1.1.1版本(最新版本),由於idea 13已經原生支持sbt,所以無須為idea安裝sbt插件。

源碼下載(用git工具):

# Masterdevelopment branch

gitclone git://github.com/apache/spark.git

# 1.1 maintenancebranch with stability fixes on top of Spark 1.1.1

gitclone git://github.com/apache/spark.git -b branch-1.1

源碼更新(用git工具同步跟新源碼):

gitclone https://github.com/apache/spark.git

第三部分:通過sbt工具,構建Scala的Eclipse工程,詳細步驟如下所示

1、通過cmd命令進入DOS界面,之後通過cd命令進入源代碼項目中,我下載的Spark.1.1.1版本的源代碼放在(E:\Spark計算框架的研究\spark_1_1_1_eclipse)文件夾中,之後運行sbt命令,如下所示:

2、運行sbt命令之後,解析編譯相關的jar包,並出現sbt命令界面窗口,出現的效果圖如下所示,之後運行eclipse命令,sbt對這個工程進行編譯,構建Eclipse項目,效果圖如下所示:

4、 打開ScalaIDE工具,File à Import à Existing Projects into Workspace à
Next à
選擇剛好用sbt工具編譯好的Eclipse工程(E:\Spark計算框架的研究\spark_1_1_1_eclipse),如下圖所示。

5、 通過上面的操作,就可以將通過sbt工具編譯生成的Eclipse項目導入到EclipseIDE開發環境中,效果圖如下所示:

錯誤提示如下所示:我導入的包為,如下文件夾中所示。

(E:\Spark計算框架的研究\spark_1_1_1_eclipse\lib_managed\bundles)

Description Resource Path Location Type

akka-remote_2.10-2.2.3-shaded-protobuf.jar is cross-compiled

with an incompatible version of Scala (2.10).

In case of errorneous report, this check can be disabled

in the compiler preference page.

spark-core Unknown Scala Classpath Problem

Description Resource Path Location Type

akka-slf4j_2.10-2.2.3-shaded-protobuf.jar is cross-compiled with

an incompatible version of Scala (2.10). In case of errorneous report,

this check can be disabled in the compiler preference page.

spark-core Unknown Scala Classpath Problem

Description Resource Path Location Type

akka-testkit_2.10-2.2.3-shaded-protobuf.jar is cross-compiled

with an incompatible version of Scala (2.10).

In case of errorneous report, this check can be disabled in the compiler preference page.

spark-core Unknown Scala Classpath Problem

Description Resource Path Location Type

akka-zeromq_2.10-2.2.3-shaded-protobuf.jar is cross-compiled

with an incompatible version of Scala (2.10).

In case of errorneous report, this check can be disabled in the compiler preference page.

spark-core Unknown Scala Classpath Problem

上面這些包兼容性問題還沒有解決,修改相應的jar包就可以解決。

❺ 如何對Spark 源碼修改後在Eclipse中使用

Eclipse 下開發調試環境的配置
該小節中使用的各項工具分別為:Windows 7+Eclipse Java EE 4.4.2+Scala 2.10.4+Sbt 0.13.8+Maven3.3.3,測試的 Spark 版本為 1.4.0。
1.配置 IDE:
選擇菜單項 Help->Install new software,添加站點 ,選擇安裝 Scala IDE for Eclipse 以及 Scala IDE Plugins。
對於標准版 Eclipse,還需要安裝單獨的 Maven 插件。
出於配置簡便考慮,也可以使用 Scala 官方提供的已將所有依賴打包好的 Scala IDE。
特別的,由於項目本身存在一些錯誤,請先暫時關閉 Project->Build Automatically 的功能以節省時間。
2.下載 Spark 源代碼:
創建空目錄,執行如下語句:git clone
除了使用 git 指令之外,也可以從 Spark 的 Github 頁面下載打包好的源代碼。
3.將源碼轉化為 Eclipse 項目:
進入源代碼根目錄,執行如下語句:sbt eclipse。Sbt 執行期間會下載 Spark 所需要的所有 jar 包,因此該步驟會花費很長的時間。其中有一些 jar 包需要使用網路代理等方法才能下載。
4.導入項目至 Eclipse:
選擇菜單項 File->Import,並選擇 General->Existing Projects into Workspace,項目的根路徑選擇源代碼的根路徑,導入所有項目(共有 25 個)。
5.修改 Scala 版本:
進入 Preference->Scala->Installations,添加機器上安裝的 Scala 2.10.4(選擇 lib 目錄)。由於該版本 Spark(1.4.0)是在 Scala 2.10.4 的環境下編寫的,需要在 Eclipse 中修改項目使用的 Scala 版本。方法為:全選項目,右鍵選擇 Scala->Set the Scala Installation 並選擇相應的 Scala 版本。
6.為 old-deps 項目添加 Scala Library:
右鍵選擇 old-deps 項目,選擇 Scala->Add Scala Library to Build Path。
7.Maven install 以生成 spark-streaming-flume-sink 所需要的類:
首先將源代碼根目錄中的 scalastyle-config.xml 文件復制到 spark-streaming-flume-sink 項目根目錄中,而後在 Eclipse 中打開該項目,右鍵選擇 pom.xml 文件,選擇 Run as->Maven install。
8.修改 spark-sql 與 spark-hive 的包錯誤:
由於源代碼的包設置有錯誤,為此需要將類文件移至正確的包中
對於 spark-sql 項目,分別選擇 src/test/java 中的 test.org.apache.spark.sql 以及 test.org.apache.spark.sql.sources 包中的所有類,右鍵選擇 Refactor->Move,移動至 org.apache.spark.sql 以及 org.apache.spark.sql.sources 包。
對於 spark-hive 項目,分別選擇 src/test/java 中的 test.org.apache.spark.sql.hive 以及 test.org.apache.spark.sql.hive.execution 包中的所有類,移動至 org.apache.spark.sql.hive 以及 org.apache.spark.sql.hive.execution 包。
9.編譯所有項目:
打開 Project->Build Automatically 功能,等待所有項目編譯成功。
10.檢查是否安裝成功:
將 core 項目中的 src->main->resources->org 文件夾拷貝到 examples 項目中的 target->scala-2.10->classes 中。而後執行 examples 項目中的 org.apache.spark.examples.SparkPi 程序,並設置其 jvm 參數為-Dspark.master=local

❻ spark編譯在linux怎麼使用

在windows下安裝軟體大家都覺得很容易,只要雙擊setup或是install的圖標,然後跟著向導一步一步的按提示做就可以了,但是在linux下安裝軟體就不像windows下那樣容易了,有時你找到的是沒有編譯過的軟體源碼,那就更加的麻煩了,這里就介紹一下如...

❼ 想研讀下spark的源碼,怎麼搭閱讀和調試的環境

網上搜一下就有,下面轉的董西成的博客 (1)准備工作 1) 安裝JDK 6或者JDK 7 2) 安裝scala 2.10.x (注意版本) 3) 將下載的Intellij IDEA解壓後,安裝scala插件,流程如下: 依次選擇「Configure」–> 「Plugins」–> 「Browse repositories」,輸入scala,然後安裝即可 (2)搭建Spark源碼閱讀環境(需要聯網) 第一種方法是直接依次選擇「import project」–> 選擇spark所在目錄 –> 「SBT」,之後intellij會自動識別SBT文件,並下載依賴的外部jar包,整個流程用時非常長,取決於機器的網路環境(不建議在windows下操作,可能遇到各種問題),一般需花費幾十分鍾到幾個小時。注意,下載過程會用到git,因此應該事先安裝了git。 第二種方法是首先在linux操作系統上生成intellij項目文件,然後在intellij IDEA中直接通過「Open Project」打開項目即可。在linux上生成intellij項目文件的方法(需要安裝git,不需要安裝scala,sbt會自動下載)是:在spark源代碼根目錄下,輸入sbt/sbt gen-idea 註:如果你在windows下閱讀源代碼,建議先在linux下生成項目文件,然後導入到windows中的intellij IDEA中。 (3)搭建Spark開發環境 在intellij IDEA中創建scala project,並依次選擇「File」–> 「project structure」 –> 「Libraries」,選擇「+」,將spark-hadoop 對應的包導入,比如導入spark-assembly_2.10-0.9.0-incubating-hadoop2.2.0.jar(只需導入該jar包,其他不需要),如果IDE沒有識別scala 庫,則需要以同樣方式將scala庫導入。之後開發scala程序即可: 編寫完scala程序後,可以直接在intellij中,以local模式運行,方法如下: 點擊「Run」–> 「Run Configurations」,在彈出的框中對應欄中填寫「local」,表示將該參數傳遞給main函數,如下圖所示,之後點擊「Run」–> 「Run」運行程序即可。 如果想把程序打成jar包,通過命令行的形式運行在spark 集群中,可以按照以下步驟操作: 依次選擇「File」–> 「Project Structure」 –> 「Artifact」,選擇「+」–> 「Jar」 –> 「From Moles with dependencies」,選擇main函數,並在彈出框中選擇輸出jar位置,並選擇「OK」。 最後依次選擇「Build」–> 「Build Artifact」編譯生成jar包。

❽ 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下怎麼編譯java文件

) Gecko/20100101 Firefox/11.0"
5
121.205.241.229 - - [21/Feb/2014:00:00:13 +0800] "GET /archives/526.html HTTP/1.1" 200 12080 "http://shiyanjun.cn/archives/526.html/" "Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko/20100101 Firefox/11.0"
6
121.205.241.229 - - [21/Feb/2014:00:00:15 +0800] "POST /wp-comments-post.php HTTP/1.1" 302 26 "http://shiyanjun.cn/archives/526.html/" "Mozilla/5.0 (Windows NT 5.1; rv:23.0) Gecko/20100101 Firefox/23.0"
Java實現Spark應用程序(Application)

我們實現的統計分析程序,有如下幾個功能點:

從HDFS讀取日誌數據文件
將每行的第一個欄位(IP地址)抽取出來
統計每個IP地址出現的次數
根據每個IP地址出現的次數進行一個降序排序
根據IP地址,調用GeoIP庫獲取IP所屬國家
列印輸出結果,每行的格式 IP地址 頻率

❿ 新手請教:為什麼安裝spark需要源碼編譯

因為不同版本的HDFS在協議上是不兼容的,所以如果你想用你的Spark從HDFS上讀取數據,那麼你就的選擇相應版本的HDFS來編譯Spark,這個可以在編譯的時候通過設置hadoop.version來選擇,默認情況下,Spark默認為編譯成Hadoop 1.0.4版本。現在可以使用的方法有Maven編譯,sbt編譯(時間較長),Spark自帶腳本編譯(實際還是調用Maven)。

熱點內容
cad解壓錯誤 發布:2024-03-29 15:01:45 瀏覽:78
存儲指令集 發布:2024-03-29 14:39:27 瀏覽:649
資料庫表刪除數據 發布:2024-03-29 14:39:26 瀏覽:367
出c語言整除 發布:2024-03-29 14:28:22 瀏覽:572
芬尼壓縮機 發布:2024-03-29 14:24:11 瀏覽:464
電腦數據實時上傳本地伺服器軟體 發布:2024-03-29 14:07:57 瀏覽:920
尋秦記源碼 發布:2024-03-29 13:56:17 瀏覽:496
linux的備份命令 發布:2024-03-29 13:41:22 瀏覽:383
csgo建議什麼配置 發布:2024-03-29 13:31:44 瀏覽:980
電腦ftp服務如何禁用 發布:2024-03-29 13:24:48 瀏覽:332