国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Spark的云計(jì)算平臺在實(shí)驗(yàn)室的應(yīng)用與實(shí)現(xiàn)

2018-05-15 08:31張?zhí)裉?/span>孫紹華
軟件導(dǎo)刊 2018年4期
關(guān)鍵詞:云平臺數(shù)據(jù)處理

張?zhí)裉? 孫紹華

摘 要:隨著數(shù)據(jù)挖掘逐漸被應(yīng)用到金融、娛樂、商業(yè)和醫(yī)療等多個行業(yè),近年來涌現(xiàn)出各種用于處理海量數(shù)據(jù)的數(shù)據(jù)處理引擎,如MapReduce、Spark等。為了使高校實(shí)驗(yàn)室更深入地進(jìn)行數(shù)據(jù)挖掘領(lǐng)域的理論研究,簡要闡述分析了Spark技術(shù)及HDFS的概念與基本原理,詳細(xì)介紹了基于Spark的云計(jì)算平臺配置方法和實(shí)現(xiàn)過程,并對平臺搭建過程中遇到的問題進(jìn)行總結(jié)。實(shí)驗(yàn)結(jié)果證明,該平臺能夠有效完成分布式數(shù)據(jù)處理任務(wù)。

關(guān)鍵詞:Spark;HDFS;云平臺;數(shù)據(jù)處理

DOI:10.11907/rjdk.172906

中圖分類號:TP391

文獻(xiàn)標(biāo)識碼:A 文章編號:1672-7800(2018)004-0191-03

Abstract:In recent years, a variety of open source data processing engines are emerging such as MapReduce, Spark, etc., which are used to efficiently handle massive amounts of data. In order to offer the laboratory of the university deeper research of the field of data mining, this paper briefly analyzes the concept and basic principle of Spark technology and HDFS, and then introduces configuration method and implementation process of the Spark-based cloud computing platform.The experiments show that the platform can effectively complete the distributed data processing tasks.

Key Words:Spark; HDFS; cloud platform; data processing

1 Spark及分布式系統(tǒng)簡介

1.1 Spark技術(shù)

Spark是類Hadoop MapReduce的通用數(shù)據(jù)分析集群計(jì)算框架,起源于加利福尼亞大學(xué)伯克利分校。為了解決現(xiàn)有Hadoop版本在計(jì)算模式、計(jì)算性能、處理能力及系統(tǒng)構(gòu)架上的缺點(diǎn),大部分計(jì)算框架采取各種計(jì)算模式與內(nèi)存計(jì)算模式混合,以實(shí)現(xiàn)高實(shí)時性的大數(shù)據(jù)查詢與計(jì)算分析[1],而其中最為完善和流行的便是Spark生態(tài)系統(tǒng)。

Spark處理方法一直在行業(yè)內(nèi)被廣泛借鑒。彈性分布式數(shù)據(jù)集(RDD)是Spark使用的主要抽象,其通過內(nèi)存存儲數(shù)據(jù),以改善速度和資源問題[2];它能夠在不進(jìn)行復(fù)制的情況下提供容錯機(jī)制,并且支持迭代計(jì)算;它支持一組豐富的高級工具,包括用于SQL的Spark SQL結(jié)構(gòu)化數(shù)據(jù)處理、用于機(jī)器學(xué)習(xí)的MLlib、用于圖處理的GraphX和Spark Streaming[3]。因此,Spark更適用于數(shù)據(jù)挖掘與機(jī)器學(xué)習(xí)等需要迭代的算法。

1.2 分布式系統(tǒng)

Hadoop分布式文件系統(tǒng)(HDFS)是Hadoop集群中所有節(jié)點(diǎn)進(jìn)行數(shù)據(jù)存儲的文件系統(tǒng),適用于通用硬件及大規(guī)模數(shù)據(jù)集的應(yīng)用,具有高容錯性、高吞吐率、高擴(kuò)展性和高可靠性等特點(diǎn)[4-7]。

HDFS采用master/slave架構(gòu)。一個HDFS由一個NameNode(master)和多個DataNode(slave)組成,其中master負(fù)責(zé)管理文件系統(tǒng)命名空間和Client對文件的訪問,slave負(fù)責(zé)管理所在節(jié)點(diǎn)的存儲。HDFS對外提供一個文件系統(tǒng)命名空間,允許用戶將數(shù)據(jù)存為文件格式。

2 Spark云平臺實(shí)現(xiàn)方法

