Spark的安裝及配置過程(linux完全分佈式)

Spark是一個基於內存的通用並行計算框架,目的是讓數據分析更加快速

Spark+Hadoop的組合,纔是未來大數據領域最熱門的組合,也是最有前景的組合!

1.安裝spark

1.1下載Spark安裝包:

Download Spark: spark-2.1.1-bin-hadoop2.6.tgz
下載地址:http://spark.apache.org/downloads.html

1.2解壓:

[root@node01 opt]# tar -zxvf  /opt/soft/spark-1.6.2-bin-hadoop2.6.tgz -C /opt/

1.3重命名

[root@node01 opt]# mv spark-1.6.2-bin-hadoop2.6/ spark

1.4添加到環境變量

export SPARK_HOME=/opt/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin

1.5環境變量生效

[root@node01 opt]# source /etc/profile.d/hadoop-etc.sh

1.6驗證Spark

[root@node01 opt]# spark-shell

1.6.1退出spark shell

scala> :quit

1.7查看進程

[root@node01 jars]# jps

2566 Jps
2446 SparkSubmit
說明:spark-shell 就是一個SparkSubmi的進程,spark-shell是利用了本地的線程來模擬運行的,並沒有利用到spark集羣。

Spark context available as ‘sc’ (master = local[], app id = local-1524607793612).
local[
]:指開啓多少個線程數,默認一個線程

2、配置

Linux完全分佈式(Standalone)

2.1 spark-env.sh

1.cd /opt/spark/conf
2.cp spark-env.sh.template spark-env.sh
3.vim spark-env.sh
export JAVA_HOME=/opt/jdk
export SCALA_HOME=/opt/scala	
export SPARK_MASTER_IP=node01
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_CORES=1
export SPARK_WORKER_INSTANCES=1
export SPARK_WORKER_MEMORY=1g
export HADOOP_CONF_DIR=/opt/hadoop/etc/hadoop

2.2 slaves

1. cp slaves.template slaves
2. vim slaves
node02
node03

2.3 分發到其他節點

  1. 部署到node02和node03這兩臺機器上(這兩臺機器需要提前安裝scala)

scp -r /opt/spark root@node02:/opt
scp -r /opt/spark root@node03:/opt

scp /etc/profile.d/hadoop-etc.sh root@node02:/etc/profile.d/
source /etc/profile.d/hadoop-etc.sh root@node02:/etc/profile.d/
scp /etc/profile.d/hadoop-etc.sh root@node03:/etc/profile.d/
source /etc/profile.d/hadoop-etc.sh root@node02:/etc/profile.d/

2.4 啓動

爲了避免和hadoop中的start/stop-all.sh腳本發生衝突,將spark/sbin/start/stop-all.sh重命名

[root@node01 sbin]#  mv start-all.sh start-spark-all.sh
[root@node01 sbin]#  mv stop-all.sh stop-spark-all.sh

啓動:

[root@node01 sbin]# start-spark-all.sh

會在我們配置的主節點master上啓動一個進程Master
會在我們配置的從節點node02上啓動一個進程Worker
會在我們配置的從節點node03上啓動一個進程Worker

單獨啓動Master或者Worker
start-master.sh 或者start-slaves.sh
啓動之後,master將會打印spark://HOST:PORT。你可以通過它連接workers,或者向SparkContext傳遞"master"參數。你也可以通過master的WEB UI來找到它

2.5 驗證

scala>sc.textFile("hdfs://ns1/input/spark/wordcount.txt").flatMap(_.split("")).map((_, 1)).reduceByKey(_+_).collect.foreach(println)

我們發現spark非常快速的執行了這個程序,計算出我們想要的結果

2.6 端口

8080–>spark集羣的訪問端口,類似於hadoop中的50070和8080的綜合
4040–>sparkUI的訪問地址 應用級別的界面,一個應用對應一個
7077–>hadoop中的9000端口

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章