測試開發(fā):一文教你從0到1搞懂大數(shù)據(jù)測試缰儿!

1.什么是大數(shù)據(jù)

大數(shù)據(jù)是一個大的數(shù)據(jù)集合乳丰,通過傳統(tǒng)的計算技術(shù)無法進行處理。這些數(shù)據(jù)集的測試需要使用各種工具霎桅、技術(shù)和框架進行處理凹联。大數(shù)據(jù)涉及數(shù)據(jù)創(chuàng)建、存儲哆档、檢索蔽挠、分析,而且它在數(shù)量瓜浸、多樣性澳淑、速度方法都很出色,是需要新處理模式才能具有更強的決策力插佛、洞察發(fā)現(xiàn)力和流程優(yōu)化能力的海量杠巡、高增長率和多樣化的信息資產(chǎn)。


image

2.大數(shù)據(jù)測試類型

測試大數(shù)據(jù)應用程序更多的是驗證其數(shù)據(jù)處理雇寇,而不是測試軟件產(chǎn)品的個別功能氢拥。當涉及到大數(shù)據(jù)測試時蚌铜,性能和功能測試是關(guān)鍵。
處理可以是三種類型

  • 批量
  • 實時
  • 交互
    在測試應用程序之前嫩海,有必要檢查數(shù)據(jù)的質(zhì)量冬殃,并將其視為數(shù)據(jù)庫測試的一部分。它涉及檢查各種字段叁怪,如一致性审葬,準確性,重復奕谭,一致性涣觉,有效性,數(shù)據(jù)完整性等血柳。

3.測試步驟

image

3.1 步驟一官册、數(shù)據(jù)預處理驗證

在進行大數(shù)據(jù)測試時,首先要預hadoop前驗證數(shù)據(jù)的準確性等等难捌。
我們數(shù)據(jù)來源可能是關(guān)系數(shù)據(jù)庫攀隔、日志系統(tǒng)、社交網(wǎng)絡(luò)等等栖榨,所有我們應該確保數(shù)據(jù)能正確的加載到系統(tǒng)中,我們要驗證:
加載的數(shù)據(jù)和源數(shù)據(jù)是一致的
確保正確的提取和加載數(shù)據(jù)至hdfs中

3.2 步驟二明刷、Map Reduce驗證

在進行大數(shù)據(jù)測試時婴栽,第二個關(guān)鍵步驟是Map Reduce驗證。在本階段辈末,我們主要驗證每一個處理節(jié)點的業(yè)務邏輯是否正確愚争,并驗證在多個運行后,確保:

  • Map Reduce過程工作正常
  • 數(shù)據(jù)聚合挤聘、分離規(guī)則已經(jīng)實現(xiàn)
  • 數(shù)據(jù)key-value關(guān)系已正確生成
  • 驗證經(jīng)過map reduce后數(shù)據(jù)的準確性等特性

3.3 步驟三轰枝、結(jié)果驗證

在本階段主要驗證在經(jīng)過大數(shù)據(jù)工具/框架處理后,生成的最終數(shù)據(jù)的成果组去。
檢查轉(zhuǎn)換(Transformation)規(guī)則被正確應用
檢查數(shù)據(jù)完整性和成功的數(shù)據(jù)加載到目標系統(tǒng)中

4.性能測試

性能測試是評估一個大數(shù)據(jù)分析系統(tǒng)的最為關(guān)鍵的維度鞍陨,大數(shù)據(jù)系統(tǒng)性能主要包括吞吐量,任務完工時間从隆,內(nèi)存利用率等多個指標诚撵,可反應大數(shù)據(jù)分析平臺的處理能力,資源利用能力等性能键闺∈傺蹋可通過hadoop性能監(jiān)控器來監(jiān)測運行狀態(tài)性能指標和瓶頸問題,性能測試采用自動化化方式進行辛燥,測試系統(tǒng)在不同負載情況下的性能筛武。

5.容錯性測試

可從部分失效中自動恢復缝其,而且不會驗證的影響整體性能,特別地徘六,當故障發(fā)生時内边,大數(shù)據(jù)分析系統(tǒng)應該在進行恢復的同時繼續(xù)以可接受的方式進行操作,在發(fā)生錯誤時某種程度上可以繼續(xù)操作硕噩,需根據(jù)應用場景來設(shè)計解決方案和具體部署假残,然后手動測試。

6.可用性測試

高可用性已是大數(shù)據(jù)分析不可或缺的特性之一炉擅,從而保證數(shù)據(jù)應用業(yè)務的連續(xù)性.大數(shù)據(jù)高可用性對很多應用非常關(guān)鍵辉懒,需要嚴格進行測試和驗證,以手動測試為主谍失。

