本文首發於我的個人博客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.sh
和sbin/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-shell
、pyspark
、spark-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即可。