1. 程式人生 > >Spark開發環境的配置

Spark開發環境的配置

軟體版本:Spark 0.9

配置Spark開發環境,其實分為三個層次,一種是針對運維人員,把Spark安裝部署到叢集;一種是針對普通開發者,引入Spark的jar包,呼叫Spark提供的介面,編寫分散式程式,寫好後編譯成jar,就可以提交到Spark叢集去運行了;第三種是針對Spark開發者,為了給Spark貢獻程式碼,需要git clone Spark的程式碼,然後匯入IDE,為Spark開發程式碼。

1 部署Spark叢集

這種是運維人員在生產環境下,搭建起一個Spark叢集。

(可選)建立新使用者 Spark

一般我傾向於把需要啟動daemon程序,對外提供服務的程式,即伺服器類的程式,安裝在單獨的使用者下面。這樣可以做到隔離,運維方面,安全性也提高了。

建立一個新的group,

$ sudo groupadd spark

建立一個新的使用者,並加入group,

$ sudo useradd -g spark spark

給新使用者設定密碼,

$ sudo passwd spark

在每臺機器上建立 spark 新使用者,並配置好SSH無密碼,參考我的另一篇部落格,SSH無密碼登入的配置

假設有三臺機器,hostname分別是 master, worker01, worker02。

1.1 下載 Spark 預編譯好的二進位制包

如果你需要用到HDFS,則要針對Hadoop 1.x 和Hadoop 2.x 選擇不同的版本。這裡我選擇 Hadoop 2.x 版。

[email protected] $ wget http://d3kbcqa49mib13.cloudfront.net/spark-0.9.0-incubating-bin-hadoop1.tgz
[email protected] $ tar zxf spark-0.9.0-incubating-bin-hadoop1.tgz -C ~/local/opt

1.2 將tgz壓縮包scp到所有機器,解壓到相同的路徑

[email protected] $ scp spark-0.9.0-incubating-bin-hadoop1.tgz [email protected]
:~ [email protected] $ ssh worker01 [email protected] $ tar zxf spark-0.9.0-incubating-bin-hadoop1.tgz -C ~/local/opt [email protected] $ exit [email protected] $ scp spark-0.9.0-incubating-bin-hadoop1.tgz [email protected]:~ [email protected] $ ssh worker02 [email protected] $ tar zxf spark-0.9.0-incubating-bin-hadoop1.tgz -C ~/local/opt [email protected] $ exit

1.3 修改配置檔案

Spark 0.9 以後,配置檔案簡單多了,只有一個必須要配置,就是 conf/slaves 這個檔案。在這個檔案裡新增slave的hostname。

1.4 拷貝配置檔案到所有slave

[email protected] $ [email protected] $ scp ./conf/slaves [email protected]:~/local/opt/spark-0.9.0-incubating-bin-hadoop1/conf
[email protected] $ [email protected] $ scp ./conf/slaves [email protected]:~/local/opt/spark-0.9.0-incubating-bin-hadoop1/conf

1.5 啟動Spark叢集

[email protected] $ ./sbin/start-all.sh

也可以一臺一臺啟動,先啟動 master

[email protected] $ ./sbin/start-master.sh

啟動兩臺 slave,

[email protected] $ ./sbin/start-slave.sh 1 spark://master:7077
[email protected] $ ./sbin/start-slave.sh 2 spark://master:7077

其中,12 是 worker的編號,可以是任意數字,只要不重複即可,spark://master:7077 是 master 的地址。以後向叢集提交作業的時候,也需要這個地址。

1.6 測試一下,向叢集提交一個作業

[email protected] $ ./bin/run-example org.apache.spark.examples.SparkPi spark://master:7077

2 配置普通開發環境

TODO

3 配置Spark開發環境

當你需要修改Spark的程式碼,或給Spark新增程式碼,就需要閱讀本節了。

3.1 git clone 程式碼