7.擴展性測試

彈性擴展能力對于大數(shù)據(jù)時代的文件系統(tǒng)尤其重要眶俩,文件系統(tǒng)擴展性測試主要包括測試系統(tǒng)彈性擴展能力(擴展/回縮)及擴展系統(tǒng)帶來的性能影響,驗證是否具有線性擴展能力,以手動測試為主快鱼。

8.穩(wěn)定性測試

大數(shù)據(jù)分析系統(tǒng)通常是不間斷長期運行颠印,穩(wěn)定性的重要性不言而喻,穩(wěn)定測試主要驗證系統(tǒng)在長時間(7/30/180/365*24)允許下抹竹,系統(tǒng)是否仍然能夠正常運行线罕,功能是否正常.穩(wěn)定性測試通常采用自動化方式進行,LTP窃判,10ZONE钞楼,POSTMARK,FIO等工具對測試系統(tǒng)產(chǎn)生負載,同時需要驗證功能袄琳。

9.部署方式測試

大數(shù)據(jù)具備scale-out的特點询件,能夠構(gòu)建大規(guī)模,高性能的文件系統(tǒng)集群唆樊。針對不同應用和解決方案宛琅,文件系統(tǒng)部署方式會有顯著不同;部署方式測試需要測試不同場景下的系統(tǒng)部署方式逗旁,包括自動安裝配置嘿辟,集群規(guī)模,硬件配置(服務器,存儲片效,網(wǎng)絡(luò)),自動負載均衡等仓洼,這部分測試不大可能進行自動化測試,需要根據(jù)應用場景來設(shè)計解決方案和具體部署堤舒,再進行手動測試色建。

10.數(shù)據(jù)一致性測試

這里的數(shù)據(jù)一致性是指文件系統(tǒng)中的數(shù)據(jù)與從外部寫入前的數(shù)據(jù)保持一致,即寫入數(shù)據(jù)與讀出數(shù)據(jù)始終是一致的舌缤。數(shù)據(jù)一致性能夠表明文件系統(tǒng)可保證數(shù)據(jù)的完整性箕戳,不會導致數(shù)據(jù)丟失或數(shù)據(jù)錯誤某残,這是文件系統(tǒng)最基本的功能,測試可用diff,md5sum編寫腳本自動化測試陵吸,LTP也提供了數(shù)據(jù)一致性的測試工具玻墅。

11.壓力測試

大數(shù)據(jù)分析系統(tǒng)的負載能力是存在上限的,系統(tǒng)過載時壮虫,系統(tǒng)就可能存在性能下降澳厢,功能異常,拒絕訪問等問題囚似。壓力測試是驗證系統(tǒng)造大壓力下剩拢,包括數(shù)據(jù)多客戶端,高OPS壓力饶唤,高IOPS/吞吐量壓力徐伐,系統(tǒng)是否仍然能夠正常運行,功能是否正常募狂,系統(tǒng)資源消耗情況办素,從而為大數(shù)據(jù)運營提供依。

12.大數(shù)據(jù)技術(shù)板塊劃分

  • 數(shù)據(jù)采集:flume kafka logstash filebeat …
  • 數(shù)據(jù)存儲:mysql redis hbase hdfs …

雖然mysql不屬于大數(shù)據(jù)范疇 但是我在這也列出來了祸穷,因為你在工作中離不開它

  • 數(shù)據(jù)查詢:hive impala elasticsearch kylin …
  • 數(shù)據(jù)計算
  • 實時計算:storm sparkstreaming flink …
  • 離線計算:hadoop spark …
  • 其他框架: zookeeper …
image

13.大數(shù)據(jù)學習步驟

1)linux基礎(chǔ)和javase基礎(chǔ)【包含mysql】

這些是基本功性穿,剛開始也不可能學的很精通,最起碼要對linux中的一些基本的命令混個臉熟雷滚,后面學習各種框架的時候都會用到需曾,用多了就熟悉了。javase的話建議主要看面向?qū)ο蠼掖耄希琲o刻蚯,多線程绊含,以及jdbc操作即可

2)zookeeper

zookeeper是很多大數(shù)據(jù)框架的基礎(chǔ)炊汹,中文名稱是動物園的意思躬充,因為目前的大數(shù)據(jù)框架的圖標很多都是動物的形狀,所以zookeeper其實就是可以管理很多大數(shù)據(jù)框架的讨便。針對這個框架充甚,主要掌握如何搭建單節(jié)點和集群,以及掌握如何在zkcli客戶端下對zookeeper的節(jié)點進行增刪改查操作即可霸褒。

3)hadoop

