Spark1.3.0安装
之前在用Hadoop寫ML算法的時候就隱約感覺Hadoop實在是不適合ML這些比較復雜的算法。記得當時寫完kmeans后,發(fā)現(xiàn)每個job完成后都需要將結果放在HDFS中,然后下次迭代的時候再從文件中讀取,對于kmeans這種高迭代的算法,感覺Hadoop的瓶頸會出現(xiàn)在IO上,后來又寫了個Naive?bayes,這種非常簡單的算法,用Hadoop寫,由于只有一種mapreduce范式,完全感覺到力不從心,為了處理這些簡單的格式,總共用了4個mapreduce才完成,哭了。后面的logistics?Regress等等只會讓Hadoop更加難堪。
之前一直聽spark如何虐Hadoop,但是舍友說spark只是因為在內(nèi)存上跑,必然玩爆Hadoop,所以當時潛意識認為spark是內(nèi)存版的Hadoop,昨天無意中看到關于spark的RDD的論文,感覺spark很適合寫ML,并且性能比Hadoop好也并不全是因為在內(nèi)存上跑,他所解決的問題剛好也是我在寫Hadoop時候不想遇到的問題。同時spark最近這段時間這么火爆,沒有理由不嘗試下。
總的來說安裝spark是比較簡單的,可能是因為之前已經(jīng)裝了Hadoop。
由于我已經(jīng)裝了Hadoop2.4了,所以下了spark-1.3.0-bin-hadoop2.4。安裝spark還需要有jdk,python,scala。因為裝Hadoop的時候已經(jīng)裝了jdk和python了,所以只介紹下安裝scala和spark
1?安裝scala
下載scala-2.10.5
將其放置你的某個目錄下,我這里是/home/Scala
接著解壓縮?
tar?-xvzf?scala-2.10.5.tgz
接著就是添加路徑名
vi?/etc/profile
增加兩行
export?SCALA_HOME=/home/Scala/scala-2.10.5
export?PATH=$PATH:$SCALA_HOME/bin
接著便是立即生效
source?/etc/profile
驗證方式和java很像
scala?-version
如果正確安裝了,就會出現(xiàn)
Scala?code?runner?version?2.10.5?--Copyright?2002-2013等信息
接著就可以將scala拷貝到另外幾個節(jié)點上,我這里是兩個節(jié)點,并且記得修改對應節(jié)點的profile文件
安裝spark
同理,下載spark-1.3.0-bin-hadoop2.4。這里的Hadoop是根據(jù)你機子上的Hadoop版本來的,目前最新的spark版本是1.4,相比1.3最明顯的就是增加了對R語言的支持,由于目前還用不到R,加之實驗室機房不讓用外網(wǎng),安裝R語言又比較麻煩,所以下載1.3.0了。
將spark-1.3.0-bin-hadoop2.4放置到你的某個目錄下。例如我這里是/home/Spark/
解壓縮
tar?-xvzf?spark-1.3.0-bin-hadoop2.4.tgz
接著是增加路徑
vi?/etc/profile
export?SPARK_HOME=/home/Spark/spark-1.3.0-bin-hadoop2.4
export?PATH=$PATH:$SPARK_HOME/bin
然后令其生效
source?/etc/profile
接著是修改配置文件
1?添加從節(jié)點IP
vi?slaves
我這里添加了兩個節(jié)點
10.107.8.110
10.107.8.120
2
修改spark的環(huán)境,主要是jdk,scala以及Hadoop的路徑,master的IP
添加:
export?JAVA_HOME=(你自己的jdk路徑,如果不清楚可以在shell中打$JAVA_HOME)
export?SCALA_HOME=(你的scala路徑)
export?SPARK_MASTER_IP=(master的hostname)
export?SPARK_WORKER_MEMORY=4g(這個具體看你節(jié)點的配置了)
export?HADOOP_CONF_DIR=(如果不清楚可以在shell打$HADOOP_CONF_DIR)
接著就是將spark復制到另外的節(jié)點上就好了。
如果一切順利,spark就算是安裝完了。
簡要驗證
1?在瀏覽器上輸入masterIP:8080例如我這里是http://10.107.8.110:8080/
會出現(xiàn)各個worker的節(jié)點狀況
?
輸入http://10.107.8.110:4040則會出現(xiàn)spark的jobs
?
2?進入到spark下的bin目錄運行spark-shell
運行論文上的例子
我們先把一段文件放到HDFS中
hadoop?fs?-copyFromLocal?/home/sunrye/words.txt?hdfs://10.107.8.110:9000/spark_test/
接著運行?
var?lines=sv.textFile(“hdfs://10.107.8.110:9000/sprak_test/words.txt”)
?
此時相當于生成了一個RDD,接著就可以在RDD上實現(xiàn)各自action了,例如我們統(tǒng)計他的字數(shù)就可以
lines.count()
?
當然可也可查詢某個關鍵字的字數(shù),例如
lines.filter(_.contains(“the”)).count()
?
轉(zhuǎn)載于:https://www.cnblogs.com/sunrye/p/4586283.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的Spark1.3.0安装的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js方法的声明与调用
- 下一篇: js定时器、高亮修改单元格背景色