spark特點及安裝調試

spark特點

1、快

與Hadoop的MapReduce相比,Spark基於內存的運算要快100倍以上,基於硬盤的運算也要快10倍以上。Apache Spark使用最先進的DAG調度程序,查詢優化器和物理執行引擎,實現批處理和流數據的高性能

2、便於使用

Spark支持Java、Python和Scala的API,還支持超過80種高級算法,使用戶可以快速構建不同的應用。還支持交互式的Scala,Python,R和SQL shell

3、通用

Spark提供了統一的解決方案。Spark可以用於批處理、交互式查詢(Spark SQL)、實時流處理(Spark Streaming)、機器學習(Spark MLlib)和圖計算(GraphX)。這些不同類型的處理都可以在同一個應用中無縫使用。

img

4、兼容

Spark可以非常方便地與其他的開源產品進行融合。比如,Spark可以使用Hadoop的YARN和Apache Mesos作爲它的資源管理和調度器,器,並且可以處理所有Hadoop支持的數據,包括HDFS、HBase和Cassandra等。

img

集羣安裝

首先是得明白怎麼選擇版本,包括怎麼選擇Hadoop版本,怎麼選擇Spark版本,Spark版本之間的差異是什麼,怎麼選擇 Scala,怎麼選擇Java

www.baidu.com(手動滑稽)

1、機器部署

準備兩臺安裝JDK的機器並配置環境變量、多臺機器互通互聯,免密登錄,時間同步,

2、下載Spark安裝包

穩定版及最新版http://spark.apache.org/downloads.html

舊版本http://spark.apache.org/news/index.html

3、解壓並安裝

上傳安裝包並解壓到指定目錄

tar -xvf  spark-2.2.0-bin-hadoop2.7.tar -C /usr/local

4、配置

進入Spark安裝目錄

cd /usr/local/spark-2.2.0-bin-hadoop2.7

進入conf目錄,重命名並修改spark-env.sh.template文件

cd conf
mv spark-env.sh.template spark-env.sh

配置spark-env.sh

vi spark-env.sh

添加一下配置

export JAVA_HOME=/usr/local/jdk1.8.0_181 //jdk路徑
export SPARK_MASTER_IP=centos1 //centos1爲自己的主機名
export SPARK_MASTER_PORT=7077

新建slaves文件

vi slaves

添加子節點所在位置(Workers)

centos2	//子機名
centos3	//子機名

5、文件分發

scp -r spark-2.2.0-bin-hadoop2.7/ centos2:$PWD	//修改以上任意一項都需重新分發
scp -r spark-2.2.0-bin-hadoop2.7/ centos3:$PWD

Spark集羣配置完畢

啓動

可以寫絕對路徑也可以配置到環境變量裏面,小編因爲有hadoop所以寫了覺得路徑

start-all.sh	//配置了環境變量使用
/usr/local/spark-2.2.0-bin-hadoop2.7/sbin/start-all.sh	/沒有配置環境變量

問題:如果環境變量沒問題,而啓動的時候總是需要絕對路徑才能正常啓動則應是主機上裝了hadoop,那麼這樣的話可以寫一個shell腳本來啓動Spark(shell腳本中寫絕對路徑)

執行jps查看,登錄Spark管理界面查看集羣狀態(主節點):http://centos1:8080

jps	//主節點上有Master進程,其他子節點上有Work進程

調試

執行一個spark程序

該算法是利用蒙特·卡羅算法求PI

./spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://centos1:7077 \	//填寫自己的主機名
/usr/local/spark-2.2.0-bin-hadoop2.7/examples/jars/spark-examples_2.11-2.2.0.jar 1000		//自己的spark-examplrs jar包,個版本不一樣

啓動spark shell

/usr/local/spark-1.6.1-bin-hadoop2.6/bin/spark-shell \
--master spark://centos1:7077 \	//指定Master的地址
--executor-memory 2g \	//指定每個worker可用內存
--total-executor-cores 2	//整個集羣使用的cpu核數
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章