目前企業(yè)中一般都是用hadoop2.x的版本了伴找,所以就沒有必要再去學hadoop1.x版本了,hadoop2.x主要包含三大塊hdfs 前期废菱,主要學習hdfs的一些命令即可技矮,上傳抖誉,下載,刪除衰倦,移動袒炉,查看等命令…mapreduce 這個需要重點學習下,要理解mr的原理以及代碼實現(xiàn)樊零,雖然現(xiàn)在工作中真正寫mr的代碼次數(shù)很少了我磁,但是原理還是要理解的。

yarn 前期了解即可驻襟,只需要知道yarn是一個資源調(diào)度平臺夺艰,主要負責給任務分配資源即可,yarn不僅可以給mapreduce任務調(diào)度資源塑悼,還可以為 spark任務調(diào)度資源…yarn是一個公共的資源調(diào)度平臺劲适,所有滿足條件的框架都可以使用yarn來進行資源調(diào)度。

4)hive

hive是一個數(shù)據(jù)倉庫厢蒜,所有的數(shù)據(jù)都是存儲在hdfs上的霞势,具體【數(shù)據(jù)倉庫和數(shù)據(jù)庫】的區(qū)別大家可以去網(wǎng)上搜索一下,有很多介紹斑鸦。其實如果對 mysql的使用比較熟悉的話愕贡,使用hive也就簡單很多了,使用hive主要是寫hql巷屿,hql是hive的sql語言固以,非常類似于mysql數(shù)據(jù)庫的 sql,后續(xù)學習hive的時候主要理解一些hive的語法特性即可嘱巾。其實hive在執(zhí)行hql憨琳,底層在執(zhí)行的時候還是執(zhí)行的mapredce程序。
注意:其實hive本身是很強大的旬昭,數(shù)據(jù)倉庫的設(shè)計在工作中也是很重要的篙螟,但是前期學習的時候,主要先學會如何使用就好了问拘。后期可以好好研究一下hive遍略。

5)hbase

hbase是一個nosql 數(shù)據(jù)庫,是一個key-value類型的數(shù)據(jù)庫骤坐,底層的數(shù)據(jù)存儲在hdfs上绪杏。在學習hbase的時候主要掌握 row-key的設(shè)計,以及列簇的設(shè)計纽绍。要注意一個特點就是蕾久,hbase基于rowkey查詢效率很快,可以達到秒級查詢拌夏,但是基于列簇中的列進行查詢腔彰, 特別是組合查詢的時候叫编,如果數(shù)據(jù)量很大的話,查詢性能會很差霹抛。

6)redis

redis也是一個nosql(非關(guān)系型數(shù)據(jù)庫) 數(shù)據(jù)庫和key-value類型的數(shù)據(jù)庫搓逾,但是這個數(shù)據(jù)庫是純基于內(nèi)存的,也就是redis數(shù)據(jù)庫中的數(shù)據(jù)都是存儲在內(nèi)存中的杯拐,所以它的一個特點就是適用 于快速讀寫的應用場景霞篡,讀寫可以達到10W次/秒,但是不適合存儲海量數(shù)據(jù)端逼,畢竟機器的內(nèi)存是有限的朗兵,當然,redis也支持集群顶滩,也可以存儲大量數(shù)據(jù)余掖。在學習redis的時候主要掌握string,list礁鲁,set盐欺,sortedset,hashmap這幾種數(shù)據(jù)類型的區(qū)別以及使用仅醇,還有 pipeline管道冗美,這個在批量入庫數(shù)據(jù)的時候是非常有用的,以及transaction事務功能析二。

7)flume

flume是一個日志采集工具粉洼,這個還是比較常用的,最常見的就是采集應用產(chǎn)生的日志文件中的數(shù)據(jù)叶摄。一般有兩個流程属韧,一個是flume采集數(shù)據(jù)存 儲到kafka中,為了后面使用storm或者sparkstreaming進行實時處理蛤吓。另一個流程是flume采集的數(shù)據(jù)落盤到hdfs上宵喂,為了后期 使用hadoop或者spark進行離線處理。在學習flume的時候其實主要就是學會看flume官網(wǎng)的文檔柱衔,學習各種組建的配置參數(shù)樊破,因為使用 flume就是寫各種的配置愉棱。

8)kafka

kafka 是一個消息隊列唆铐,在工作中常用于實時處理的場景中,作為一個中間緩沖層奔滑,例如艾岂,flume->kafka->storm/sparkstreaming。學習kafka主要掌握topic朋其,partition王浴,replicate等的概念和原理脆炎。

9)storm

