• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

    2018-05-15 08:31:14張?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ù)據(jù)挖掘領(lǐng)域的理論研究,簡要闡述分析了Spark技術(shù)及HDFS的概念與基本原理,詳細介紹了基于Spark的云計算平臺配置方法和實現(xiàn)過程,并對平臺搭建過程中遇到的問題進行總結(jié)。實驗結(jié)果證明,該平臺能夠有效完成分布式數(shù)據(jù)處理任務(wù)。

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

    DOI:10.11907/rjdk.172906

    中圖分類號:TP391

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

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

    1.2 分布式系統(tǒng)

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

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

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

    Spark云平臺是西安石油大學(xué)服務(wù)器虛擬出的4個節(jié)點,使用內(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é)點:tulip01,3個從節(jié)點:tulip02、tulip03、tulip04。其中tulip01節(jié)點主要配置NameNode和JobTracker角色,負責(zé)總管分布式數(shù)據(jù)并分解任務(wù)執(zhí)行;3個從節(jié)點配置DataNode和TaskTracker角色,負責(zé)分布式數(shù)據(jù)存儲以及任務(wù)執(zhí)行。

    2.2 SSH無密碼驗證配置

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

    (1)確認聯(lián)網(wǎng)的情況下,在Ubuntu服務(wù)器上安裝SSH,并驗證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é)點執(zhí)行以下命令:

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

    從節(jié)點將工作節(jié)點的密鑰發(fā)送到主節(jié)點,并將密鑰添加進公鑰中,然后將生成的公鑰發(fā)送到每個節(jié)點上,執(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é)點通過SSH免密碼登錄主節(jié)點,先將文件復(fù)制到從節(jié)點與主節(jié)點相同的文件夾內(nèi),然后用同樣方法配置另外兩個子節(jié)點:

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

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

    2.3 Java環(huán)境配置

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

    (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集群部署

    運行Spark需要用到Hadoop的HDFS作為數(shù)據(jù)存儲設(shè)施,所以各個節(jié)點都要安裝Hadoop。先在主節(jié)點上安裝,然后其它節(jié)點按照相同步驟進行安裝配置。下面以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é)點信息。

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

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

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

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

    root@tulip01:~# hdfs namenode -format

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

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

    2.5 Spark集群部署

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

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

    (2)進入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é)點信息。節(jié)點修改信息同Hadoop步驟。

    root@tulip01:~# cp slaves.template slaves

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

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

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

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

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

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

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

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

    3 Spark云平臺測試

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

    在Spark Shell交互界面scala>運行如下代碼:

    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命令進行統(tǒng)計:

    root@tulip01:~# grep Spark README.md

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

    4 結(jié)語

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

    參考文獻:

    [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的云計算平臺研究與實現(xiàn)[J].計算機技術(shù)與發(fā)展,2016(7):127-132.

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

    [7] 孟小峰,慈祥.大數(shù)據(jù)管理:概念、技術(shù)與挑戰(zhàn)[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ù)處理
    認知診斷缺失數(shù)據(jù)處理方法的比較:零替換、多重插補與極大似然估計法*
    ILWT-EEMD數(shù)據(jù)處理的ELM滾動軸承故障診斷
    基于云平臺的輸電桿塔滑坡監(jiān)控系統(tǒng)設(shè)計
    Docker技術(shù)在Web服務(wù)系統(tǒng)中的應(yīng)用研究
    高職院校開展基于云平臺網(wǎng)絡(luò)教學(xué)的探索與思考
    中國市場(2016年36期)2016-10-19 04:43:09
    企業(yè)云平臺建設(shè)研究
    基于云平臺的微信互聯(lián)式教學(xué)法的探索與實踐
    基于云平臺的高職院校開放性職業(yè)培訓(xùn)工作體系建設(shè)研究
    MATLAB在化學(xué)工程與工藝實驗數(shù)據(jù)處理中的應(yīng)用
    Matlab在密立根油滴實驗數(shù)據(jù)處理中的應(yīng)用
    石林| 南宫市| 华蓥市| 景德镇市| 万宁市| 民乐县| 偏关县| 莱西市| 郴州市| 焉耆| 增城市| 集安市| 湖北省| 武乡县| 绥棱县| 娄底市| 盐津县| 镇原县| 商南县| 蒙山县| 石泉县| 加查县| 米脂县| 宾阳县| 云南省| 金沙县| 随州市| 耒阳市| 罗山县| 景德镇市| 玉龙| 呼伦贝尔市| 突泉县| 沙田区| 黄梅县| 肥西县| 宁陵县| 福建省| 玉屏| 莲花县| 错那县|