浪潮集羣上使用Hadoop和Spark

本文首發於我的個人博客QIMING.INFO,轉載請帶上鍊接及署名。

忙活了半天,終於在實驗室的浪潮集羣中配置好了hadoop和spark,以後能用配置這麼高的服務器了,想想就好開心~

環境簡介

軟件版本

  • Hadoop版本號:2.7.4
  • Spark版本號:2.1.1

運行環境

部署於西北工業大學高性能計算中心的浪潮集羣服務器,master節點爲cu01,slaves節點爲cu02、cu03、cu04。

Hadoop安裝目錄爲/opt/software/hadoop/hadoop-2.7.4

Spark安裝目錄爲/opt/software/hadoop/spark-2.1.1

使用說明

登錄

可使用xshell等軟件用ssh方式連接到cu01(僅限西工大校園網內網,IP地址:202.***.***.29),登錄賬號:xuqm,密碼:********

啓動Hadoop

進入hadoop的安裝目錄,輸入sbin/start-dfs.sh,如圖:

之後可輸入hdfs dfsadmin -report查看節點狀態以確定是否啓動成功,如下圖:

所有節點都正常運行,表示啓動成功。也可進入網頁查看,地址:http://202.***.***.29:50070

啓動Spark

在本集羣中,要使用spark必須先啓動hadoop(即進行上一步2.2)。之後進入Spark的安裝目錄,通過輸入sbin/start-master.shsbin/start-slaves.sh來啓動spark的主、從節點:

在主節點上和從節點上輸入jps查看當前進程以確定是否啓動成功:

若觀察到主節點上有Master進程,從節點上有Worker進程,則表示啓動成功。

使用Hadoop

這裏演示一個hadoop自帶的詞頻統計的例子:

準備數據

創建一個文件,給其中寫入幾句話,並將此文件上傳至HDFS上。例如:

運行

進入hadoop的安裝目錄,輸入如下:

[xuqm@cu01 hadoop-2.7.4]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.4.jar wordcount /user/xuqm/hadoop_test/input /user/xuqm/hadoop_test/output

其中,wordcount是jar包中的一個類,後兩個參數分別爲原始數據的存放路徑和經處理後結果的存放路徑。

查看結果

查看存放結果的目錄,如下圖,發現有_SUCCESS文件,表示處理成功:

查看另一個文件的內容即爲最終結果:

使用Spark

正常運行完上述啓動步驟後,便可使用spark了。可以通過spark-shell(使用Scala語言)或pyspark(使用Python語言)進行交互式編程,或者使用spark-submit提交已寫好的程序到集羣上運行。需要注意的是,在執行上述命令時,需加上參數--master spark://cu01:7077,否則spark將會以local模式運行。

注:spark-shellpysparkspark-submit都在bin文件夾下

舉個例子:

再如,用submit提交運行一個ALS最小二乘法的推薦算法小例子(代碼詳見Spark MLlib中ALS交替最小二乘法推薦算法的使用),輸入:

[xuqm@cu01 spark-2.1.1]$ ./bin/spark-submit --master spark://cu01:7077 /home/xuqm/spark_mllib_test.jar

輸出如下:

可以進入網頁查看spark各節點的運行狀態,地址:http://202.***.***.29:8080/,在spark運行時,可進入http://202.***.***.29:4040/ 查看作業運行情況。

關閉

程序運行結束,關閉spark和hadoop時應按照一定順序,即和啓動順序相反:先關spark,再關hadoop。關閉方式和啓動方式類似,將對應的start都改爲stop即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章