storm是一個實時計算框架,和hadoop的區(qū)別就是氓辣,hadoop是對離線的海量數(shù)據(jù)進行處理秒裕,而storm是對實時新增的每一條數(shù)據(jù)進行處理,是一條一條的處理钞啸,可以保證數(shù)據(jù)處理的時效性几蜻。學習storm主要學習topology的編寫,storm并行度的調(diào)整体斩,以及storm如何整合 kafka實時消費數(shù)據(jù)梭稚。

10)spark

spark 現(xiàn)在發(fā)展的也很不錯,也發(fā)展成了一個生態(tài)圈絮吵,spark里面包含很多技術(shù)弧烤,spark core,spark steaming蹬敲,spark mlib暇昂,spark graphx
spark生態(tài)圈里面包含的有離線處理spark core粱栖,和實時處理spark streaming话浇,在這里需要注意一下,storm和spark streaming 闹究,兩個都是實時處理框架幔崖,但是主要區(qū)別是:storm是真正的一條一條的處理,而spark streaming 是一批一批的處理渣淤。

spark中包含很多框架赏寇,在剛開始學習的時候主要學習spark core和spark streaming即可。這個一般搞大數(shù)據(jù)的都會用到价认。spark mlib和spark graphx 可以等后期工作需要或者有時間了在研究即可嗅定。

11)elasticsearch

elasticsearch是一個適合海量數(shù)據(jù)實時查詢的全文搜索引擎,支持分布式集群用踩,其實底層是基于lucene的渠退。在查詢的時候支持快速模 糊查詢,求count脐彩,distinct碎乃,sum,avg等操作惠奸,但是不支持join操作梅誓。elasticsearch目前也有一個生態(tài) 圈,elk(elasticsearch logstash kibana)是一個典型的日志收集,存儲梗掰,快速查詢出圖表的一整套解決方案嵌言。在學習elasticsearch的時候,前期主要學習如何使用es進行增 刪改查及穗,es中的index摧茴,type,document的概念埂陆,以及es中的mapping的設(shè)計蓬蝶。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市猜惋,隨后出現(xiàn)的幾起案子丸氛,更是在濱河造成了極大的恐慌,老刑警劉巖著摔,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件缓窜,死亡現(xiàn)場離奇詭異,居然都是意外死亡谍咆,警方通過查閱死者的電腦和手機禾锤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來摹察,“玉大人恩掷,你說我怎么就攤上這事」┖浚” “怎么了黄娘?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長克滴。 經(jīng)常有香客問我逼争,道長,這世上最難降的妖魔是什么劝赔? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任誓焦,我火速辦了婚禮,結(jié)果婚禮上着帽,老公的妹妹穿的比我還像新娘杂伟。我一直安慰自己,他們只是感情好仍翰,可當我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布赫粥。 她就那樣靜靜地躺著,像睡著了一般歉备。 火紅的嫁衣襯著肌膚如雪傅是。 梳的紋絲不亂的頭發(fā)上匪燕,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天蕾羊,我揣著相機與錄音喧笔,去河邊找鬼。 笑死龟再,一個胖子當著我的面吹牛书闸,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播利凑,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼浆劲,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了哀澈?” 一聲冷哼從身側(cè)響起牌借,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎割按,沒想到半個月后膨报,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡适荣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年现柠,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片弛矛。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡够吩,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出丈氓,到底是詐尸還是另有隱情周循,我是刑警寧澤,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布万俗,位于F島的核電站鱼鼓,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏该编。R本人自食惡果不足惜迄本,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望课竣。 院中可真熱鬧嘉赎,春花似錦、人聲如沸于樟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽迂曲。三九已至靶橱,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背关霸。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工传黄, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人队寇。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓膘掰,卻偏偏與公主長得像,于是被迫代替她去往敵國和親佳遣。 傳聞我的和親對象是個殘疾皇子识埋,可洞房花燭夜當晚...
    茶點故事閱讀 45,060評論 2 355

推薦閱讀更多精彩內(nèi)容

  • Zookeeper用于集群主備切換。 YARN讓集群具備更好的擴展性零渐。 Spark沒有存儲能力窒舟。 Spark的Ma...
    Yobhel閱讀 7,277評論 0 34
  • 表情是什么,我認為表情就是表現(xiàn)出來的情緒诵盼。表情可以傳達很多信息辜纲。高興了當然就笑了,難過就哭了拦耐。兩者是相互影響密不可...
    Persistenc_6aea閱讀 125,122評論 2 7
  • 16宿命:用概率思維提高你的勝算 以前的我是風險厭惡者耕腾,不喜歡去冒險,但是人生放棄了冒險杀糯,也就放棄了無數(shù)的可能扫俺。 ...
    yichen大刀閱讀 6,054評論 0 4