999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Hadoop的電商大數據平臺性能調優

2020-06-22 13:15:56馬亞銘陶利民劉子琦
軟件導刊 2020年5期

馬亞銘 陶利民 劉子琦

摘 要:為了提升電商大數據平臺復雜數據操作性能,通過分析電商業務特點,從數據重新組織與平臺參數調優兩個方面對數據平臺進行優化。在數據重新組織方面,使用ORC數據格式存儲數據,并對數據表進行合理的分區、分桶;在平臺參數調優方面,對業務涉及到的主要組件參數進行針對性調節。最后,通過搭建具有32個節點的Hadoop集群,并使用TPC-DS測試集進行仿真實驗,驗證調優思路及方法的有效性。結果表明,調優之后的平臺性能大約是未進行任何優化平臺的7.5倍,優化效果顯著。

關鍵詞:大數據平臺;電子商務;Hadoop;性能調優

DOI:10. 11907/rjdk. 192524 開放科學(資源服務)標識碼(OSID):

中圖分類號:TP391文獻標識碼:A 文章編號:1672-7800(2020)005-0186-04

0 引言

電子商務的誕生及發展給人們生活帶來了巨大便利,隨著電商規模的進一步擴大,電商平臺每日會產生海量數據。如何對這些數據進行快速、有效的存儲與處理,是保障電商業務順利開展以及推動其發展的必備條件。Hadoop作為一款優秀的開源大數據平臺,被大多數電子商務企業所采用。為了獲得更好的數據處理性能,需要根據電子商務業務特點,對該平臺進行針對性的性能調優。由于Hadoop的廣泛應用,學者們對其調優方法已進行了較多研究。如王康等[1]闡述針對Hive數據倉庫的通用調優方法,即對Hive與MapReduce相關參數進行調優;王勇等[2]總結了基于HBase健康大數據平臺的多種調優方法等。綜合這些調優方法,將其歸納為以下4個方面:①數據重新組織,如數據分區、分桶等;②調節Hadoop平臺自身參數,如設置HDFS讀寫緩存大小等;③采用輔助技術,如數據壓縮等;④Hadoop源碼調優,可以是改進某種算法或策略等。

然而,針對性能調優的已有研究多為一些通用的或其它場景下的調優,尚沒有針對電商平臺的調優方法總結。本文根據對工程實踐的總結,闡述針對電商大數據平臺的性能調優方法。

1 Hadoop平臺基本框架

Hadoop是一款基于Java分布式大數據處理與分析的軟件框架。用戶可在不了解分布式底層細節的情況下開發分布式程序,充分利用集群進行高速運算與存儲,解決了大數據的可靠存儲與處理問題[3]。Hadoop經過多年發展已演化成一個生態系統,其基本框架如圖1所示。

由組件的功能和層次結構可知,對Hadoop的性能調優涉及對各個組件的調優,從底層HDFS到上層Hive都需要進行整體上的調優,任何組件都可能成為系統瓶頸。

2 電商大數據平臺調優

電子商務平臺是用于支撐商品在互聯網上進行交易的平臺。其涉及到的主要業務流程包括:①商品信息維護;②訂單管理;③銷售記錄(sales)和退貨記錄(returns);④倉庫(warehouse)庫存記錄(inventory)維護;⑤CRM客戶關系管理(customer、customer_address)等。

在這些業務流程中會經常對一些大表(如商品信息表),進行大量的CRUD(增刪改查)操作。針對電商業務流程的數據處理特點,一般從以下兩方面進行性能調優,分別為數據重新組織與平臺參數調優。

2.1 數據重新組織

對數據進行針對性的重新組織可以提高數據輸入的有效性,對數據進行更精準的處理,從而提升系統性能。針對電商大數據平臺,主要采取如下措施:

(1)使用ORC 格式。ORC文件格式是一種Hadoop生態圈中的列式存儲格式,有多種文件壓縮方式,并且有著很高的壓縮比。其提供row group index、bloom filter index等多種索引,而且文件是可切分(Split)的。因此,在Hive中使用ORC作為表的文件存儲格式,不僅可以節省HDFS存儲資源,查詢任務的輸入數據量也大幅減少[4]。同時ORC通過壓縮、分片并逐段記錄中間結果的方式提高數據塊管理能力,能有效提高數據讀取效率[4]。

