2015年9月25日 星期五

Spark on Oracle RedHat5.8 Standalone cluster running 第一支程式

這次Spark的環境是在RedHat5.8,至Apache_Spark1.50_Hadoop2.6 download pre-built的版本
相關的建置請參考 Spark 離線安裝 on Ubuntu 只是這次是使用 RedHat環境 與 JDK版本為x64的
JDK download網址在 JAVA Download
需要的工作如下
(1)Set JAVA_HOME and Config Spark PATH
跟 Ubuntu一樣需要做,但是編輯不同檔案 請使用 vi ~/.bashrc,內容如下圖
(2)
在啟動 standalone cluster之前我發生了一件神奇的事,我把 Hostname改名成 Spark_RedHat58
修改的方式請參考 設定RedHat hostname,其它執行的步驟如前一篇教學 Spark Standalone Cluster
但是我的 Slave 卻一直無法 connect spark://Spark_RedHat58:7077 一直出現 invalid master uri
直至我把 Hostname改成 RedHat58才行,(Linux Hostname 無法support 底線)估計有可能是該cmd的 bug,因為在uri中出現2次 Spark的關係
#################################################################################
假定已經可以順利啟動了,那麼你的Master WebUI(理論上是8080 port,詳見logs)應該可以順利的觀察到你的worker了(如圖)
我在conf/spark_env.sh 設定為 instance 為 2
(3)
執行cmd  Master=spark://RedHat58:7077 spark-shell
(4)執行以下範例程式碼
/* throwing darts and examining coordinates */
val NUM_SAMPLES = 100000
val count = sc.parallelize(1 to NUM_SAMPLES).map{i =>
  val x = Math.random * 2 - 1
  val y = Math.random * 2 - 1
  if (x * x + y * y < 1) 1.0 else 0.0
}.reduce(_ + _)

println("Pi is roughly " + 4 * count / NUM_SAMPLES)

成功畫面如下
這其實就跟執行範例程式是一樣的喔! 此時回到你的WebUI你會發現,Running Application 的項目裡面已經有東西嘍^^" ,如果想了解更多可以切換到  4040 port 觀察更 detail的內容喔!




沒有留言:

張貼留言