大資料應用測試經驗總結

2022-05-24 19:45:10 字數 4364 閱讀 2634

大資料應用測試過程與傳統的web系統有較大的不同,大資料應用測試通常會分為web側和etl側測試,web側基本就是功能測試,而etl(extracting-transfroming-loading)測試主要指從任何外部系統提取、轉換、載入資料到目標地。從底層資料採集、資料處理、到上層應用展現。

一、從技術架構設計上,分為以下幾塊:

計算引擎:使用hive on tez計算引擎實現etl跑批任務;使用spark streaming實現實時計算;使用phoenix做前台互動式查詢。

資料儲存:使用kafka、hive、hbase、mysql滿足各層次儲存技術需求。

任務排程:使用quartz實現作業排程及管理。

監控介面:使用kafka、檔案介面對接統一監控平台。

資料視覺化:使用jquery、echarts、easy ui等技術實現圖表、**展示;使用apache poi實現excel、csv的匯入匯出;使用log4j記錄日誌;使用spring框架實現頁面、服務、資料的整合管理;使用dbcp實現資料庫連線池。

資料模型層次說明

ods:貼源層,儲存原始資料,資料採集直接寫入;

dwd:資料倉儲明細層,儲存從源資料抽去過來的明細資料;

dw:資料倉儲層,儲存經過資料降維匯聚的計算後生成的彙總資料;

dm:資料集市層,滿足特定功能而建立的各種資料集市。

資料處理過程說明

資料採集模組從採集機採集相關業務資料;

資料採集模組定期把原始資料匯入hive庫中的ods層相關表中;實時資料及時寫入kafka提供給spark streaming處理;公引數據寫入mysql中。

etl模組從ods層相關表中抽取資料到dwd層;

etl模組根據輕度彙總要求進行資料輕度彙總操作,並把彙總後的資料放到dw層中;

一些功能所需資料無法從輕度彙總表計算出來,需要從dwd中原始表進行彙總;

etl模組從dw層獲取輕度彙總資料,根據各業務功能要求進一步彙總資料,形成dm層資料;

即席查詢資料從hive關聯到hbase中;

phoenix關聯到hbase中,供頁面查詢使用;

部分etl模組資料把hive中彙總後資料匯入mysql中,供模型建模使用;

二、hadoop執行:

mapreduce機制:

常用命令:

功能命令

檢視目錄

hadoop fs -ls dir
上傳檔案

建立目錄

hadoop fs -mkdir $

獲取檔案

刪除多個檔案或目錄

hadoop fs -rm$ ...
hadoop fs -rm -r$...
複製檔案

hadoop fs -cp$ $
移動檔案

三、hive和hbase比較: 

hive(非資料庫)

hbase(資料庫)

適用場景

用於對一段時間內的資料進行分析查詢,離線批處理

大資料的實時查詢

特點1、一種類sql的引擎,執行mapreduce任務;

2、查詢一般是全量查詢,時間較長,可通過分割槽來優化;

3、基於行查詢,定義時每行有固定列資料,每列資料固定大小;

4、操作:不支援更新操作

1、一種在hadoop之上的nosql型key/value資料庫;

2、查詢是通過特定語言編寫,可通過phonenix實現類sql功能;

3、基於列查詢,可定義各種不同的列,每列資料大小不固定;

四、hive常用操作

hive

基礎操作

說明檢視資料庫

show databases

使用資料庫

use dbname

刪除資料庫

drop database if exists dbname  cascade

如果資料庫不為空,刪除會報錯,加上cascade可忽略

檢視表show tables in dbname ; show tables like 『h*』

建立表內部表:create table page_view if not exists(viewtime int, userid bigint,

page_url string, referrer_url string,

ip string comment 'ip address of the user')

comment 'this is the page view table'

partitioned by(dt string, country string)

clustered by(userid) sorted by(viewtime) into 32 buckets

row format delimited

fields terminated by '\001'

collection items terminated by '\002'

map keys terminated by '\003'

stored as sequencefile;

外部表:

create external table page_view(viewtime int, userid bigint,

page_url string, referrer_url string,

ip string comment 'ip address of the user',

country string comment 'country of origination')

comment 'this is the staging page view table'

row format delimited fields terminated by '\054'

stored as textfile

location '';

載入表

load data local inpath `/tmp/pv_2013-06-08_us.txt` into table c02 partition(date='2013-06-08', country='us')
注: 儲存格式有四種種:textfile、sequencefile(二進位制檔案)、rcffile(行列儲存相結合)、orc

只有textfile錶能直接載入資料,必須本地load資料和external外部表直接加載運路徑資料,都只能用textfile表。更深一步,hive預設支援的壓縮檔案(hadoop預設支援的壓縮格式)也只能用textfile表直接讀取。其他格式不行。可以通過textfile表載入後insert到其他表中。

內外部表區別:

建立內部表時,會將資料移動到資料倉儲指向的路徑,儲存在hive.metastore.warehouse.dir路徑屬性下,預設情況下位於/user/hive/warehouse/databasename.db/tablename/ 資料夾路徑中,刪除內部表會將元資料和資料同步刪除。建立外部表時,僅記錄資料所在的路徑(location),不對資料的位置做任何變化,外部表檔案可以由hive外部的程序訪問和管理。外部表可以訪問儲存在azure storage volumes(asv)或遠端hdfs位置等源中的資料,刪除外部表時,只刪除元資料,不刪除檔案中資料。

五、hbase shell的一些基本操作命令,列出了幾個常用的hbase shell命令,如下:

檢視存在哪些表

list

建立表create '表名稱', '列名稱1','列名稱2','列名稱n'

新增記錄

put '表名稱', '行名稱', '列名稱:', '值'

檢視記錄

get '表名稱', '行名稱'

檢視表中的記錄總數

count '表名稱'

刪除記錄

delete '表名' ,'行名稱' , '列名稱'

刪除一張表

先要遮蔽該錶,才能對該錶進行刪除,第一步 disable '表名稱' 第二步 drop '表名稱'

檢視所有記錄

scan "表名稱"

檢視某個表某個列中所有資料

scan "表名稱" , ['列名稱:']

更新記錄

就是重寫一遍進行覆

大資料分析經驗總結

大資料分析到底需要多少種機器學習的方法呢?圍繞著這個問題,機器學習領域多年得出的一些經驗規律。1.大資料分析效能的好壞,也就是說機器學習 的準確率,與使用的學習演算法 問題的性質 資料集的特性包括資料規模 資料特徵等都有關係。2.一般地,ensemble方法包括random forest和adabo...

介面測試經驗總結

介面測試經驗總結 1 應驗證介面顯示內容的完整性 a 報表顯示時應考慮資料顯示寬度的自適應或自動換行。b 所有有資料展現的介面 如統計 查詢 編輯錄入 列印預覽 列印等 必須使測試資料的記錄數超過一屏 一頁,以驗證滿屏 頁時其窗體是否有橫向 縱向滾動條或換頁列印,介面顯示是否正常 2 應驗證介面顯示...

APP測試經驗總結

1.安裝和解除安裝測試 1.1從開發給的地方獲取包進行安裝,看是否可以正常安裝 1.2通過第三方軟體 安裝包,進行安裝看是否可以正常安裝 1.4安裝後,直接解除安裝,看是否可以正常解除安裝 1.5安裝後,利用第三方工具,看是否可以解除安裝 安裝 解除安裝測試,安裝在不同的作業系統 palm os s...