在電商數據存儲中,如果繼續使用傳統行式存儲對諸如訂單表、商品表等這些龐大的數據表進行管理,查詢效率會非常低。若依靠索引優化查詢,由于數據量的龐大,建立與維護索引的代價都非常大。由于ORC格式具有的上述特性,將電商平臺的相關數據以ORC格式加以組織,可大大提升數據操作速度。

(2)數據表分區分桶。分區、分桶可以減少掃描成本,在一定程度上提高查詢效率。由電商業務模型及數據模型可知,隨著交易規模的擴大,將會產生很多數據量龐大的大表(幾十個TB以上),而日常業務流程中又需要對這些大表進行頻繁的查詢操作。因此,針對業務的數據操作特點進行適當的分區、分桶,可提高數據操作速度。

在確定分區、分桶字段時,不僅要關注該字段是否常被用于查詢,還需要關注該字段值數量等綜合因素。例如,在電商業務流程中,經常需要根據商品名稱進行商品信息查詢,但若根據商品名稱這一字段進行分桶,億級的商品數將會對應億級數量的桶文件,顯然是不可行的。因此,根據商品分類或地區等信息進行分桶,也可以有效提高查詢效率。

2.2 平臺參數調優

電商平臺管理的數據類型主要是一些結構化數據,數據操作大多是SQL型操作,因此調節參數主要涉及到的Hadoop平臺組件有Yarn、Hive和Spark。其中每一個組件都有大量系統參數,本文只列舉一些重要的、對電商數據平臺性能有較大影響的參數,并對這些參數進行分析與調優。

2.2.1 Yarn

(1)yarn.nodemanager.vmem-pmem-ratio:該參數是虛擬內存與物理內存的比率,默認值為2.1。增大該參數可以起到增大虛擬內存的作用,以避免Yarn的Container內存不足。因此,在存儲空間足夠的情況下,可根據實際物理資源及任務特點適當增大該參數的值,以保證yarn有足夠的內存空間可以使用。

(2)yarn.nodemanager.resource.percentage-physical-cpu

-limit:該參數是對NodeManager管理下所有Container可使用CPU資源的限制。在電商數據平臺場景下,本文僅考慮怎樣達到最優性能。一般允許yarn完全使用CPU資源,即該參數值為100%。

(3)yarn.nodemanager.resource.memory-mb:該參數用于指定yarn可以管理的最大內存容量。在電商場景下,除預留給系統其它進程的內存外,應盡量多地將內存交給yarn進行管理,使yarn可用內存資源最大化。

2.2.2 Hive

(1)hive.exec.dynamic.partition.mode:該參數表示是否允許自動分區。自動分區會自動根據分區字段所有值進行分區。在電商場景下會對多個大表進行分區,并且隨著系統的使用,多數分區字段的值會增加或減少。如以商品表的類別字段進行分區,隨著業務的擴展與變化,商品類別會增多或減少。采用手動分區方法會非常低效,因此在電商場景下,該字段一般設為nonstrict,表示允許自動分區。

(2)hive.exec.max.dynamic.partitions:該參數表示動態分區的上限。雖然可以利用該參數解決在動態分區時因分區過多造成系統奔潰的情況,但考慮到分區目的是為了加快數據讀寫,不應該讓最大分區數限制實際需要進行的分區,因此一般設置一個足夠滿足分區要求的數量,并要求選擇合理的字段進行分區。

(3)hive.exec.max.created.files:該參數表示一個MapReduce作業能創建的HDFS文件最大數,一般不會讓其成為MR作業的限制,而是要讓作業本身在系統能力范圍內。因此,會設置一個較大的值,默認為100 000。

(4)hive.optimize.sort.dynamic.partition:該參數會對需要寫入的數據進行排序,目的是使每次只對一個分區進行寫入操作,寫入完畢后,再打開下一個分區進行集中寫入。

由于在電商業務場景中分區數較多,如果對某個表進行寫入時,同時打開這些分區,將占用過多內存,因此該參數一般設為true。

2.2.3 Spark

(1)spark.serializer:spark在進行內存計算時,需要對一些中間結果進行序列化與反序列化,此時需要用到序列化框架。KryoSerializer具有速度快、序列化后體積小等優點,故序列化器一般配置為KryoSerializer。