Spark云平臺是西安石油大學(xué)服務(wù)器虛擬出的4個節(jié)點(diǎn),使用內(nèi)部地址,無密碼登錄。下面主要介紹在Ubuntu系統(tǒng)下部署Spark云平臺的方法,所用操作系統(tǒng)為Ubuntu 14.04.1 LTS,Hadoop[8]版本為2.6.4,Spark版本為1.6.2。

2.1 網(wǎng)絡(luò)配置

集群中包括1個主節(jié)點(diǎn):tulip01,3個從節(jié)點(diǎn):tulip02、tulip03、tulip04。其中tulip01節(jié)點(diǎn)主要配置NameNode和JobTracker角色,負(fù)責(zé)總管分布式數(shù)據(jù)并分解任務(wù)執(zhí)行;3個從節(jié)點(diǎn)配置DataNode和TaskTracker角色,負(fù)責(zé)分布式數(shù)據(jù)存儲以及任務(wù)執(zhí)行。

2.2 SSH無密碼驗(yàn)證配置

云平臺各節(jié)點(diǎn)間需要進(jìn)行數(shù)據(jù)訪問,如果每個節(jié)點(diǎn)訪問均需要驗(yàn)證,效率將大大降低,所以配置 SSH免密碼的方法直接遠(yuǎn)程連入被訪問節(jié)點(diǎn),以提高效率。

(1)確認(rèn)聯(lián)網(wǎng)的情況下,在Ubuntu服務(wù)器上安裝SSH,并驗(yàn)證SSH是否安裝成功:

root@tulip01:~# apt-get install ssh

root@tulip01:~# ssh -V

(2)生成密鑰:

root@tulip01:~# ssh-keygen -t dsa -P ‘ -f ~/.ssh/id_dsa

(3)生成公私密鑰,主節(jié)點(diǎn)執(zhí)行以下命令:

root@tulip01:~# cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

從節(jié)點(diǎn)將工作節(jié)點(diǎn)的密鑰發(fā)送到主節(jié)點(diǎn),并將密鑰添加進(jìn)公鑰中,然后將生成的公鑰發(fā)送到每個節(jié)點(diǎn)上,執(zhí)行以下命令:

root@tulip02:~#scp /root/.ssh/id_rsa.pub root@tulip01:/root/.ssh/id_rsa.pub.worker

root@tulip01:~# cat ~/.ssh/id_rsa.pub.workerx >> ~/.ssh/authorized_keys

root@tulip01:~# scp ~/.ssh/authorized_keys root@tulip02:~/.ssh/authorized_keys

(4)使子節(jié)點(diǎn)通過SSH免密碼登錄主節(jié)點(diǎn),先將文件復(fù)制到從節(jié)點(diǎn)與主節(jié)點(diǎn)相同的文件夾內(nèi),然后用同樣方法配置另外兩個子節(jié)點(diǎn):

root@tulip01:~# scp authorized_keys tulip02:~/.ssh/

至此,主節(jié)點(diǎn)和每個從節(jié)點(diǎn)能夠相互無密碼地驗(yàn)證登錄。

2.3 Java環(huán)境配置

所有節(jié)點(diǎn)上都需安裝 JDK,先在主節(jié)點(diǎn)安裝,然后其它節(jié)點(diǎn)按照步驟重復(fù)進(jìn)行即可(注意:安裝JDK以及配置環(huán)境變量,需要以root身份進(jìn)行)。

(1)上傳并解壓JDK安裝包,將JDK安裝包解壓在“/usr/data”文件夾下。

(2)在“/etc/profile”文件下配置環(huán)境變量,添加以下內(nèi)容:

export JAVA_HOME=/usr/data/jdk-8u111-linux-x64

export JRE_HOME=MYMJAVA_HOME/jre

export CLASSPATH=.:MYMJAVA_HOME/lib:MYMJRE_HOME/lib

export PATH=MYMJAVA_HOME/bin:MYMPATH

export HADOOP_HOME=/usr/data/hadoop-2.6.4

export PATH=MYMPATH:MYMHADOOP_HOME/sbin:MYMHADOOP_HOME/bin

2.4 Hadoop集群部署

運(yùn)行Spark需要用到Hadoop的HDFS作為數(shù)據(jù)存儲設(shè)施,所以各個節(jié)點(diǎn)都要安裝Hadoop。先在主節(jié)點(diǎn)上安裝,然后其它節(jié)點(diǎn)按照相同步驟進(jìn)行安裝配置。下面以root身份安裝和配置Hadoop:

