列式存儲測試
Ⅰ 如何檢測一個內存條是否是正品
檢測一個內存條是否是正品的方法:
內存顆粒
注意內存顆粒上威剛(V-DATA)的Logo,字體較粗,兩條園弧的頭尾寬窄並不均勻,下面一條與字母「D」沒有相連 注意內存顆粒上假威剛(V-DATA)的Logo,字體較細,兩條園弧頭尾寬窄相同,下面一條與字母「D」相連。
SPD晶元及焊位
注意真品內存PCB板採用雙SPD晶元設計,焊接有小型SPD晶元,大型SPD晶元位子沒有焊接過的痕跡 注意假內存的PCB板雖然也採用雙SPD晶元設計,並焊接有小型SPD晶元,但大型SPD晶元位子有焊接過的痕跡,存有少量焊錫。
代理標簽
對比正品威剛(V-DATA)內存上有龍俊電子的標簽,而假內存上有龍俊電子的標簽是由不法商家將正品標簽轉貼的,有的能從細節上觀察出破綻。
S/N碼生產周期
生產周期對比產品標簽上的S/N碼:5XX代表05年,XX代表生產周期,這應與內存顆粒上的周期是相對應的 ,假威剛內存可能造成無法正常開機使用,主要因為其由正品威剛(V-DATA)內存PCB板焊接報廢內存顆粒構成。由於內存條價格主要決定於顆粒價格,而其它PCB板、SPD晶元和濾波電容等的價格影響則相對較小,所以只能通過更換內存顆粒牟取暴利。
Ⅱ 擴充你的硬碟 塞恩斯雙盤直連存儲測試
【IT168評測中心】隨著硬碟容量的提升和價格的不斷下降,許多朋友已經將自己的電腦更換成了更大的容量。那之前的硬碟怎麼處理呢?扔了有些可惜,重新組裝電腦又覺得沒必要。這里,改造成移動硬碟或許是個不錯的辦法。不過由於體積和容量的限制,大多數移動硬碟都是單磁碟設置,傳輸速度有限,硬碟本身的性能難以得到良好的發揮。今天,我們為大家介紹一款面向家庭用戶的直連存儲器,它來自廠商塞恩斯,型號為TR2UT-B。
塞恩斯TR2UT-B直連存儲(點此查看大圖
)
塞恩斯TR2UT-B是一款雙盤設計的DAS,也就是直連存儲器。相比我們常見的NAS(網路存儲器)來說,我們可以將TR2UT-B看作是一款支持雙磁碟的移動硬碟盒。當然,相比普通的移動硬碟盒來說,TR2UT-B還是有許多特點的,特別是對於RAID功能的支持也使它能夠更好發揮雙磁碟的性能。
TR2UT-B規格一覽表
這是TR2UT-B的配置清單。從表格來看,它的體積為53*47*10CM,比一本字典的體積稍大。最重要的是,它能夠支持JBOD、Spanning、RAID 0和RAID 1。相比前兩種模式來說,RAID陣列才是消費者應該關注的重點,RAID 0的快速讀寫和RAID 1的鏡像備份對於用戶來說各有用處,我們下面也將就這個重點進行具體的測試。
TR2UT-B正面圖(點此查看大圖
)
塞恩斯TR2UT-B通身使用了黑色鋼琴漆,除了美觀之外,也很容易留下指紋。它的前面板設計有一個保護蓋(無鎖孔),面板下方有一排指示燈,表明產品的工作狀態,整體來說設計比較簡單。
TR2UT-B背面圖(點此查看大圖
)
塞恩斯TR2UT-B通身使用了黑色鋼琴漆,除了美觀之外,也很容易留下指紋。它的前面板設計有一個保護蓋(無鎖孔),面板下方有一排指示燈,表明產品的工作狀態,整體來說設計比較簡單。
(點此查看大圖
)
背面RAID功能介紹(點此查看大圖
)
為了便於用戶更改陣列,TR2UT-B還特別在背面貼有簡單的陣列適宜圖,通過四個開關的不同排列方式,就可以實現磁碟RAID。著重提醒大家注意Striping和Mirroring兩個模式,它們分別代表了RAID 0和RAID 1。
(點此查看大圖
)
塞恩斯TR2UT-B側面圖(點此查看大圖
)
作為一款2-Bay直連存儲,TR2UT-B的內部設計比較簡單。我們看到了在機箱產品中常見的卷邊工藝,避免意外劃傷。
內部RAID控制器(點此查看大圖
)
這是TR2UT-B內部的電路板,右側兩個介面就是用來連接SATA硬碟的了。左側的晶元是Silicon image公司的Sil5744 RAID控制器,這是許多外置存儲設備中常用的晶元,能夠支持RAID0和RAID1兩種陣列模式,也是一種廉價的磁碟陣列解決方案。
(點此查看大圖
)
內部配備的硬碟(點此查看大圖
)
測試產品搭配了兩塊日立Ultrastar硬碟,型號為HUA721010KLA330。硬碟屬於Ultrastar A7K1000系列,介面規范為SATA 3.0Gbps,緩存為32MB,轉速為7200rpm,容量為1TB。
好了,基本上我們對於塞恩斯TR2UT-B的介紹就到這里,下面我們還是送上大家比較期待的測試成績。當然,在公布成績之前,我們要來看看本次測試使用的平台。
測試平台基本信息
處理器
Intel Core Duo2 E7200(2.53GHz)
內存
現代 2GB DDR2 1066*2
主板晶元組
華碩P5Q-E (Intel P45+ICH10)
硬碟
日立 HUA721010KLA330(1TB 7200RPM SATA)
主板驅動
Intel Chipset Device Software 9.1.0.1007
操作系統
Windows Vista Ultimate SP1 For English 64bit
測試軟體
HD Tune 2.53、HD Tach 3.0.1、ATTO Disk、
SiSoftware Sandra Business v2009.1.15.40
本次我們搭建了一個主流Intel平台進行測試。測試的處理器選擇了Intel酷睿2 E7200,它的主頻為2.53Ghz。內存我們選擇了兩條DDR2 1066組建雙通道,4GB容量也是目前的標准配置。
在操作系統的選擇上,我們選擇了Windows Vista Ultimate英文版64位操作系統。其實對於磁碟測試來說,眾多軟體之間的多少都會有些差異,在個別項目中的測試結果甚至差別明顯。因此,我們對於每種介面都提供了4款軟體的測試數據作為參考。
首先我們進行的是默認狀態下(Standard)性能測試。測試表明,在USB2.0無陣列情況下,塞恩斯TR2UT-B的讀取性能在26-30MB/s之間,寫入性能約為26MB/s,這個成績對於USB介面來說還算不錯。
雖然RAID 0號稱是最快的磁碟陣列,不過受到介面速度的影響,性能提升沒有想像的那麼明顯。我們看到,在RAID 0模式下,塞恩斯TR2UT-B最高可以達到約32MB/s的讀取速度,寫入速度依然為26MB/s左右。
RAID 1陣列的測試成績相比前兩項來說差別也不大,讀取速度最高可以接近30MB/s,寫入速度接近22MB/s,並沒有特別突出的表現。
事實上,由於USB2.0介面傳輸速度的限制,大多數外置存儲產品都只能達到30MB/s以下的讀寫速度,對於用戶來說USB2.0介面的確是太慢了。
目前,許多台式機、筆記本都提供了e-SATA介面,憑借著強大的性能優勢和方便的連接方式,e-SATA介面已經能夠成為我們目前外置存儲產品的最好介面。
從測試的結果來看,在雙磁碟無陣列情況下,塞恩斯TR2UT-B的測試成績還不錯,除了ATTO軟體之外,另外三款主流軟體都給出了70MB/s左右的讀取速度。而在ATTO軟體的測試中,塞恩斯TR2UT-B的讀取速度可以達到147MB/s,寫入速度也達到了62MB/s左右,看來ATTO還是更適合FLASH存儲測試。
應用e-SATA介面之後,RAID 0的優勢體現了出現,不再像USB2.0那樣只有微弱的領先優勢。在我們使用的測試軟體中,有三款軟體都給出了100MB/s以上的讀取速度,相比標准模式下快了30%左右,寫入速度倒是和之前差不多,接近60MB/s。
最後我們測試的是RAID 1陣列,從結果來看它的性能和無陣列情況下的性能差不多。除ATTO軟體外,其他軟體測試的讀取成績大概為70-80MB/s,寫入速度大概為62MB/s,和標准模式下的結果接近。
由此看來,在e-SATA介面下,塞恩斯TR2UT-B的性能得到了較為充分的發揮,70-80MB/s讀取速度和60MB/s左右的寫入速度是平均水平,如果使用RAID 0陣列的話,寫入速度可以達到100MB/s以上,性能提升非常明顯。
塞恩斯TR2UT-B(點此查看大圖
)
【IT168評測中心】至此,我們針對塞恩斯TR2UT-B進行了為期一周的測試。在我們測試的過程中,塞恩斯TR2UT-B表現不錯,多陣列模式給消費者充分的選擇餘地。經過我們測試,塞恩斯TR2UT-B在USB2.0介面下可以實現約30MB/s的讀取速度和22MB/s的寫入速度,成績受到了USB2.0介面傳輸速度的影響,也符合一般USB介面產品的水平。
隨後我們使用e-SATA介面的測試中,塞恩斯TR2UT-B在Standard和RAID 1模式下的性能相近,讀取速度在70-80MB/s,寫入速度為60MB/s左右。而在RAID 0陣列下,塞恩斯TR2UT-B的讀取速度可以達到100MB/s,相比其他陣列來說性能提升非常明顯。
總體來看,塞恩斯TR2UT-B對於家庭消費者來說是個不錯的選擇,RAID 0模式下最大可以提供30%的讀取性能提升,比較適合重視傳輸速度、而又沒有什麼重要數據的個人消費類用戶選購。不過,如果廠商能夠將背面的電源開關設置在正面,會使得用戶的操作更為方便。
Ⅲ 技術解析Transwarp Inceptor是怎樣煉成的
技術解析Transwarp Inceptor是怎樣煉成的
當前Hadoop技術蓬勃發展,用於解決大數據的分析難題的技術平台開始涌現。Spark憑借性能強勁、高度容錯、調度靈活等技術優勢已漸漸成為主流技術,業界大部分廠商都提供了基於Spark的技術方案和產品。根據Databricks的統計,目前有11個商業的Spark版本。
在使用Spark作出計算平台的解決方案中,有兩種主流編程模型,一類是基於SparkAPI或者衍生出來的語言,另一種是基於SQL語言。SQL作為資料庫領域的事實標准語言,相比較用API(如MapReceAPI,SparkAPI等)來構建大數據分析的解決方案有著先天的優勢:一是產業鏈完善,各種報表工具、ETL工具等可以很好的對接;二是用SQL開發有更低的技術門檻;三是能夠降低原有系統的遷移成本等。因此,SQL語言也漸漸成為大數據分析的主流技術標准。本文將深入解析Inceptor的架構、編程模型和編譯優化技術,並提供基準測試在多平台上的性能對比數據。
1.Inceptor架構
TranswarpInceptor是基於Spark的分析引擎,如圖1所示,從下往上有三層架構:最下面是存儲層,包含分布式內存列式存儲(TranswarpHolodesk),可建在內存或者SSD上;中間層是Spark計算引擎層,星環做了大量的改進保證引擎有超強的性能和高度的健壯性;最上層包括一個完整的SQL99和PL/SQL編譯器、統計演算法庫和機器學習演算法庫,提供完整的R語言訪問介面。
TranswarpInceptor可以分析存儲在HDFS、HBase或者TranswarpHolodesk分布式緩存中的數據,可以處理的數據量從GB到數十TB,即使數據源或者中間結果的大小遠大於內存容量也可高效處理。另外TranswarpInceptor通過改進Spark和YARN的組合,提高了Spark的可管理性。同時星環不僅僅是將Spark作為一個預設計算引擎,也重寫了SQL編譯器,提供更加完整的SQL支持。
同時,TranswarpInceptor還通過改進Spark使之更好地與HBase融合,可以為HBase提供完整的SQL支持,包括批量SQL統計、OLAP分析以及高並發低延時的SQL查詢能力,使得HBase的應用可以從簡單的在線查詢應用擴展到復雜分析和在線應用結合的混合應用中,大大拓展了HBase的應用范圍。
2.編程模型
TranswarpInceptor提供兩種編程模型:一是基於SQL的編程模型,用於常規的數據分析、數據倉庫類應用市場;二是基於數據挖掘編程模型,可以利用R語言或者SparkMLlib來做一些深度學習、數據挖掘等業務模型。
2.1SQL模型
TranswarpInceptor實現了自己的SQL解析執行引擎,可以兼容SQL99和HiveQL,自動識別語法,因此可以兼容現有的基於Hive開發的應用。由於TranswarpInceptor完整支持標準的SQL 99標准,傳統資料庫上運行的業務可以非常方便的遷移到Transwarp Inceptor系統上。此外Transwarp Inceptor支持PL/SQL擴展,傳統數據倉庫的基於PL/SQL存儲過程的應用(如ETL工具)可以非常方便的在Inceptor上並發執行。另外Transwarp Inceptor支持部分SQL 2003標准,如窗口統計功能、安全審計功能等,並對多個行業開發了專門的函數庫,因此可以滿足多個行業的特性需求。
2.2數據挖掘計算模型
TranswarpInceptor實現了機器學習演算法庫與統計演算法庫,支持常用機器學習演算法並行化與統計演算法並行化,並利用Spark在迭代計算和內存計算上的優勢,將並行的機器學習演算法與統計演算法運行在Spark上。例如:機器學習演算法庫有包括邏輯回歸、樸素貝葉斯、支持向量機、聚類、線性回歸、關聯挖掘、推薦演算法等,統計演算法庫包括均值、方差、中位數、直方圖、箱線圖等。TranswarpInceptor可以支持用R語言或者SparkAPI在平台上搭建多種分析型應用,例如用戶行為分析、精準營銷、對用戶貼標簽、進行分類。
3.SQL編譯與優化
TranswarpInceptor研發了一套完整的SQL編譯器,包括HiveQL解析器、SQL標准解析器和PL/SQL解析器,將不同的SQL語言解析成中間級表示語言,然後經過優化器轉換成物理執行計劃。SQL語言解析後經過邏輯優化器生成中間級表示語言,而中間表示語言再經過物理優化器生成最終的物理執行計劃。從架構上分,邏輯優化器和物理優化器都包含基於規則的優化模塊和基於成本的優化模塊。
為了和Hadoop生態更好的兼容,Inceptor為一個SQL查詢生成MapRece上的執行計劃和Spark上的執行計劃,並且可以通過一個SET命令在兩種執行引擎之間切換。
3.1SQL編譯與解析
TranswarpInceptor的SQL編譯器會根據輸入的SQL查詢的類型來自動選擇不同的解析器,如PL/SQL存儲過程會自動進入PL/SQL解析器並生成一個SparkRDD的DAG從而在Spark平台上並行計算,標准SQL查詢會進入SQL標准解析器生成Spark或MapRece執行計劃。由於HiveQL和標準的SQL有所出入,為了兼容HiveQL,Transwarp Inceptor保留了HiveQL解析器,並可以對非標准SQL的Hive查詢生成Spark或者Map Rece執行計劃。
3.1.1SQL標准解析器
TranswarpInceptor構建了自主研發的SQL標准解析器,用於解析SQL99& SQL 2003查詢並生成Spark和Map Rece的執行計劃。詞法和語法分析層基於Antlr語法來構建詞法範式,通過Antlr來生成抽象語義樹,並會通過一些上下文的語義來消除沖突並生成正確的抽象語義樹。語義分析層解析上層生成的抽象語義樹,根據上下文來生成邏輯執行計劃並傳遞給優化器。首先Transwarp Inceptor會將SQL解析成TABLE SCAN、SELECT、FILTER、JOIN、UNION、ORDER BY、GROUP BY等主要的邏輯塊,接著會根據一些Meta信息進一步細化各個邏輯塊的執行計劃。如TABLE SCAN會分成塊讀取、塊過濾、行級別過濾、序列化等多個執行計劃。
3.1.2PL/SQL解析器
PL/SQL是Oracle對SQL語言的模塊化擴展,已經在很多行業中有大規模的應用,是數據倉庫領域的重要編程語言。
為了讓存儲過程在Spark上有較好的性能,PL/SQL解析器會根據存儲過程中的上下文關系來生成SQLDAG,然後對各SQL的執行計劃生成的RDD進行二次編譯,通過物理優化器將一些沒有依賴關系的RDD進行合並從而生成一個最終的RDDDAG。因此,一個存儲過程被解析成一個大的DAG,從而stage之間可以大量並發執行,避免了多次執行SQL的啟動開銷並保證了系統的並發性能。
解析並生成SQL級別的執行計劃
3.2SQL優化器
TranswarpInceptor使用Spark作為默認計算引擎,並且開發了完善的SQL優化器,因此在大量的客戶案例性能測試中,TranswarpInceptor的性能領先MapRece 10-100倍,並超越部分開源MPP資料庫。SQL優化器對平台性能的提升居功至偉。
3.2.1基於規則的優化器(RuleBasedOptimizer)
目前為止,TranswarpInceptor共實現了一百多個優化規則,並且在持續的添加新的規則。按照功能劃分,這些規則主要分布在如下幾個模塊:
文件讀取時過濾
在文件讀取時過濾數據能夠最大化的減少參與計算的數據量從而最為有效的提高性能,因此TranswarpInceptor提供了多個規則用於生成表的過濾條件。對於一些SQL中的顯示條件,TranswarpInceptor會盡量將過濾前推到讀取表中;而對於一些隱式的過濾條件,如可以根據joinkey生成的過濾規則,Inceptor會根據語義保證正確性的前提下進行規則生成。
過濾條件前置
TranswarpInceptor能夠從復雜的組合過濾條件中篩選出針對特定表的過濾規則,然後通過SQL語義來確定是否能將過濾條件前推到盡量早的時候執行。如果有子查詢,過濾條件可以遞歸前推入最低層的子查詢中,從而保證所有的冗餘數據被刪除。
超寬表的讀取過濾
對一些列超多的表進行處理的時候,TranswarpInceptor首先會根據SQL語義來確定要讀取的列,並在讀取表的時候進行跨列讀取減少IO和內存消耗。而如果表有過濾條件,Inceptor會做進一步優化,首先只讀取過濾條件相關的列來確定該行記錄是否需要被選擇,如果不是就跳過當前行的所有列,因此能夠最大程度上的減少數據讀取。在一些商業實施中,這些優化規則能夠帶來5x-10x的性能提升。
Shuffle Stage的優化與消除
Spark的shuffle實現的效率非常低,需要把結果寫磁碟,然後通過HTTP傳輸。TranswarpInceptor添加了一些shuffle消除的優化規則,對SQL的DAG中不必要或者是可以合並的shufflestage進行消除或者合並。對於必須要做Shuffle的計算任務,Inceptor通過DAGScheler來提高shuffle的效率:MapTask會直接將結果返回給DAGScheler,然後DAGScheler將結果直接交給Rece Task而不是等待所有Map Task結束,這樣能夠非常明顯的提升shuffle階段的性能。
Partition消除
TranswarpInceptor提供單一值Partition和RangePartition,並且支持對Partition建Bucket來做多次分區。當Partition過多的時候,系統的性能會因為內存消耗和調度開銷而損失。因此,Inceptor提供了多個規則用於消除不必要的Partition,如果上下文中有隱式的對Partition的過濾條件,Inceptor也會生成對partition的過濾規則。
3.2.2基於成本的優化器(CostBasedOptimizer)
基於規則的優化器都是根據一些靜態的信息來產生的,因此很多和動態數據相關的特性是不能通過基於規則的優化來解決,因此TranswarpInceptor提供了基於成本的優化器來做二次優化。相關的原始數據主要來自Meta-store中的表統計信息、RDD的信息、SQL上下文中的統計信息等。依賴於這些動態的數據,CBO會計算執行計劃的物理成本並選擇最有效的執行計劃。一些非常有效的優化規則包括如下幾點:
JOIN順序調優
在實際的案例中,join是消耗計算量最多的業務,因此對join的優化至關重要。在多表JOIN模型中,TranswarpInceptor會根據統計信息來預估join的中間結果大小,並選擇產生中間數據量最小的join順序作為執行計劃。
JOIN類型的選擇
TranswarpInceptor支持Left-mostJoinTree 和 Bush Join Tree,並且會根據統計信息來選擇生成哪種Join模型有最佳性能。此外,Transwarp Inceptor會根據原始表或者中間數據的大小來選擇是否開啟針對數據傾斜模型下的特殊優化等。此外,針對HBase表是否有索引的情況,Transwarp Inceptor會在普通Join和Look-up Join間做個均衡的選擇。
並發度的控制
Spark通過線程級並發來提高性能,但是大量的並發可能會帶來不必要的調度開銷,因此不同的案例在不同並發度下會有最佳性能。TranswarpInceptor通過對RDD的一些屬性進行推算來選擇最佳並發控制,對很多的案例有著2x-3x的性能提升。
4.TranswarpHolodesk內存計算引擎
為了有效的降低SQL分析的延時,減少磁碟IO對系統性能的影響,星環科技研發了基於內存或者SSD的存儲計算引擎TranswarpHolodesk,通過將表數據直接建在內存或者SSD上以實現SQL查詢全內存計算。另外TranswarpHolodesk增加了數據索引功能,支持對多個數據列建索引,從而更大程度的降低了SQL查詢延時。
4.1存儲格式
TranswarpHolodesk基於列式存儲做了大量的原創性改進帶來更高的性能和更低的數據膨脹率。首先數據被序列化後存儲到內存或SSD上以節省者資源佔用。如圖3所示,每個表的數據被存儲成若干個Segment,每個Segment被劃分成若干個Block,每個Block按照列方式存儲於SSD或內存中。另外每個Block的頭部都加上Min-MaxFilter和BloomFilter用於過濾無用的數據塊,減少不必要的數據進入計算階段。
TranswarpHolodesk根據查詢條件的謂詞屬性對每個數據塊的對應列構建數據索引,索引列採用自己研發的Trie結構進行組織存儲,非索引列採用字典編碼的方式進行組織存儲。Trie不僅能對具有公共前綴的字元串進行壓縮,而且可以對輸入的字元串排序,從而可以利用二分查找快速查詢所需數據的位置,從而快速響應查詢需求。
HDFS2.6支持StorageTier讓應用程序可以選擇存儲層為磁碟或者SSD,但是沒有專用的存儲格式設計是無法有效利用SSD的讀寫吞吐量和低延,因此現有的Text以及行列混合(ORC/Parquet)都不能有效的利用SSD的高性能。為此驗證存儲結構對性能的影響,我們將HDFS構建在SSD上並選用某基準測試來做了進一步的性能對比,結果如圖4所示:採用文本格式,PCI-ESSD帶來的性能提升僅1.5倍;採用專為內存和SSD設計的Holodesk列式存儲,其性能相比較SSD上的HDFS提升高達6倍。
4.2性能優勢
某運營商客戶在12台x86伺服器上搭建了TranswarpInceptor,將TranswarpHolodesk配置在PCIE-SSD上,並與普通磁碟表以及DB2來做性能對比測試。最終測試數據如圖5所示:
在純粹的count測試一項,Holodesk性能相對於磁碟表最高領先32倍;對於join測試一項,TranswarpHolodesk最高領先磁碟表多達12倍;在單表聚合測試中,Holodesk提升倍數達10~30倍。另外TranswarpHolodesk在和DB2的對比中也表現優秀,兩個復雜SQL查詢在DB2資料庫中需要運行1小時以上,但是在使用TranswarpHolodesk均是分鍾級和秒級就返回結果。
內存的價格大約是同樣容量SSD的十倍左右,為了給企業提供更高性價比的計算方案,TranswarpHolodesk針對SSD進行了大量的優化,使得應用在SSD上運行具有與在內存上比較接近的性能,從而為客戶提供了性價比更高的計算平台。
在對TPC-DS的IO密集型查詢的測試中,無論上構建在PCI-ESSD還是內存上,Holodesk對比磁碟表有一個數量級上的性能提升;而SSD上的Holodesk性能只比內存差10%左右。
5.穩定的Spark執行引擎
企業目前應用開源Spark的主要困難在穩定性、可管理性和功能不夠豐富上。開源Spark在穩定性上還有比較多的問題,在處理大數據量時可能無法運行結束或出現Outofmemory,性能時快時慢,有時比Map/Rece更慢,無法應用到復雜數據分析業務中。
TranswarpInceptor針對各種出錯場景設計了多種解決方法,如通過基於成本的優化器選擇最合適的執行計劃、加強對數據結構內存使用效率的有效管理、對常見的內存出錯問題通過磁碟進行數據備份等方式,極大提高了Spark功能和性能的穩定性,上述問題都已經解決並經過商業案例的考驗。TranswarpInceptor能穩定的運行7*24小時,並能在TB級規模數據上高效進行各種穩定的統計分析。
6.SQL引擎效能驗證
TPC-DS是TPC組織為DecisionSupportSystem設計的一個測試集,包含對大數據集的統計/報表生成/聯機查詢/數據挖掘等復雜應用,測試用的數據有各種不同的分布與傾斜,與真實場景非常接近。隨著國內外各代表性的Hadoop發行版廠商以TPC-DS為標准測評產品,TPC-DS也就逐漸成為了業界公認的Hadoop系統測試准則。
6.1驗證對比的平台和配置
我們搭建了兩個集群分別用於TranswarpInceptor與ClouderaDataHub/Impala的測試。
6.2TranswarpInceptorVS Cloudera Impala
TranswarpInceptor由於有完善的SQL支持,能夠運行全部所有的99個SQL查詢。而由於Cloudera官方發布的TPC-DS測試集只包含19個SQL案例,因此我們只能運行這19個SQL,實驗證明這部分查詢在Impala上全部正常運行完成。
6.3TranswarpInceptorVS Map Rece
我們使用了同樣的硬體和軟體配置完成和開源的Hive執行效率相比,TranswarpInceptor能夠帶來10x-100x的性能提升。圖8是TPC-DS的部分SQL查詢在Inceptor和CDH5.1Hive的性能提升倍數,其中最大的提升倍數竟可達到123倍。
7.結語
隨著在大數據領域國內外開始處於同一起跑線,我們相信像星環科技這樣國內具有代表性的Hadoop發行版廠商將在中國的廣闊市場空間中獲得長足發展,並且由於中國市場激烈的競爭與磨練,逐步打磨出超越國外先進廠商的技術與實力。
劉汪根。2013年加入星環,作為早期員工參與了星環大數據平台的構建,現擔任數據平台部研發經理,主要負責與管理星環大數據平台數據平台的研發工作,如SQL編譯器,Spark執行引擎等工作,產品涵括TranswarpInceptor/TranswarpStream等軟體。
【編者按】星環科技從2013年6月開始研發基於Spark的SQL執行引擎,在2013年底推出TranswarpInceptor1.0,並落地了國內首個7x24小時的商用項目。經過1年多的持續創新與改進,星環已經在國內落地了數十個Inceptor的商用項目。這是一篇星環Spark解決方案的技術解析,也是Spark用戶可以效仿的優化之道。
Ⅳ hudi流寫入如何保證事務
方法如下:
1. 項目背景
傳統數倉的組織架構是針對離線數據的OLAP(聯機事務分析)需求設計的,常用的導入數據方式為採用sqoop或spark定時作業逐批將業務庫數據導入數倉。隨著數據分析對實時性要求的不斷提高,按小時、甚至分鍾級的數據同步越來越普遍。由此展開了基於spark/flink流處理機制的(准)實時同步系統的開發。
然而實時同步數倉從一開始就面臨如下幾個挑戰:
小文件問題。不論是spark的microbatch模式,還是flink的逐條處理模式,每次寫入HDFS時都是幾M甚至幾十KB的文件。長時間下來產生的大量小文件,會對HDFS namenode產生巨大的壓力。
對update操作的支持。HDFS系統本身不支持數據的修改,無法實現同步過程中對記錄進行修改。
事務性。不論是追加數據還是修改數據,如何保證事務性。即數據只在流處理程序commit操作時一次性寫入HDFS,當程序rollback時,已寫入或部分寫入的數據能隨之刪除。
Hudi是針對以上問題的解決方案之一。以下是對Hudi的簡單介紹,主要內容翻譯自官網。
2. Hudi簡介
2.1 時間線(Timeline)
Hudi內部按照操作時刻(instant)對表的所有操作維護了一條時間線,由此可以提供表在某一時刻的視圖,還能夠高效的提取出延後到達的數據。每一個時刻包含:
時刻行為:對表操作的類型,包含:
commit:提交,將批次的數據原子性的寫入表;
clean: 清除,後台作業,不斷清除不需要的舊得版本的數據;
delta_commit:delta 提交是將批次記錄原子性的寫入MergeOnRead表中,數據寫入的目的地是delta日誌文件;
compacttion:壓縮,後台作業,將不同結構的數據,例如記錄更新操作的行式存儲的日誌文件合並到列式存儲的文件中。壓縮本身是一個特殊的commit操作;
rollback:回滾,一些不成功時,刪除所有部分寫入的文件;
savepoint:保存點,標志某些文件組為「保存的「,這樣cleaner就不會刪除這些文件;
時刻時間:操作開始的時間戳;
狀態:時刻的當前狀態,包含:
requested 某個操作被安排執行,但尚未初始化
inflight 某個操作正在執行
completed 某一個操作在時間線上已經完成
Hudi保證按照時間線執行的操作按照時刻時間具有原子性及時間線一致性。
2.2 文件管理
Hudi表存在在DFS系統的 base path(用戶寫入Hudi時自定義) 目錄下,在該目錄下被分成不同的分區。每一個分區以 partition path 作為唯一的標識,組織形式與Hive相同。
每一個分區內,文件通過唯一的 FileId 文件id 劃分到 FileGroup 文件組。每一個FileGroup包含多個 FileSlice 文件切片,每一個切片包含一個由commit或compaction操作形成的base file 基礎文件(parquet文件),以及包含對基礎文件進行inserts/update操作的log files 日誌文件(log文件)。Hudi採用了MVCC設計,compaction操作會將日誌文件和對應的基礎文件合並成新的文件切片,clean操作則刪除無效的或老版本的文件。
2.3 索引
Hudi通過映射Hoodie鍵(記錄鍵+ 分區路徑)到文件id,提供了高效的upsert操作。當第一個版本的記錄寫入文件時,這個記錄鍵值和文件的映射關系就不會發生任何改變。換言之,映射的文件組始終包含一組記錄的所有版本。
2.4 表類型&查詢
Hudi表類型定義了數據是如何被索引、分布到DFS系統,以及以上基本屬性和時間線事件如何施加在這個組織上。查詢類型定義了底層數據如何暴露給查詢。
| 表類型 | 支持的查詢類型 | | :-------------------- | :----------------------------- | | Copy On Write寫時復制 | 快照查詢 + 增量查詢 | | Merge On Read讀時合並 | 快照查詢 + 增量查詢 + 讀取優化 |
2.4.1 表類型
Copy On Write:僅採用列式存儲文件(parquet)存儲文件。更新數據時,在寫入的同時同步合並文件,僅僅修改文件的版次並重寫。
Merge On Read:採用列式存儲文件(parquet)+行式存儲文件(avro)存儲數據。更新數據時,新數據被寫入delta文件並隨後以非同步或同步的方式合並成新版本的列式存儲文件。
| 取捨 | CopyOnWrite | MergeOnRead | | :----------------------------------- | :---------------------- | :-------------------- | | 數據延遲 | 高 | 低 | | Update cost (I/O)更新操作開銷(I/O) | 高(重寫整個parquet) | 低(追加到delta記錄) | | Parquet文件大小 | 小(高更新(I/O)開銷) | 大(低更新開銷) | | 寫入頻率 | 高 | 低(取決於合並策略) |
2.4.2 查詢類型
快照查詢:查詢會看到以後的提交操作和合並操作的最新的錶快照。對於merge on read表,會將最新的基礎文件和delta文件進行合並,從而會看到近實時的數據(幾分鍾的延遲)。對於 on write表,當存在更新/刪除操作時或其他寫操作時,會直接代替已有的parquet表。
增量查詢:查詢只會看到給定提交/合並操作之後新寫入的數據。由此有效的提供了變更流,從而實現了增量數據管道。
讀優化查詢:查詢會看到給定提交/合並操作之後表的最新快照。只會查看到最新的文件切片中的基礎/列式存儲文件,並且保證和非hudi列式存儲表相同的查詢效率。
| 取捨 | 快照 | 讀取優化 | | :------- | :------------------------------------------------------ | :------------------------------------ | | 數據延遲 | 低 | 高 | | 查詢延遲 | 高(合並基礎/列式存儲文件 + 行式存儲delta / 日誌 文件) | 低(原有的基礎/列式存儲文件查詢性能) |
3. Spark結構化流寫入Hudi
以下是整合spark結構化流+hudi的示意代碼,由於Hudi OutputFormat目前只支持在spark rdd對象中調用,因此寫入HDFS操作採用了spark structured streaming的forEachBatch運算元。具體說明見注釋。
4. 測試結果
受限於測試條件,這次測試沒有考慮update操作,而僅僅是測試hudi對追加新數據的性能。
數據程序一共運行5天,期間未發生報錯導致程序退出。
kafka每天讀取數據約1500萬條,被消費的topic共有9個分區。
幾點說明如下
1 是否有數據丟失及重復
由於每條記錄的分區+偏移量具有唯一性,通過檢查同一分區下是否有偏移量重復及不連續的情況,可以斷定數據不存丟失及重復消費的情況。
2 最小可支持的單日寫入數據條數
數據寫入效率,對於cow及mor表,不存在更新操作時,寫入速率接近。這本次測試中,spark每秒處理約170條記錄。單日可處理1500萬條記錄。
3 cow和mor表文件大小對比
每十分鍾讀取兩種表同一分區小文件大小,單位M。結果如下圖,mor表文件大小增加較大,佔用磁碟資源較多。不存在更新操作時,盡可能使用cow表。
Ⅳ 大數據專業主要學什麼啊
1、大數據專業,一般是指大數據採集與管理專業;
2、課程設置,大數據專業將從大數據應用的三個主要層面(即數據管理、系統開發、海量數據分析與挖掘)系統地幫助企業掌握大數據應用中的各種典型問題的解決辦法,包括實現和分析協同過濾演算法、運行和學習分類演算法、分布式Hadoop集群的搭建和基準測試、分布式Hbase集群的搭建和基準測試、實現一個基於、Maprece的並行演算法、部署Hive並實現一個的數據操作等等,實際提升企業解決實際問題的能力。
3、核心技術,
(1)大數據與Hadoop生態系統。詳細介紹分析分布式文件系統HDFS、集群文件系統ClusterFS和NoSQL Database技術的原理與應用;分布式計算框架Maprece、分布式資料庫HBase、分布式數據倉庫Hive。
(2)關系型資料庫技術。詳細介紹關系型資料庫的原理,掌握典型企業級資料庫的構建、管理、開發及應用。
(3)分布式數據處理。詳細介紹分析Map/Rece計算模型和Hadoop Map/Rece技術的原理與應用。
(4)海量數據分析與數據挖掘。詳細介紹數據挖掘技術、數據挖掘演算法–Minhash, Jaccard and Cosine similarity,TF-IDF數據挖掘演算法–聚類演算法;以及數據挖掘技術在行業中的具體應用。
(5)物聯網與大數據。詳細介紹物聯網中的大數據應用、遙感圖像的自動解譯、時間序列數據的查詢、分析和挖掘。
(6)文件系統(HDFS)。詳細介紹HDFS部署,基於HDFS的高性能提供高吞吐量的數據訪問。
(7)NoSQL。詳細介紹NoSQL非關系型資料庫系統的原理、架構及典型應用。
4、行業現狀,
今天,越來越多的行業對大數據應用持樂觀的態度,大數據或者相關數據分析解決方案的使用在互聯網行業,比如網路、騰訊、淘寶、新浪等公司已經成為標准。而像電信、金融、能源這些傳統行業,越來越多的用戶開始嘗試或者考慮怎麼樣使用大數據解決方案,來提升自己的業務水平。
在「大數據」背景之下,精通「大數據」的專業人才將成為企業最重要的業務角色,「大數據」從業人員薪酬持續增長,人才缺口巨大。
Ⅵ 內存測試卡怎麼看
內存測試卡使用說明
本測試卡是居於PCI介面的內存測試卡,通過搭配專用主板,可以測試SDR,
DDR內存.內存頻率包括66MHZ,100MHZ,133MHZ.本卡功能包括內存條IC
好壞測試,內存條短路測試,IC內部好壞測試,內存條兼容性穩定性測試.測
試速度快,能精確指出內存條上壞IC所在的位置.是內存生產,維修的好幫手.
一:系統主要組成部分及用法
二:系統測試環境
三:問題和解答
一:本系統主要組成部分為: 3個7段數碼管(U4-U6),1個5X8顯示陣列(U2),2
個開關(S1,S2)
1:7段數碼管用來顯示內存M數:
在內存測試過程中,每測完1M,數碼管就會顯示相對應的M數,測試完後,數碼管會
顯示出總容量的M數.比如:當你測試雙面32M內存時,開始數碼管顯示000,表明正在
測試0到1M的地址范圍.測完1M後,數碼管顯示001,表示正在測試1M到2M的范圍.
測試完後,數碼管顯示032.
2:開關用來選擇測試模式:
本系統提供了四種測試模式:S1,S2 = 00 , 01 , 10 , 11
a):S1,S2=00
此模式也叫快速測試.通過對內存跳躍式測試來判斷內存好壞,主要針對IC內部
大部分損壞,金手指接觸不良,或者IC假焊,連焊等由於加工造成的內存條損壞.對
於133M外頻的內存條,每測試128M約需要5秒鍾.
b):S1,S2=01
此模式也叫全面測試.通過對內存中每一單元進行多次讀寫來判斷內存好壞,主要
針對IC內部局部損壞進行測試.對於133M外頻的內存條,每測試1M約需要1秒
鍾.
Ⅶ 測試對比:UFS與eMMC性能差距到底有多
手機快閃記憶體eMMc和UFS這兩種不同標准,所表現出的性能也是天差地別。
需要注意的是,eMMc和UFS不是兩種不同規格的存儲晶元,它們都是在NAND存儲晶元的基礎上,再加上了控制晶元,接入標准介面,進行標准封裝,形成一個高度集成的儲存模塊。
二者都是面向移動端快閃記憶體的一種技術標准。
eMMc最新標准已經發展到5.1。而理論最大傳輸速度可以達到600M/s,不過實際使用中差不多有250M/s。
而最新的UFS 2.X有兩個版本,其中UFS 2.0 HS-G2的理論帶寬為5.8Gbps,大約740MB/s,更快速的UFS 2.1 HS-G3的理論帶寬更是達到了11.6Gbps,約1.5GB/s。實際使用中可達到600M/s以上。
兩者之間如此大的差異是因為UFS使用高速串列介面替代了並行介面,改用了全雙工方式,使收發數據可以同時進行,而eMMc則不行。
說了這么多,那麼到底對我們使用手機有什麼影響呢?首先,最直觀的就是,打開程序變快,另外多任務執行響應速度快,低延遲載入快,連續拍照寫入更快,預覽文件載入更快。而在提升速度的同時功耗變低了。ufs相比eMMc有如此巨大的優勢,也不怪「快閃記憶體門」受害用戶會有如此大的反應了,大家以後購機可要多個心眼了。
數據資料來源於網路。
Ⅷ 內存卡檢測工具怎麼用
MyDiskTest檢測工具 MyDiskTest是SD內存卡、U盤和手機TF卡等的專用檢測工具,這個檢測工具主要針對內存卡的存儲容量還有對內存卡的擴容檢測、讀寫速度測試和文件對比測試。在官方網站和正確途徑下載下來之後,要將其與內存卡關聯起來,然後點擊確定,就可以進行檢測。
chipgenius晶元精靈(USB檢測工具) 這項檢測工具主要是針對USB的,這是一個外用的檢測工具,小巧方便,插入介面便能使用,是一個綠色軟體。主要功能是可以自動的去查詢讀卡器、MP3/MP4、U盤、移動硬碟等。 chipgenius晶元精靈不同於其他檢測工具的是它的方便和小巧,可以隨時查詢usb設備的信息、介面速度、序列號等等,是電子消費者、發燒友、數碼消費者的最愛。
當然,這里有一個小提示,就是如果內存卡出現故障時,先不要著急,可以先嘗試使用橡皮擦或者細膩的紙巾去擦拭內存卡金手指部位,就像電池沒電了用牙齒咬一下又可以用一樣。在急迫的時候,這個小方法可能會派上用場。