(2)spark.memory.fraction:調整該參數可以控制spark的shuffle內存和storage內存總量占總內存的比例。需要根據任務類型保證shuffle過程有足夠的內存, 同時也要預留一些內存給spark其它功能以及系統軟件使用。

(3)spark.memory.storageFraction:該參數調節storage內存所占比例,與參數(2)一起確定shuffle和storage各占內存的比例。可以根據任務類型及表的多少,合理調整該值,增大shuffle內存比例,縮小storage內存比例。因為shuffle過程直接影響計算任務完成速度,shuffle內存應盡量保證每個任務的使用。可以通過監控日志及運行結果發現shuffle過程所需內存,從而對該參數進行調節。

(4)spark.sql.shuffle.partitions:該參數用于確定shuffle過程的partition個數。適當增加partition個數可以增大并行度,提高系統運行效率。

3 實驗驗證

3.1 實驗環境與方法

為了驗證針對電商大數據平臺性能調優的有效性,本文搭建了Hadoop集群。實驗環境共有32個節點,詳細配置如表2所示。

為了模擬電商日常業務,本文采用TPC-DS相關數據集[5]。該數據集可模擬某在線零售商日常業務數據,基本符合電商業務場景。數據集共包含24張表,這里只列舉主要的7張大表,如表4所示。

同時TPC-DS使用99個SQL語句,以模擬零售商日常各種業務流程,本文從中選取10個有代表性的SQL測試平臺性能。這10個SQL包含了復雜條件下的庫存查詢與銷售記錄查詢、銷售總額與平均銷售額統計計算等,基本涵蓋了電商主要業務流程。

3.2 實驗過程及結果分析

首先在平臺中生成TPC-DS數據集中的數據(本次實驗數據總量共30TB),在不進行調優的情況下(在系統默認配置下)使用選擇的10個SQL進行數據操作,接著對系統按上文方法進行調優,即數據重新組織與平臺參數調節。

將數據格式重新組織成ORC格式,然后進行分區、分桶。根據分析,主要針對幾個大表(store_sales、catalog_sales、web_sales、inventory)進行數據組織的優化,根據產品經銷存的日常模型綜合評估可行性,最終分區分桶方案如表5所示。

從實驗結果綜合來看,按照本文描述的針對電商大數據平臺的調優思路與方法,大大減少了對海量數據的操作與分析時間,顯著提升了數據平臺性能。

4 結語

本文總結了針對基于Hadoop的電商大數據平臺的一般調優思路與方法。系統調優是對系統各方面進行優化的過程,本文僅總結了基礎的、有明顯提升效果的兩種調優方法:數據重新組織和平臺參數調優,并通過搭建Hadoop集群,以及使用TPC-DS標準測試集進行仿真實驗,結果驗證了調優的有效性,調優后的平臺性能得到顯著提升。本文平臺參數主要是依據參數本身的作用,以及結合實踐經驗,通過手動調節及試驗完成調優的。尋求參數最優化有很多算法可以實現,如遺傳算法、粒子群算法(PSO)等,可幫助人們尋找參數最優解,避免手動調優的盲目性。

參考文獻:

[1] 王康,陳海光,李東靜. 基于Hive的性能優化研究[J]. 上海師范大學學報(自然科學版),2017(46):534.

[2] 王勇,尹鵬飛,李娟. 基于HBase的健康大數據平臺性能優化及應用[J]. 軟件導刊,2017(10):150-153,162.

[3] 許吳環,顧瀟華. 大數據處理平臺比較研究[J]. 軟件導刊,2017(4):212-214.

[4] 曹英. 大數據環境下Hadoop性能優化的研究[D]. 大連:大連海事大學, 2013.

[5] YERUVA S,KUMAR P V,PADMANABHAM P. Distributed data warehouse-experimentation with TPC-DS[C].2015 IEEE International Conference on Computational Intelligence and Computing Research (ICCIC). IEEE, 2015.

[6] 姜春宇,魏凱. 大數據平臺的基礎能力和性能測試[J]. 大數據, 2017(4):43-51.

[7] 詹劍鋒,高婉鈴,王磊,等. BigDataBench:開源的大數據系統評測基準[J]. 計算機學報,2016(1):196-211.

[8] 倪寧. 大數據時代下電子商務平臺的探索和研究——以淘寶網為例[J]. 江蘇商論,2014(5):13-14.