(1)上傳并解壓Hadoop安裝包,并在“/usr/data/hadoop-2.6.4”目錄下分別創(chuàng)建tmp。dfs/name、dfs/data步驟類似,用于存放命名空間及數(shù)據(jù)信息,并將所建的文件夾權(quán)限分給Hadoop用戶。

root@tulip01:~# chown -R hadoop:hadoop /usr/data/hadoop-2.6.4

(2)配置文件hadoop-env.sh和yarn-env.sh,分別添加Java路徑信息,注意步驟(2)~(5)所配置的文件均在“/usr/data/hadoop-2.6.4/etc/hadoop/”目錄里。

export JAVA_HOME=/usr/data/jdk-8u111-linux-x64

(3)配置文件core-site.xml。將fs.default.name的value值改為hdfs://202.200.84.234:9000,將hadoop.tmp.dir的value值改為file:/usr/data/hadoop-2.6.4//tmp。

(4)配置文件hdfs-site.xml。將dfs.namenode.secondary.http-address的value值改為202.200.84.234:50090。

(5)配置文件 mapred-site.xml ,將mapred.job.tracker的value值改為tulip01:9001。

(6)配置文件yarn-site.xml,將yarn.resourcemanager.hostname的value值改為tulip01,mapred.job.tracker改為202.200.84.234:9001。

(7)在“/usr/data/hadoop/etc/hadoop-2.6.4/slaves”文件下添加從節(jié)點(diǎn)信息。

(8)在剩余節(jié)點(diǎn)上安裝配置Hadoop,拷貝Hadoop安裝目錄到tulip02節(jié)點(diǎn),并賦予該節(jié)點(diǎn)讀權(quán)限。其它節(jié)點(diǎn)作相同操作:

root@tulip01:~# scp -r ./hadoop-2.6.4 tulip02:/usr/

root@tulip01:~# chown - R root:tulio02 /usr/data/hadoop-2.6.4/

(9)啟動及驗(yàn)證。首先,格式化HDFS系統(tǒng),在 master 上使用用戶 Hadoop 進(jìn)行操作:

root@tulip01:~# hdfs namenode -format

然后啟動并驗(yàn)證Hadoop,使用jps命令查看進(jìn)程,若主節(jié)點(diǎn)上出現(xiàn)NameNode、SecondaryNameNode、ResourceManager和 Jps,從節(jié)點(diǎn)上出現(xiàn) DataNode、NodeManager 和 Jps 等進(jìn)程,則表示集群配置成功。

root@tulip01:~# ./sbin/start-dfs.sh

2.5 Spark集群部署

所有節(jié)點(diǎn)都要安裝Spark,先在主節(jié)點(diǎn)上安裝,然后其它節(jié)點(diǎn)按照相同步驟進(jìn)行安裝配置。下面以root身份安裝和配置Spark:

(1)上傳并解壓Spark安裝包。將Spark安裝包解壓在“/usr/data”文件夾下。

(2)進(jìn)入Spark的conf中復(fù)制模板配置。 注意步驟(2)~(5)所配置文件均在“/usr/data/spark-1.6.2/conf/”目錄里。

root@tulip01:~# cp spark-env.sh.template spark-env.sh

(3)修改Spark配置變量。編輯“/etc/profile”文件,將SPARK_MASTER_IP設(shè)為tulip01、SPARK_WORKER_MEMORY設(shè)為16g、SPARK_WORKER_CORES設(shè)為3,然后執(zhí)行source命令使配置生效。

root@tulip01:~# vim spark-env.sh

(4)添加從節(jié)點(diǎn)信息。節(jié)點(diǎn)修改信息同Hadoop步驟。

root@tulip01:~# cp slaves.template slaves

(5)修改系統(tǒng)默認(rèn)配置。修改信息詳情如圖1所示。

root@tulip01:~#cp spark-defaults.conf.template spark-defaults.conf

root@tulip01:~# vim spark-defaults.conf

(6)將配置好的Spark文件復(fù)制到各子節(jié)點(diǎn)對應(yīng)目錄,即將Spark下的Spark1.6.2拷貝到tulip01節(jié)點(diǎn)的對應(yīng)目錄中。其它節(jié)點(diǎn)作相同操作:

root@tulip01:~# scp -r./spark-1.6.2/ tulip01:/usr/

(7)啟動及驗(yàn)證。首先,啟動并驗(yàn)證Spark,使用jps命令查看進(jìn)程,若發(fā)現(xiàn)主節(jié)點(diǎn)上有master進(jìn)程,從節(jié)點(diǎn)上有worker進(jìn)程,說明Spark集群配置成功。