git clone [email protected]:apache/incubator-spark.git

3.2 編譯

Spark指令碼會自動下載對應版本的sbt和scala編譯器,因此機器事先不需要安裝sbt和scala

按照 github 官方repo首頁的文件,輸入如下一行命令即可開始編譯,

./sbt/sbt assembly

3.3 執行一個例子

./run-example org.apache.spark.examples.SparkPi local

說明安裝成功了。

3.4 試用 spark shell

./spark-shell

會出現scala>提示符號,可見spark指令碼自動下載了scala編譯器,其實就是一個jar,例如scala-compiler-2.10.3.jar

3.5 安裝scala

開發Spark的時候,由於Intellij Idea 需要呼叫外部的sbt和scala,因此機器上還是需要安裝scala和sbt。

開啟 projects/SparkBuild.scala,搜尋scalaVersion,獲得spark所使用的scala編譯器版本,然後去scala官網http://www.scala-lang.org/,下載該版本的scala編譯器,並設定SCALA_HOME環境變數,將bin目錄加入PATH。例如下載scala-2.10.3.tgz,解壓到/opt,設定環境變數如下:

sudo vim /etc/profile
export SCALA_HOME=/opt/scala-2.10.3
export PATH=$PATH:$SCALA_HOME/bin

3.6 安裝sbt

開啟projects/build.properties,可以看到spark所使用的sbt版本號,去 官網http://www.scala-sbt.org/下載該版本的sbt,雙擊安裝。並設定SBT_HOME環境變數,將bin目錄加入PATH。

3.7 下載並安裝idea

Spark核心團隊的hashjoin曾在我部落格上留言,說他們都使用idea在開發spark,我用過Scala IDE和idea,兩者各有優劣,總的來說,idea要好用一些,雖然我是老牌eclipse使用者,但我還是轉向了idea。

去idea官網下載idea的tar.gz包,解壓就行。執行idea,安裝scala外掛。

3.8 生成idea專案檔案

在原始碼根目錄,使用如下命令

./sbt/sbt gen-idea

就生成了idea專案檔案。

3.9 Open Project

使用 idea,點選File->Open project,瀏覽到 incubator-spark資料夾,開啟專案,就可以修改Spark程式碼了。

spark版本:spark-0.9.1-bin-hadoop2  下載地址http://spark.apache.org/downloads.html
這裡的spark有三個版本:

    For Hadoop 1 (HDP1, CDH3): find an Apache mirror or direct file download
    For CDH4: find an Apache mirror or direct file download
    For Hadoop 2 (HDP2, CDH5): find an Apache mirror or direct file download
我的hadoop版本是hadoop2.2.0的,所以下載的是for hadoop2

關於spark的介紹可以參看http://spark.apache.org/
Apache Spark is a fast and general engine for large-scale data processing. 

spark執行時需要scala環境,這裡下載最新版本的scala  http://www.scala-lang.org/

scala是一種可伸縮的語言是一種多正規化的程式語言,一種類似java的程式設計,設計初衷是要整合面向物件程式設計和函數語言程式設計的各種特性。Scala是在JVM上執行,Scala是一種純粹的面向物件程式語言,而又無縫地結合了命令式和函式式的程式設計風格


ok 開始配置spark:

我是在hadoop的安裝使用者下面安裝的,所以這裡直接編輯/home/hadoop/.bashrc

[[email protected] ~]$ cat .bashrc 
# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi


# User specific aliases and functions
export HADOOP_HOME=/home/hadoop/hadoop
export HBASE_HOME=/home/hadoop/hbase
export HIVE_HOME=/home/hadoop/hive
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_HOME=/etc/home/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
export SCALA_HOME=/home/hadoop/scala
export SPARK_HOME=/home/hadoop/spark

export PATH=${PATH}:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/bin:$HIVE_HOME/bin:$SCALA_HOME/bin:$SPARK_HOME/bin
export CLASSPATH=$CLASSPATH:$HADOOP/lib:$HBASE_HOME/lib

