• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于大數(shù)據(jù)Hadoop的股票利潤(rùn)分析平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)

      2019-03-15 01:30:00張魯奧
      電子制作 2019年4期
      關(guān)鍵詞:數(shù)據(jù)源海量股票

      張魯奧

      (山東省章丘市第四中學(xué),山東章丘,250200)

      1 研究背景

      隨著大數(shù)據(jù)技術(shù)的蓬勃發(fā)展,越來(lái)越多的數(shù)據(jù)等著我們?nèi)プR(shí)別,讀取,歸類,計(jì)算。針對(duì)于股票市場(chǎng),如何利用大數(shù)據(jù)技術(shù)去發(fā)掘股票中隱含的眾多有價(jià)值的信息,幫助股民合理購(gòu)買股票,獲得最大利潤(rùn)是我們急需解決的難題,目前在股票領(lǐng)域的大數(shù)據(jù)研究尚不完善。因此,我們提出利用hadoop分布式框架來(lái)對(duì)每只股票的利潤(rùn)進(jìn)行分析的方案,用到的主要技術(shù)是分布式并行計(jì)算(mapreduce)和分布式文件存儲(chǔ)系統(tǒng)(HDFS)。對(duì)于每只股票的數(shù)據(jù)會(huì)冗雜在一起,形成龐大的數(shù)據(jù)量的情況,目前比較主流的海量數(shù)據(jù)存儲(chǔ)系統(tǒng)主要采用HDFS文件系統(tǒng)。在本文中我們把每只股票的相關(guān)信息存儲(chǔ)在HDFS文件中,然后讀取出來(lái),通過(guò)MapReduce對(duì)股票數(shù)據(jù)進(jìn)行分析。

      目前,在股票行業(yè)中,每支股票每天產(chǎn)生的數(shù)據(jù)量難以預(yù)估,隱含的有價(jià)值的信息難以提取,如,開(kāi)盤(pán)時(shí)間,閉盤(pán)時(shí)間,開(kāi)盤(pán)價(jià)格,閉盤(pán)價(jià)格,多個(gè)特征中如何提取有用信息,如何有效準(zhǔn)確的計(jì)算股票數(shù)據(jù),在該領(lǐng)域的研究還有待完善。對(duì)于股票數(shù)據(jù)的分析處理問(wèn)題,我們提出了合理可行的方案,基于Hadoop的并行式計(jì)算框架運(yùn)用了HDFS存儲(chǔ)機(jī)制和Mapreduce的并行式運(yùn)算,可以有效合理的解決上述問(wèn)題?;趆adoop大數(shù)據(jù)的分布式并行計(jì)算框架設(shè)計(jì)方案,依賴快速高效的mapreduce,實(shí)現(xiàn)實(shí)時(shí)大數(shù)據(jù)的復(fù)雜計(jì)算,提供每一支股票的年利潤(rùn)、總利潤(rùn)、平均利潤(rùn)等特征,并對(duì)明年股票進(jìn)行分析和預(yù)測(cè)。

      2 系統(tǒng)的設(shè)計(jì)與功能設(shè)計(jì)

      2.1 數(shù)據(jù)源

      數(shù)據(jù)源模塊的主要功能是利用API服務(wù)獲取股票的數(shù)據(jù),以龐大的股票數(shù)據(jù)做支撐,是整個(gè)框架的數(shù)據(jù)的唯一來(lái)源,上層數(shù)據(jù)的處理與整合都來(lái)源于數(shù)據(jù)源模塊。

      2.2 數(shù)據(jù)接入層

      圖1

      數(shù)據(jù)接入層的主要功能是存儲(chǔ)來(lái)源于數(shù)據(jù)源層的股票數(shù)據(jù),利用分布式消息訂閱系統(tǒng)kafka框架實(shí)現(xiàn)。它是一個(gè)針對(duì)流式數(shù)據(jù)處理的分布式消息訂閱系統(tǒng)。主要包括如下幾個(gè)模塊:

      (1)Broker:Kafka集群是由1個(gè)或者多個(gè)服務(wù)器組成,這種服務(wù)器即為broker

      (2)Producer:消息數(shù)據(jù)的生產(chǎn)者。

      (3)Topic:是指發(fā)送到集群中的消息分類,每一個(gè)類別都是一個(gè)Topic。

      (4)Consumer:消費(fèi)消息的一方,負(fù)責(zé)broker的Topic讀取股票消息數(shù)據(jù)。

      2.3 數(shù)據(jù)提取層

      數(shù)據(jù)提取模塊的主要功能是對(duì)數(shù)據(jù)做ETL(Extract-Transform-Load)處理,清洗數(shù)據(jù),構(gòu)建數(shù)據(jù)倉(cāng)庫(kù),對(duì)數(shù)據(jù)進(jìn)行分層處理。用到的主要工具的數(shù)據(jù)抽取框架Gobblin。

      Gobblin是一種數(shù)據(jù)提取整合框架,可以接收以Kafka, fl ume等數(shù)據(jù)源的數(shù)據(jù),并將這些數(shù)據(jù)采用定時(shí)的方式寫(xiě)入HDFS文件中中。這樣便于集群拉取數(shù)據(jù)進(jìn)行清洗、處理、分析等操作。主要包含如下組件:

      (1)Source:主要起到適配器的作用。

      (2)Converter:主要用來(lái)對(duì)股票數(shù)據(jù)進(jìn)行清洗過(guò)濾操作,將數(shù)據(jù)轉(zhuǎn)為需要的類型。

      (3)Quality Checker:主要用于數(shù)據(jù)質(zhì)量檢測(cè),以此保證數(shù)據(jù)質(zhì)量,可通過(guò)手動(dòng)或者可選策略的方式,將check的數(shù)據(jù)輸出到指定的外部文件中。

      (4)Writer:依據(jù)程序指定的配置文件,按照指定的數(shù)據(jù)格式,將股票數(shù)據(jù)輸出到最終的存儲(chǔ)路徑下。

      (5)Publiser:將數(shù)據(jù)輸出到配置文件指定的路徑下。

      2.4 數(shù)據(jù)存儲(chǔ)

      數(shù)據(jù)存儲(chǔ)模塊的功能主要針對(duì)股票數(shù)據(jù)的存儲(chǔ),用到的主要存儲(chǔ)工具是分布式文件系統(tǒng)(HDFS)。具有如下幾個(gè)特點(diǎn):

      (1)故障分析

      針對(duì)HDFS一些無(wú)效的部件或者無(wú)效的文件片進(jìn)行合理的分析、處理。

      (2)數(shù)據(jù)訪問(wèn)

      hadoop的hdfs讀取和寫(xiě)入數(shù)據(jù)采用的是流式讀取和寫(xiě)入的方式,這一般程序讀取數(shù)據(jù)的方式。HDFS比較適合離線的、批量的數(shù)據(jù)存儲(chǔ),針對(duì)的是高吞吐量,體現(xiàn)在數(shù)據(jù)吞吐量上。

      (3)大數(shù)據(jù)集

      HDFS分布式文件系統(tǒng)主要是針對(duì)高吞吐量的作業(yè),需要依賴海量數(shù)據(jù)集,如果數(shù)據(jù)量較小,無(wú)法體現(xiàn)HDFS分布式文件系統(tǒng)的特性和優(yōu)勢(shì),通常一個(gè)分布式集群可以支持成百上千個(gè)數(shù)據(jù)節(jié)點(diǎn)和成千上萬(wàn)的文件量。

      (4)簡(jiǎn)單一致性模型

      HDFS文件操作具有簡(jiǎn)單一致性的特點(diǎn),對(duì)文件的操作都是采用一次寫(xiě)入多次讀取的方式。HDFS文件只要經(jīng)過(guò)創(chuàng)

      2.5 數(shù)據(jù)計(jì)算層

      計(jì)算海量數(shù)據(jù)的能力,是目前處理高吞吐量數(shù)據(jù)比較可靠的方法。

      2.6 數(shù)據(jù)展示

      通過(guò)數(shù)據(jù)讀取,計(jì)算,最后會(huì)得到反饋,我們會(huì)得到每只股票的年利潤(rùn),平均利潤(rùn),通過(guò)利潤(rùn)計(jì)算來(lái)預(yù)測(cè)這只股票下一年的走勢(shì)。

      3 海量數(shù)據(jù)的存儲(chǔ)與計(jì)算

      3.1 海量數(shù)據(jù)的存儲(chǔ)

      對(duì)于海量的股票數(shù)據(jù)存儲(chǔ)主要是采用分布式文件系統(tǒng)HDFS。HDFS文件系統(tǒng)主要針對(duì)離線、高吞吐量的數(shù)據(jù)存儲(chǔ)系統(tǒng),采用流式數(shù)據(jù)讀取和寫(xiě)入的方式處理大文件數(shù)據(jù)。

      Block:block是HDFS文件存儲(chǔ)的基本單位。數(shù)據(jù)的讀取和寫(xiě)入都是以block為單位的,默認(rèn)大小為64M,在本文中,股票數(shù)據(jù)被分成64M大小的block塊進(jìn)行存儲(chǔ)。

      NameNode:名稱節(jié)點(diǎn),主要的功能是保存文件系統(tǒng)的元數(shù)據(jù),主要維護(hù)兩個(gè)數(shù)據(jù)結(jié)構(gòu):fsimage和editlog。editlog記錄對(duì)HDFS文件的增刪改查操作。

      DataNode:datanode是客戶端讀取或者寫(xiě)入數(shù)據(jù)的節(jié)點(diǎn),數(shù)據(jù)節(jié)點(diǎn)會(huì)定期采用心跳機(jī)制和namenode節(jié)點(diǎn)交互,以此獲取整個(gè)集群的資源信息。

      HDFS讀取股票數(shù)據(jù)的過(guò)程:

      (1)客戶端通過(guò)API采用遠(yuǎn)程調(diào)用的方式和namenode進(jìn)行通信(此過(guò)程的通信協(xié)議依然是Tcp/Ip協(xié)議),得到股票數(shù)據(jù)塊信息。

      (2)Namenode節(jié)點(diǎn)返回保存每一個(gè)block數(shù)據(jù)塊的地址信息,并按距離遠(yuǎn)近進(jìn)行排序。

      (3)給客戶端獲得存儲(chǔ)block數(shù)據(jù)的地址信息后,調(diào)用API,讀取存儲(chǔ)股票數(shù)據(jù)的block塊。

      (4)客戶端調(diào)用API的開(kāi)始讀取數(shù)據(jù)。當(dāng)block數(shù)據(jù)塊數(shù)據(jù)讀取結(jié)束時(shí),關(guān)閉相應(yīng)數(shù)據(jù)節(jié)點(diǎn)的連接,然后連接和下一個(gè)需要讀入文件距離最近的節(jié)點(diǎn),繼續(xù)讀入股票數(shù)據(jù)。

      圖2

      (5)當(dāng)客戶端(client)讀取股票數(shù)據(jù)結(jié)束的時(shí)候,通過(guò)調(diào)用API的close方法,關(guān)閉股票輸入流即可。

      3.2 海量數(shù)據(jù)的計(jì)算

      股票的數(shù)據(jù)計(jì)算采用的是分布式計(jì)算框架MapReduce。MapReduce采用分布式計(jì)算的方式,采用主從架構(gòu)的模式,執(zhí)行的過(guò)程主要可分為map和reduce兩個(gè)過(guò)程。

      mapreduce的對(duì)股票數(shù)據(jù)的計(jì)算過(guò)程如下。

      (1)客戶端要編寫(xiě)好腳本程序,打成可運(yùn)行的jar包,準(zhǔn)備需要讀入計(jì)算的數(shù)據(jù)源,也就是我們的股票數(shù)據(jù)。

      (2)提交任務(wù),提交股票數(shù)據(jù)是提交到Resource Manager上的,ResourceManager就會(huì)構(gòu)建這個(gè)股票任務(wù)的信息,給這個(gè)需要運(yùn)行的任務(wù)一個(gè)id,即為JobId,同時(shí)檢查作業(yè)的輸出目錄是否已經(jīng)存在,若不存在,正常運(yùn)行;如已經(jīng)存在,要進(jìn)行資源的重新分配。

      (3)作業(yè)初始化操作,將股票數(shù)據(jù)放到一個(gè)內(nèi)部隊(duì)列中,通過(guò)調(diào)度器進(jìn)行初始化工作,創(chuàng)建一個(gè)正在運(yùn)行的股票數(shù)據(jù)對(duì)象。

      (4)初始化過(guò)程結(jié)束后,作業(yè)調(diào)度器(schema)讀入輸入分片信息如果分片較小,會(huì)先聚合成大文件讀入,減少I/O帶來(lái)的時(shí)間延誤。接下來(lái)就是任務(wù)分配的過(guò)程了,先遍歷每一個(gè)分片的數(shù)據(jù),并根據(jù)分片數(shù)據(jù)的遠(yuǎn)近進(jìn)行排序。

      (5)執(zhí)行任務(wù)。將運(yùn)行任務(wù)的jar包從HDFS拷貝到本地并進(jìn)行解壓.并創(chuàng)建一個(gè)JVM,將Application程序加載到JVM中來(lái)執(zhí)行具體的任務(wù)。

      ·輸入分片(inputsplit):HDFS文件理想的split大小是一個(gè)HDFS塊,本次實(shí)驗(yàn)采用默認(rèn)的64M為一個(gè)block塊。

      ·map階段:①讀取HDFS中的文件。每一行按指定分隔符進(jìn)行分割,將分割后的結(jié)果解析成一個(gè)<key,value>鍵值對(duì)。②對(duì)分割后輸出的<key,value>鍵值對(duì)進(jìn)行分區(qū)操作;③對(duì)不同分區(qū)(partition)的股票數(shù)據(jù)按照key值進(jìn)行排序操作。④對(duì)分組排序后的數(shù)據(jù)進(jìn)行歸約,減少傳輸?shù)絩educe過(guò)程的數(shù)據(jù)量

      ·reduce階段:①對(duì)于map的輸出結(jié)果,按照分區(qū)(partition)的不同,通過(guò)http協(xié)議,遠(yuǎn)程拷貝到不同的reduce節(jié)點(diǎn)上:②將reduce處理后的<key,value>結(jié)果輸出到HDFS文件系統(tǒng)。

      4 總結(jié)

      本文提出了基于hadoop的股票利潤(rùn)分析設(shè)計(jì)方案,對(duì)股票數(shù)據(jù)進(jìn)行了提取,存儲(chǔ),計(jì)算,得到股票的利潤(rùn)信息。通過(guò)對(duì)股票利潤(rùn)進(jìn)行分析,對(duì)股票的發(fā)展趨勢(shì)進(jìn)行了合理的預(yù)測(cè)。在大數(shù)據(jù)時(shí)代,采用分布式并行計(jì)算框架和存儲(chǔ)框架解決實(shí)際問(wèn)題已經(jīng)成為一種必然趨勢(shì)。最近幾年,股票市場(chǎng)研究一直在不斷加大,對(duì)股票信息進(jìn)行分析,預(yù)測(cè)已經(jīng)成為一個(gè)熱門(mén)研究方向。股票的分析預(yù)測(cè)可以幫助股民提取股票中的關(guān)鍵信息,精準(zhǔn)把握股票市場(chǎng)的動(dòng)態(tài),以此獲得更高的利潤(rùn),避免股票陷阱。

      影響股票價(jià)格走勢(shì)和利潤(rùn)多少的因素多種多樣,我們無(wú)法把所有因素全都考慮到平臺(tái)中,因此想要實(shí)現(xiàn)股票價(jià)格的精確預(yù)測(cè)十分困難,難以實(shí)現(xiàn)??v使我們能夠把每一支股票的利潤(rùn)都分析出來(lái),依然存在誤差,但對(duì)股票的整體的走勢(shì)分析依舊有很大的幫助。

      猜你喜歡
      數(shù)據(jù)源海量股票
      一種傅里葉域海量數(shù)據(jù)高速譜聚類方法
      海量快遞垃圾正在“圍城”——“綠色快遞”勢(shì)在必行
      Web 大數(shù)據(jù)系統(tǒng)數(shù)據(jù)源選擇*
      基于不同網(wǎng)絡(luò)數(shù)據(jù)源的期刊評(píng)價(jià)研究
      本周創(chuàng)出今年以來(lái)新高的股票
      本周創(chuàng)出今年以來(lái)新高的股票
      一個(gè)圖形所蘊(yùn)含的“海量”巧題
      本周連續(xù)上漲3天以上的股票
      近期連續(xù)漲、跌3天以上的股票
      基于真值發(fā)現(xiàn)的沖突數(shù)據(jù)源質(zhì)量評(píng)價(jià)算法
      马山县| 阿图什市| 安陆市| 黄大仙区| 辽阳市| 兰坪| 嘉善县| 巴青县| 广安市| 海丰县| 宁德市| 宜章县| 集安市| 黔南| 云梦县| 卓资县| 社旗县| 临湘市| 册亨县| 简阳市| 木兰县| 涿州市| 贺州市| 宣威市| 大宁县| 中西区| 哈尔滨市| 临汾市| 佳木斯市| 会泽县| 方正县| 阳山县| 山东省| 南开区| 安国市| 衡阳市| 克东县| 晋城| 板桥市| 磐石市| 通化县|