1 相關介紹
jupyter notebook是一個Web應用程序,允許你創建和分享,包含活的代碼,方程的文件,可視化和解釋性文字。用途包括:數據的清洗和轉換、數值模擬、統計建模、機器學習和更多。支持40多中語言。python ,R,go,scala等。
Spark是UC Berkeley AMP lab所開源的類Hadoop MapReduce的通用並行框架,Spark,擁有Hadoop MapReduce所具有的優點;但不同於MapReduce的是Job中間輸出結果可以保存在內存中,從而不再需要讀寫HDFS,因此Spark能更好地適用於數據挖掘與機器學習等需要迭代的MapReduce的算法。
Spark 是一種與 Hadoop 相似的開源集群計算環境,但是兩者之間還存在一些不同之處,這些有用的不同之處使 Spark 在某些工作負載方面表現得更加優越,換句話說,Spark 啟用了內存分布數據集,除了能夠提供交互式查詢外,它還可以優化迭代工作負載。
Spark 是在 Scala 語言中實現的,它將 Scala 用作其應用程序框架。與 Hadoop 不同,Spark 和 Scala 能夠緊密集成,其中的 Scala 可以像操作本地集合對象一樣輕松地操作分布式數據集。
盡管創建 Spark 是為了支持分布式數據集上的迭代作業,但是實際上它是對 Hadoop 的補充,可以在 Hadoop 文件系統中並行運行。通過名為 Mesos 的第三方集群框架可以支持此行為。Spark 由加州大學伯克利分校 AMP 實驗室 (Algorithms, Machines, and People Lab) 開發,可用來構建大型的、低延遲的數據分析應用程序。
大致了解后,就開始看看怎么搭建這樣一個集成的環境吧。
2 安裝步驟
安裝之前保證環境有java環境。輸入命令java -version和javac驗證
2.1 安裝anaconda
anacnda帶有ipython和jupyter notebook
下載完成后是一個.sh文件。執行bash Anaconda2-4.1.0-Linux-x86_64.sh
進行安裝。默認的安裝路徑是/User/anaconda2/,當然也可以修改安裝目錄。
安裝完成后添加相應的PATH路徑。
jupyter kernelspec list
查看jupyter已經安裝的kernel有
jupyter notebook --ip=125.65.45.180 --no-browser
開啟jupyter notebook服務,ip一般指定機器自己的ip。端口默認情況下是8888或者8889,我這里是8889。也可以自己指定。
開啟后在browser輸入 http://testland.orientsoft.cn:8889/tree#
機器名稱換成自己指定的ip
會出現頁面
說明jupyter notebook安裝完成
2.2 安裝scala kernel
解壓
xz -d jupyter-scala_2.10.5-0.2.0-SNAPSHOT.tar.xz
tar xvf jupyter-scala_2.10.5-0.2.0-SNAPSHOT.tar
安裝
cd jupyter-scala_2.10.5-0.2.0-SNAPSHOT/bin
chmod u+x jupyter-scala
bash jupyter-scala
完成后會生成一個文件。這里請注意。后面配置hi會用到
Generated /home/student/.ipython/kernels/scala210/kernel.json
驗證
jupyter kernelspec list
說明scala kernel安裝完成
2.3 安裝spark
解壓
tar xvf spark-1.5.1-bin-hadoop2.6.tgz
加壓后需要設置一個環境變量
在你相應的/user/.bash_rc中添加
export SPARK_HOME="..../spark-1.5.1-bin-hadoop2.6:$PATH"
即添加你解壓spark后的目錄。
2.4 將spark(python版)環境加入python notebook。
在目錄$user/.ipython/profile_spark/startup下面新建notebook啟動文件00-first.py,文件內容如下:
import os
import sys
# Configure the environment
if 'SPARK_HOME' not in os.environ:
os.environ['SPARK_HOME'] = '/home/student/wp/envi/spark-1.5.1-bin-hadoop2.6'
# Create a variable for our root path
SPARK_HOME = os.environ['SPARK_HOME']
# Add the PySpark/py4j to the Python Path
sys.path.insert(0, os.path.join(SPARK_HOME, "python", "build"))
sys.path.insert(0, os.path.join(SPARK_HOME, "python"))
可以用此配置文件啟動notebook:
jupyter notebook --config=00-first.py --no-browser --ip=自己的ip。
這樣新建python文件就可以使用spark環境了。
以下主要是安裝scala版本的notebook spark
2.5 安裝sbt(simple build tools)
因為wget后的文件名稱過長,所以我的命令是:
wget -O sbt-0.13.11.tgz -b https://dl.bintray.com/sbt/native-packages/sbt/0.13.11/sbt-0.13.11.tgz
下載完成后,配置相關PATH路徑,命令sbt sbt-version
驗證。執行這個命令后,,就耐心等待吧,很久很久。。。。。。。因為要下載很多jar包。
出現
說明sbt安裝完成
2.6 下載incubator(編譯spark kernel)
git clone https://github.com/apache/incubator-toree.git
2.7 編譯spark kernel
注意使用incubator編譯spark kernel之前,請確保sbt正確安裝。
cd 到你解壓后的incubator-toree目錄。里面有Makefile文件
執行
make build
進行編譯(耐心等待吧,很久很久。最好去睡個午覺。。。。。。)
等到出現這個:
說明編譯成功
接下來: make dist
cd dis/toree/bin
記住這個run.sh路徑
cd到你的User/.ipython/kernels。如果這個目錄下面沒有spark,新建spark目錄,然后在spark目錄下面新建文件vim kernel.json
kernel.json內容為
{
"display_name": "Spark 1.5.1 (Scala 2.10.4)",
"lauguage_info": {"name": "scala"},
"argv": [
//這里改成你自己的目錄,就是上面的run.sh 的路徑
"/Users/zhangsan/anaconda3/incubator-toree/dist/toree/bin/run.sh",
"--profile",
"{connection_file}"
],
"codemirror_mode": "scala",
"env": {
"SPARK_OPTS": "--master=local[2] --driver-java-options=-Xms1024M --driver-java-options=-Xms4096M --driver-java-options=-Dlog4j.logLevel=info",
"MAX_INTERPRETER_THREADS": "16",
"CAPTURE_STANDARD_OUT": "true",
"CAPTURE_STANDARD_ERR": "true",
"SEND_EMPTY_OUTPUT": "false",
//這里改成你自己的目錄
"SPARK_HOME": "/Users/zhangsan/Documents/spark-1.5.1-bin-hadoop2.6",
//這里改成你自己的目錄
"PYTHONPATH": "/Users/zhangsan/Documents/spark-1.5.1-bin-hadoop2.6/python:/Users/zhangsan/Documents/spark-1.5.1-bin-hadoop2.6/python/lib/py4j-0.8.2.1-src.zip"
}
}
注意上面有3處需要改成你自己的目錄值。。
此時執行jupyter kernelspec list;
2.8開啟notebook服務
瀏覽器中:
到此基本完成全部安裝