spark單機運行部署
環境預裝
需要預先下載jdk和spark。機器使用centos6.6(推薦)。然后依次運行
[root@spark-master root]# cd /root
#安裝必要的軟件
[root@spark-master root]# yum install -y tar git curl wget
#下載jdk
[root@spark-master root]# wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u91-b14/jdk-8u91-linux-x64.rpm
#安裝jdk
[root@spark-master root]# rpm -ivh jdk-8u91-linux-x64.rpm
#下載spark
[root@spark-master root]# wget http://mirrors.hust.edu.cn/apache/spark/spark-1.6.2/spark-1.6.2-bin-hadoop2.6.tgz
#解壓spark
[root@spark-master root]# tar xzvf spark-1.6.2-bin-hadoop2.6.tgz
配置
- 關閉selinux。
setenfore 0
。 - 通過
hostname
查看機器名,然后加入到/etc/hosts
中。 - 配置
/etc/profile
。在文件最后添加export JAVA_HOME=/usr/java/jdk1.8.0_91
。然后運行source /etc/profile
使其生效。
運行spark服務
啟動spark master服務
[root@spark-master root]# cd /root/spark-1.6.2-bin-hadoop2.6
[root@spark-master spark-1.6.2-bin-hadoop2.6]# ./sbin/start-master.sh
啟動spark node服務
[root@spark-master root]# cd /root/spark-1.6.2-bin-hadoop2.6
[root@spark-master spark-1.6.2-bin-hadoop2.6]# ./sbin/start-slave.sh spark://node1:7077
node1為機器名。根據實際的機器名進行修改。
spark樣例運行
通過pyspark進行運算
這里以統計/etc/profile
的行數為例。
[root@spark-master root]# cd /root/spark-1.6.2-bin-hadoop2.6/bin
[root@spark-master bin]# ./pyspark --master local[2]
# 導入數據
>>> distFile = sc.textFile("/etc/profile")
# 統計行數
>>> distFile.count()
這里local[2]
代表了在本地啟動兩個線程模擬node進行計算。如果搭建完成了本地的搭建,即可以使用./pyspark --master spark://node1:7077
,從而使用本地的node進行計算。
任務提交
pyspark是使用交互的方式進行提交任務。當然也可以通過spark-submit
進行提交。
首先創建test.py文件,文件內容如下:
from pyspark import SparkContext
sc = SparkContext("local", "Simple App")
distFile = sc.textFile("/etc/profile")
print distFile.count()
使用spark-submit
提交任務。
[root@spark-master root]# cd /root/spark-1.6.2-bin-hadoop2.6
[root@spark-master spark-1.6.2-bin-hadoop2.6]# ./bin/spark-submit --master local[2] test.py