1.scala安裝:
將scala解壓到hadoop根目錄下 
ln -ls scala-2.11.0 scala#建立軟連結 
lrwxrwxrwx.  1 hadoop hadoop        12 May 21 09:15 scala -> scala-2.11.0
drwxrwxr-x.  6 hadoop hadoop      4096 Apr 17 16:10 scala-2.11.0

編輯.bashrc  加入  export SCALA_HOME=/home/hadoop/scala
export PATH=${PATH}:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/bin:$HIVE_HOME/bin:$SCALA_HOME/bin:$SPARK_HOME/bin
儲存 並使環境變數生效  source  .bashrc  
驗證安裝:
[[email protected] ~]$ scala -version
Scala code runner version 2.11.0 -- Copyright 2002-2013, LAMP/EPFL
能夠正常顯示版本說明安裝成功

2:spark配置:
tar -xzvf  spark-0.9.1-bin-hadoop2.tgz
ln -s spark-0.9.1-bin-hadoop2 spark
然後配置.bashrc  
export SPARK_HOME=/home/hadoop/spark
export PATH=${PATH}:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/bin:$HIVE_HOME/bin:$SCALA_HOME/bin:$SPARK_HOME/bin

編輯完成source .bashrc 使環境變數生效

spark-env.sh配置:
spark-env.sh是不存在的 需要從 cat spark-env.sh.template >> spark-env.sh 生成

然後編輯spark-env.sh

加入一下內容
export SCALA_HOME=/home/hadoop/scala
export JAVA_HOME=/usr/java/jdk
export SPARK_MASTER=localhost
export SPARK_LOCAL_IP=localhost
export HADOOP_HOME=/home/hadoop/hadoop
export SPARK_HOME=/home/hadoop/spark
export SPARK_LIBARY_PATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$HADOOP_HOME/lib/native
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop

儲存退出

3.啟動spark
跟hadoop的目錄結構相似 在spark下面的sbin裡邊放了啟動和關閉的shell檔案
-rwxrwxr-x. 1 hadoop hadoop 2504 Mar 27 13:44 slaves.sh
-rwxrwxr-x. 1 hadoop hadoop 1403 Mar 27 13:44 spark-config.sh
-rwxrwxr-x. 1 hadoop hadoop 4503 Mar 27 13:44 spark-daemon.sh
-rwxrwxr-x. 1 hadoop hadoop 1176 Mar 27 13:44 spark-daemons.sh
-rwxrwxr-x. 1 hadoop hadoop  965 Mar 27 13:44 spark-executor
-rwxrwxr-x. 1 hadoop hadoop 1263 Mar 27 13:44 start-all.sh
-rwxrwxr-x. 1 hadoop hadoop 2384 Mar 27 13:44 start-master.sh
-rwxrwxr-x. 1 hadoop hadoop 1520 Mar 27 13:44 start-slave.sh
-rwxrwxr-x. 1 hadoop hadoop 2258 Mar 27 13:44 start-slaves.sh
-rwxrwxr-x. 1 hadoop hadoop 1047 Mar 27 13:44 stop-all.sh
-rwxrwxr-x. 1 hadoop hadoop 1124 Mar 27 13:44 stop-master.sh
-rwxrwxr-x. 1 hadoop hadoop 1427 Mar 27 13:44 stop-slaves.sh
[[email protected] sbin]$ pwd
/home/hadoop/spark/sbin

