1、安裝依賴軟件Scala(全部節點)java
一、下載Scala:http://www.scala-lang.org/files/archive/scala-2.10.4.tgzweb
二、解壓:shell
[root@Hadoop-NN-01 ~]# tar -xzvf scala-2.10.4.tgz -C /usr/local/
三、配置scala環境變量apache
[root@Hadoop-NN-01 ~]# vim /etc/profile
export SCALA_HOME=/usr/local/scala export PATH=$PATH:${SCALA_HOME}/bin [root@Hadoop-NN-01 ~]# source /etc/profile #使環境變量生效
四、測試scala運行環境vim
[root@Hadoop-NN-01 scala]# scala
scala> 15*15 res0: Int = 225
2、安裝sparkapi
一、下載spark:http://archive.cloudera.com/cdh5/cdh/5/spark-1.5.0-cdh5.6.0.tar.gz瀏覽器
理論上講CDH的一套是沒有問題,但是我裝了三個版本都沒有裝成功,啓動的時候始終一個錯:Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/Logger分佈式
提示缺乏slf4j依賴包:log4j-1.2.17.jar、 slf4j-api-1.7.10.jar、 slf4j-log4j12-1.7.10.jaroop
可我將這三個包放到lib下依然不行,最後只能下載的官方的安裝。若是有朋友知道原諒還請留言,謝謝!測試
引用【書憶江南】的回覆:
#CDH版的Spark安裝目錄下的/conf/spark-env.sh配置文件中,添加如下環境變量:export SPARK_DIST_CLASSPATH=(/mnt/sda6/Hadoop/hadoop−2.6.0−cdh5.15.0/bin/hadoopclasspath),給這個變量添加你已經安裝的CDHHadoop的類路徑,我看到別的教程說等號後面能夠直接(/mnt/sda6/Hadoop/hadoop−2.6.0−cdh5.15.0/bin/hadoopclasspath),給這個變量添加你已經安裝的CDHHadoop的類路徑,我看到別的教程說等號後面能夠直接(hadoop classpath),我試過,這樣只能啓動Master,啓動Worker進程的時候仍是會報缺Logger的錯。因此,必需要在括號內寫全CDH Hadoop的安裝路徑精確到/bin,而後再斜槓接上hadoop classpath才行。 export SPARK_DIST_CLASSPATH=$(/mnt/sda6/Hadoop/hadoop-2.6.0-cdh5.15.0/bin/hadoop classpath)
官方下載:http://www.apache.org/dyn/closer.lua/spark/spark-1.6.0/spark-1.6.0-bin-hadoop2.6.tgz
二、解壓:
[root@Hadoop-NN-01 ~]# tar xzvf spark-1.6.0-bin-hadoop2.6.tgz
三、配置Spark環境變量
[root@Hadoop-NN-01 ~]# vim /etc/profile
export SPARK_HOME=/home/hadoopuser/spark-1.6.0-bin-hadoop2.6 export PATH=$PATH:${SPARK_HOME}/bin [root@Hadoop-NN-01 ~]# source /etc/profile #使環境變量生效
四、配置 ${SPARK_HOME}/conf/spark-env.sh
[hadoopuser@Hadoop-NN-01 conf]$ cp spark-env.sh.template spark-env.sh [hadoopuser@Hadoop-NN-01 conf]$ vim spark-env.sh export JAVA_HOME=/usr/java/jdk1.8.0_73 export SCALA_HOME=/usr/local/scala export HADOOP_HOME=/home/hadoopuser/hadoop-2.6.0-cdh5.6.0 export HADOOP_CONF_DIR=/home/hadoopuser/hadoop-2.6.0-cdh5.6.0/etc/hadoop
export SPARK_MASTER_IP=192.168.107.82 export SPARK_MASTER_PORT=8070 export SPARK_MASTER_WEBUI_PORT=8090
export SPARK_WORKER_CORES=1 #每一個Worker使用的CPU核數 export SPARK_WORKER_INSTANCES=1 #每一個Slave中啓動幾個Worker實例 export SPARK_WORKER_PORT=8092 #Worker的WebUI端口號 export SPARK_WORKER_MEMORY=1g #每一個Worker使用多大的內存
其它參數:
SPARK_MASTER_IP |
綁定一個外部IP給master。 |
SPARK_MASTER_PORT |
從另一個端口啓動master(默認: 7077) |
SPARK_MASTER_WEBUI_PORT |
Master的web UI端口(默認:8080) |
SPARK_WORKER_PORT |
啓動Spark worker 的專用端口(默認:隨機) |
SPARK_WORKER_DIR |
伸縮空間和日誌輸入的目錄路徑(默認:SPARK_HOME/work) |
SPARK_WORKER_CORES |
做業可用的CPU內核數量(默認:全部可用的) |
SPARK_WORKER_MEMORY |
做業可以使用的內存容量,默認格式1000M或者 2G (默認:全部RAM去掉給操做系統用的1 GB)注意:每一個做業本身的內存空間由SPARK_MEM決定。 |
SPARK_WORKER_WEBUI_PORT |
worker 的web UI 啓動端口(默認:8081) |
SPARK_WORKER_INSTANCES |
每一個機器上運行worker數量(默認:1)當你有一個很是強大的計算機的時候和須要多個Spark worker進程的時候你能夠修改這個默認值大於1。若是你設置了這個值。要確保SPARK_WORKER_CORE 明確限制每個r worker的核心數,不然每一個worker 將嘗試使用全部的核心。 |
SPARK_DAEMON_MEMORY |
分配給Spark master和 worker 守護進程的內存空間(默認:512m) |
SPARK_DAEMON_JAVA_OPTS |
Spark master 和 worker守護進程的JVM 選項(默認:none) |
五、配置 {SPARK_HOME}/conf/ slaves
[hadoopuser@Hadoop-NN-01 conf]$ cp slaves.template slaves [hadoopuser@Hadoop-NN-01 conf]$ vim slaves #注意這裏添加全部工做節點的主機名或者ip #Hadoop-NN-01(若是既想當master又想當worker的話,能夠配置上。)
Hadoop-DN-01 Hadoop-DN-02
六、程序分發
scp -r spark-1.6.0-bin-hadoop2.6. hadoopuser@Hadoop-DN-01:/home/hadoopuser/ scp -r spark-1.6.0-bin-hadoop2.6. hadoopuser@Hadoop-DN-02:/home/hadoopuser/
七、啓動spark集羣
[hadoopuser@Hadoop-NN-01 sbin]# ./start-all.sh
單節點啓動:
sbin/start-master.sh #啓動主節點
sbin/start-slave.sh 192.168.107.82:8070 #啓動從節點
八、運行示例程序
[hadoopuser@Hadoop-NN-01 spark-1.6.0-bin-hadoop2.6.]# ./bin/run-example SparkPi 10 > Sparkpilog.txt
九、驗證
1)jps
主節點多了Master
從節點多了Worker
2)瀏覽器查看http://192.168.107.82:8090/
十、使用spark-shell
[hadoopuser@Hadoop-NN-01 spark-1.5.0-cdh5.6.0]# bin/spark-shell
瀏覽器訪問SparkUI http:// 192.168.107.82:4040/
能夠從 SparkUI 上查看一些 如環境變量、Job、Executor等信息。
至此,整個 Spark 分佈式集羣的搭建就到這裏結束。
十一、中止spark集羣
[hadoopuser@Hadoop-NN-01 sbin]# ./stop-all.sh