root@tulip01:~# ./sbin/start-all.sh

然后進(jìn)行Spark集群監(jiān)控,通過監(jiān)控頁面http://202.200.84.234:8080/查看,若可以看到1個master節(jié)點(diǎn)和3個slave節(jié)點(diǎn),表明Spark集群已經(jīng)正常運(yùn)行。

3 Spark云平臺測試

Spark集群搭建完成后,通過Spark Shell的交互界面進(jìn)行交互式編程。通過一個實(shí)例對云平臺進(jìn)行測試,即統(tǒng)計(jì)HDFS上一個文件README.md中“spark”的出現(xiàn)頻率。

在Spark Shell交互界面scala>運(yùn)行如下代碼:

val file=sc.textFile("hdfs://202.200.84.234:9000/usr/data/root/README.md")

val sparks=file.filter(line => line.contains("Spark"))

sparks.count

然后,使用Linux自帶的wc命令進(jìn)行統(tǒng)計(jì):

root@tulip01:~# grep Spark README.md

最后,將Spark Shell下的運(yùn)行結(jié)果與Linux命令執(zhí)行結(jié)果進(jìn)行對比,若結(jié)果相同,則說明Spark云平臺搭建成功。

4 結(jié)語

Spark云平臺目前具備以下優(yōu)勢:①數(shù)據(jù)存儲可靠、安全,能有效避免數(shù)據(jù)丟失、病毒入侵等問題;②對硬件設(shè)施要求不高,使用方便快捷;③計(jì)算能力強(qiáng),不再局限于單機(jī)運(yùn)行,可利用成千上萬臺計(jì)算機(jī)和服務(wù)器執(zhí)行超級計(jì)算類任務(wù);④存儲容量大,具備良好的可擴(kuò)展性。值得注意的是,目前Spark云平臺還有諸多問題有待完善,如脫機(jī)問題、故障問題等。下一步工作主要是在Spark云平臺下進(jìn)行相關(guān)算法的研究與應(yīng)用。

參考文獻(xiàn):

[1] MORAIS T S. Survey on frameworks for distributed computing: Hadoop, Spark and storm[C].DSIE'15 Doctoral Symposium in Informatics Engineering.2015.

[2] MENG X, BRADLEY J, YAVUZ B, et al. MLlib: machine learning in apache spark[J]. Journal of Machine Learning Research,2015,17(1):1235-1241.

[3] ZAHARIA M, CHOWDHURY M, FRANKLIN M J, et al. Spark: cluster computing with workingsets[C].Usenix Conference on Hot Topics in Cloud Computing. USENIX Association, 2010:10.

[4] 許吳環(huán),顧瀟華.大數(shù)據(jù)處理平臺比較研究[J].軟件導(dǎo)刊,2017,16(4):212-214.

[5] 范素娟,田軍鋒,F(xiàn)ANSU-JUAN,等.基于Hadoop的云計(jì)算平臺研究與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2016(7):127-132.

[6] 王彥明,奉國和,薛云.近年來Hadoop國外研究綜述[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2013,22(6):1-5.

[7] 孟小峰,慈祥.大數(shù)據(jù)管理:概念、技術(shù)與挑戰(zhàn)[J].計(jì)算機(jī)研究與發(fā)展,2013,50(1):146-169.

[8] LANDSET S, KHOSHGOFTAAR T M, RICHTER A N, et al. A survey of open source tools for machine learning with big data in the Hadoop ecosystem[J]. Journal of Big Data,2015,2(1):24.

(責(zé)任編輯:黃 ?。?/p>

猜你喜歡
云平臺數(shù)據(jù)處理
認(rèn)知診斷缺失數(shù)據(jù)處理方法的比較:零替換、多重插補(bǔ)與極大似然估計(jì)法*
ILWT-EEMD數(shù)據(jù)處理的ELM滾動軸承故障診斷
企業(yè)云平臺建設(shè)研究
MATLAB在化學(xué)工程與工藝實(shí)驗(yàn)數(shù)據(jù)處理中的應(yīng)用
Matlab在密立根油滴實(shí)驗(yàn)數(shù)據(jù)處理中的應(yīng)用
基于POS AV610與PPP的車輛導(dǎo)航數(shù)據(jù)處理
依托陸態(tài)網(wǎng)的GNSS遠(yuǎn)程數(shù)據(jù)處理軟件開發(fā)