這裡只需要執行start-all就可以了~~~
[[email protected] sbin]$ ./start-all.sh 
rsync from localhost
rsync: change_dir "/home/hadoop/spark-0.9.1-bin-hadoop2/sbin/localhost" failed: No such file or directory (2)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1039) [sender=3.0.6]
starting org.apache.spark.deploy.master.Master, logging to /home/hadoop/spark/logs/spark-hadoop-org.apache.spark.deploy.master.Master-1-localhost.out
localhost: rsync from localhost
localhost: rsync: change_dir "/home/hadoop/spark-0.9.1-bin-hadoop2/localhost" failed: No such file or directory (2)
localhost: rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1039) [sender=3.0.6]
localhost: starting org.apache.spark.deploy.worker.Worker, logging to /home/hadoop/spark/logs/spark-hadoop-org.apache.spark.deploy.worker.Worker-1-localhost.out

通過jps檢視啟動是否成功:
[[email protected] sbin]$ jps
4706 Jps
3692 DataNode
3876 SecondaryNameNode
4637 Worker
4137 NodeManager
4517 Master
4026 ResourceManager
3587 NameNode

可以看到有一個Master跟Worker程序 說明啟動成功
可以通過http://localhost:8080/檢視spark叢集狀況

4 執行spark自帶的程式  
首先需要進入spark下面的bin目錄 :
[[email protected] sbin]$ ll ../bin/
total 56
-rw-rw-r--. 1 hadoop hadoop 2601 Mar 27 13:44 compute-classpath.cmd
-rwxrwxr-x. 1 hadoop hadoop 3330 Mar 27 13:44 compute-classpath.sh
-rwxrwxr-x. 1 hadoop hadoop 2070 Mar 27 13:44 pyspark

相關推薦

學習筆記:從0開始學習大資料-13. Eclipse+Scala+Maven Spark開發環境配置