[9] LIU B,MENG X,SHI Y. CloudBM: a benchmark for cloud data management systems[J]. Journal of Frontiers of Computer Science and Technology, 2012, 6(6): 504-512.

[10] 陳娜,張金娟,劉智瓊,等. 基于Hadoop平臺的電信大數據入庫及查詢性能優化研究[J]. 移動通信, 2014(7):58-63.

[11] 楊浩. Hadoop平臺性能優化的研究與實現[D].成都:西南交通大學,2015.

[12] 張新玲, 顏秉珩. Hadoop平臺基準性能測試研究[J]. 軟件導刊, 2015(1):30-32.

[13] SINGH S,GARG R,MISHRA P K. Performance optimization of MapReduce-based apriori algorithm on Hadoop cluster[J]. Computers & Electrical Engineering, 2017:S0045790617308534.

[14] 劉娟, 豆育升, 何晨, 等. 基于調度器的Hadoop性能優化方法研究[J]. 計算機工程與設計,2013(1):198-202.

[15] 連加典,劉宏立, 謝海波,等. 基于預測機制的分級負載均衡算法[J]. 計算機工程與應用,2015,51(11):67-71.

[16] 董新華,李瑞軒,周灣灣,等. Hadoop系統性能優化與功能增強綜述[J]. 計算機研究與發展, 2013, 50(S2):1-15.

[17] 高莉莎, 劉正濤, 應毅. 基于應用程序的MapReduce性能優化[J]. 計算機技術與發展, 2015(7):102-105,112.

[18] TOM W. Hadoop權威指南(中文版)[M].北京:清華大學出版社, 2010.

(責任編輯:黃 健)

主站蜘蛛池模板: 国产免费网址| 亚洲区一区| 国产香蕉在线| 亚洲午夜18| 色综合天天综合| 亚洲精品无码久久久久苍井空| 最新亚洲人成网站在线观看| 一级毛片在线直接观看| 国产免费精彩视频| 2021国产v亚洲v天堂无码| 看av免费毛片手机播放| 98超碰在线观看| 国产精品内射视频| 国产理论最新国产精品视频| 久久婷婷五月综合97色| 亚洲第一成年人网站| 视频二区中文无码| 国产99视频精品免费观看9e| 国产成人三级| 亚洲人成人无码www| 亚洲Aⅴ无码专区在线观看q| 国产女同自拍视频| 青草视频在线观看国产| 国产视频一二三区| 亚洲人成影视在线观看| 亚洲日本中文字幕乱码中文| 国产尹人香蕉综合在线电影| 国产精品页| 狠狠亚洲婷婷综合色香| 国产一区二区三区在线无码| 999精品视频在线| 亚洲熟女偷拍| 亚洲第一天堂无码专区| 日韩欧美国产三级| 久久亚洲国产一区二区| 国产亚洲精品资源在线26u| 国产午夜精品一区二区三| 尤物精品视频一区二区三区| 国产第一页屁屁影院| 九色综合视频网| 中文字幕资源站| 国产精品开放后亚洲| 精品福利网| 国产一在线| 国产91视频免费观看| 18禁影院亚洲专区| 亚洲伦理一区二区| 亚洲日韩精品伊甸| 三级毛片在线播放| 永久天堂网Av| 欧美人在线一区二区三区| 国产精品3p视频| 日本AⅤ精品一区二区三区日| 国产二级毛片| 亚洲欧洲自拍拍偷午夜色| 国产欧美视频综合二区| 免费无码又爽又黄又刺激网站| 久久精品国产免费观看频道| 亚洲婷婷在线视频| 中文字幕 91| 国模沟沟一区二区三区| 91久久精品国产| 久久精品人人做人人爽电影蜜月| 成人av专区精品无码国产| 亚洲综合久久成人AV| 日本伊人色综合网| 红杏AV在线无码| 欧美成人aⅴ| 久久精品aⅴ无码中文字幕| 亚洲精品无码人妻无码| 青草午夜精品视频在线观看| 亚洲精品大秀视频| 国产日韩欧美中文| 欧美日本不卡| 91福利国产成人精品导航| 亚洲性网站| 欧美伦理一区| 不卡网亚洲无码| 国产AV无码专区亚洲精品网站| 性视频久久| 久久影院一区二区h| 久久女人网|