上節配置好了spark執行環境,可以通過 spark-shell  在scala語言介面互動執行spark命令 可以參照( https://blog.csdn.net/u010285974/article/details/81840413   Spark-shell執行計算)

Spark開發環境配置(windows/Intellij IDEA 篇)

Intellij IDEA是一個蠻不錯的IDE,在java/scala/Groovy領域深得人心。筆者之前使用的是Eclipse那一套開發環境,雖然也不錯,但忍不住好奇心的驅使,折騰了一下IDEA,發現寫起Spark程式來,“哎呦,不錯喲!”,故總結一下在windows系

Spark教程(3)-開發環境配置及單詞計數

1.開發環境準備 安裝scala windows下安裝scala-2.11.8 jdk jdk版本為1.8 安裝eclipse-scala外掛 下載eclipse開發scala的外掛,也可以下載scala專用的eclipse版本. 建立mave

Spark本地開發環境配置(windows/Intellij IDEA 篇)

前言 Intellij IDEA是一個蠻不錯的IDE,在java/scala領域深得人心。筆者之前使用的是Eclipse那一套開發環境,雖然也不錯,但忍不住好奇心的驅使,折騰了一下IDEA,將自己摸索過程總結一下,方便Spark愛好者參考。 1.配置前提 J

idea配置spark開發環境時產生的錯誤總結

錯誤一 null>bin>winutils.exe not found 這種情況下只是需要winutils.exe檔案即可,不需要下載所有hadoop winutils.exe下載連結 然後放在hadoop/bin資料夾下,環境變數加上HAD

eclipse配置spark開發環境

前言   無論Windows 或Linux 作業系統,構建Spark 開發環境的思路一致,基於Eclipse 或Idea,通過Java、Scala 或Python 語言進行開發。安裝之前需要提前準備好JDK、Scala 或Python 環境,然後在Eclipse 中下載安裝Scala 或Python 外掛(

Mac上配置maven+eclipse+spark開發環境

1、安裝jdk 2、下載scala-ide。官網:http://scala-ide.org 3、安裝maven 4、在eclipse中,配置maven的安裝了路徑。偏好設定--->maven--->installpath 5、修改maven的映象檔案,即sett

spark+hive win7開發環境配置

  典型配置: spark在linux中以standalone方式執行,配置引數如下:“spark-env配置引數 ”。在windows idea中編輯程式碼,執行driver,連線遠端master,執行程式,可同步執行檢視日誌,可單步除錯如果連線hive需要在本機

Spark開發環境配置

軟體版本:Spark 0.9 配置Spark開發環境,其實分為三個層次,一種是針對運維人員,把Spark安裝部署到叢集;一種是針對普通開發者,引入Spark的jar包,呼叫Spark提供的介面,編寫分散式程式,寫好後編譯成jar,就可以提交到Spark叢集去運行了;第三

Laravel for Windows 開發環境配置

let osi host func replace sys 模型 _id span 本文為CSDN Choris 原創,轉載請事先征得作者同意,以示尊重! 原文:http://blog.csdn.net/choris/article/details/50215835 L

Hibernate單表映射學習筆記之一——hibernalnate開發環境配置

pass ransac over 構造方法 參數 會話 signed rate ets   1、什麽是ORM?   Object/Relationship Mapping:對象/關系映射   2、寫SQL語句不好之處:   (1)不同數據庫使用的SQL語法不同(PL/

eclipse開發環境配置

開發 技術分享 clip nbsp logs image ima png 十六進制 ## 調試時,字節十六進制顯示 ------------------------------------------------------ eclipse開發環境配置

二維碼解碼器Zbar+VS2010開發環境配置(使用opencv庫)

nbsp () imread cfg 如何配置 lib eight ann dev Zbar條碼解碼器是一個開源的二維碼(包括條形碼)解碼器,可以識別來至於視頻流,圖像文件、手持掃碼器和視頻設備(如攝像頭)等二維碼識別,支持EAN-13/UPC-A, UPC-E, EAN-

Java 開發環境配置

右擊 通過 too 創建 read 所在 list 內容 自定義 其實大多數人都知道怎麽配置但是卻不懂什麽原理 下面這個教程就給了詳細步驟和解釋 原文來源菜鳥教程 Java 開發環境配置 在本章節中我們將為大家介紹如何搭建Java開發環境。 window系統安

Kinect開發筆記之三Kinect開發環境配置具體解釋

pc2 1.0 微軟 .aspx 技術分享 連接 實驗 family 不同 0、前言: 首先說一下我的開發環境,Visual Studio是2013的,系統是win8的64位版本號,SDK是Kinect for windows

Java開發環境配置

電腦 bin ava 配置步驟 設置 高級 選中 開發環境 系統 具體配置步驟如下: 找到自己的 jdk 安裝路徑,如:C:\java\jdk1.7.0_60\bin 右擊桌面的“我的電腦”,選擇“屬性”。 選中“高級系統設置”——》高級——》環境變量設置。 在系統變量中

OpenCV2.4.13+VS2013開發環境配置

highgui sta 應用程序 應用 per 系統變量 err c++ free 1、給系統變量配置path:添加:D:\opencv2_4_13\opencv\build\x86\vc12\bin 2、給用戶變量添加opencv變量,值D:\opencv2_4_13\

WIN10下java8的開發環境配置

java win10 環境變量WIN10下java8的開發環境配置一.開發環境配置 1.在官網上下載jdk-8u111-windows-x64.exe 註:jdk1.7下載地址 2.運行安裝包,可以自定義安裝路徑 3.進入環境變量設置: 計算機右鍵-->屬性-->高級系統設置-->環境變量

PHP 開發環境配置:WampServer+ZendStudio+XDebug

補丁 其中 找到 admin end pac amp 鼠標 選項 前言 一開始我在另一篇Blog中寫的是WampServer+Nodepad++,當時的考慮是IDE占用空間太多,而且可能配置比較復雜,所以選擇的是Nodepad++。但現在因為任務漸長,代碼量多了起來,需要

Intellij Idea搭建Spark開發環境

submit split des 出現 license tor lan jar word 在Spark高速入門指南 – Spark安裝與基礎使用中介紹了Spark的安裝與配置。在那裏還介紹了使用spark-submit提交應用。只是不能使用vim來開發Spark應用