1. 程式人生 > >Hive 集算器 Impala效能對比測試報告(上)

Hive 集算器 Impala效能對比測試報告(上)

目的

  對比Hive、集算器、Impala這三種大資料解決方案在分組彙總和關聯計算時的效能差異。

硬體環境

  PC數量:4

  CPU:Intel Core i5 2500(4核)

  RAM:16G

  HDD:2T/7200rpm

  Ethernet adapter:1000M

軟體環境

  作業系統:CentOS6.4

  JDK:1.6

  Hadoop/hdfs 2.2.0

測試物件

  Hive        0.11.0

 集算器     3.1

  Impala      1.2.0

資料取樣

  1、每次測試前重啟PC;

  2、執行任務前在日誌中列印開始時間;

  3、執行任務後在日誌中列印結束時間;

  4、用結束時間減去開始時間作為參考結果。

1-4重複三次,取參考結果的平均值作為本次測試最終結果。

測試方案

      Hive/Impala是類SQL語言,適合常規簡單計算,演算法過於複雜則難以實現;集算器是過程性語言,適合複雜的資料計算。因此,測試採用簡單的分組彙總和關聯計算,使兩類語言都能實現。

    本測試報告使用了CDH5.0beta裡整合的hdfs和hive而不是單獨發行的hadoop,這是由於Hadoop的安裝部署比較複雜,測試環境總是出現故障,而CDH相對容易。

    集算器既支援HDFS也支援本地硬碟,後者更快一些;而hive\Impala只支援HDFS。為了測試三種解決方案的極限效能,集算器使用本地硬碟測試,並事先將資料拆分為多個檔案;而Hive\Impala則使用HDFS。

窄表的分組彙總測試

資料樣本:

    表名:p_narrow

    列數:11

    行數:5億行

    文字狀態下所佔空間:120.6G。

    資料結構:personid int,name string,sex int,cityid int,birthday int,degreeint,col1 string,col2 int,col3 int,col4 int,col5 string

測試案例:

1、1列分組1列彙總

  Hive: select personid%10000, sum(col3) from p_narrow group by personid%10000

 集算器:程式碼分為三部分,分別是:彙總機程式、節點機主程式、節點機子程式。                             

集算器彙總機程式

集算器節點機主程式

集算器節點機子程式

  Impala: select personid%10000, sum(col3) from p_narrow group by personid%10000

2、1列分組4列彙總

   Hive: select personid%10, count(col1), max(col2),sum(col3), count(col5) from p_narrow groupby personid%10

 集算器

  將彙總機程式A5格改為:
 =A4.groupx(personid:personid;count(cul1count):cul1count,max(cul2count):cul2count,sum(cul3sum):cul3sum,count(cul5):cul5count)

   節點機主程式A5格改為:
 [email protected](personid:personid;count(col1count):cu1count,max(col2count):cul2count,sum(col3sum):cul3sum,count(col5):cul5count)
   
節點機主程式A1格改為:

 =cursor.groups(personid%10000:personid; count(col1count):co1count, max(col2count): col2count, sum(col3sum):col3sum,count(col5):col5count)

Impalaselect personid%10, count(col1), max(col2),sum(col3), count(col5) from p_narrow group by personid%10

3、4列分組1列彙總

  Hive: select personid%10, cityid%10, birthdayid%10,col4%10 from p_narrow group bypersonid%10,cityid%10,birthdayid%10,col4%10

  集算器

    將彙總機程式A5格改為:

  =A4.groupx(personid:personid,cityid:cityid, birthdayid:birthdayid, col4:col4; sum(cul3sum):cul3sum)

    節點機主程式A5格改為:

  [email protected](personid:personid, cityid:cityid,birthdayid:birthdayid, col4:col4; sum(col3sum):cul3sum)

    節點機主程式A1格改為:

  =cursor.groups(personid%10:personid, cityid%10:cityid,birthdayid%10:birthdayid, col4%10:col4; sum(col3sum):col3sum)

  Impala: select personid%10, cityid%10,birthdayid%10, col4%10 from p_narrow group bypersonid%10,cityid%10,birthdayid%10,col4%10

4、4列分組,4列彙總

  Hive: select personid%10, cityid%10,birthdayid%10, col4%10, count(col1), max(col2), sum(col3), count(col5) from p_narrow group bypersonid%10,cityid%10,birthdayid%10,col4%10

  集算器

   將彙總機程式A5格改為:

  =A4.groupx(personid:personid,cityid:cityid, birthdayid:birthdayid, col4:col4;count(cul1count):cul1count,max(cul2count):cul2count,sum(cul3sum):cul3sum,count(cul5):cul5count)

   節點機主程式A5格改為:

  [email protected](personid:personid, cityid:cityid, birthdayid:birthdayid, col4:col4; count(col1count):cu1count,max(col2count):cul2count,sum(col3sum):cul3sum,count(col5):cul5count)

   節點機主程式A1格改為:

  =cursor.groups(personid%10:personid, cityid%10:cityid, birthdayid%10:birthdayid,col4%10:col4; count(col1count):co1count, max(col2count):col2count, sum(col3sum):col3sum, count(col5):col5count)

  Impala: select personid%10, cityid%10, birthdayid%10,col4%10, count(col1), max(col2), sum(col3), count(col5) from p_narrow group bypersonid%10,cityid%10,birthdayid%10,col4%10

測試結果:

hive/集算器/impala效能測試結果 

寬表的分組彙總測試

資料樣本:

    表名:p

    列數:106

    行數:6千萬

    文字狀態下所佔空間:127.9G。

    資料結構:personid int,name string,sex int,cityid int,birthday int,degree int,col1int,col2 int,col3 int,col4 int,col5 int,col6 int,col7 int,col8 int,col9 int,col10int,col11 int,col12 int,col13 int,col14 int,col15 int,col16 int,col17 int,col18int,col19 int,col20 int,col21 int,col22 int,col23 int,col24 int,col25 int,col26int,col27 int,col28 int,col29 int,col30 int,col31 int,col32 int,col33 int,col34int,col35 int,col36 int,col37 int,col38 int,col39 int,col40 int,col41 int,col42int,col43 int,col44 int,col45 int,col46 int,col47 int,col48 int,col49 int,col50int,col51 int,col52 int,col53 int,col54 int,col55 int,col56 int,col57 int,col58int,col59 int,col60 int,col61 int,col62 int,col63 int,col64 int,col65 int,col66int,col67 int,col68 int,col69 int,col70 int,col71 int,col72 int,col73 int,col74int,col75 int,col76 int,col77 int,col78 int,col79 int,col80 int,col81 int,col82int,col83 int,col84 string,col85 string,col86 string,col87 string,col88 string,col89string,col90 string,col91 string,col92 string,col93 string,col94 string,col95 string,col96string,col97 string,col98 string,col99 string,col100 string

測試案例:

1、1列分組1列彙總

  Hive: select personid%10000, sum(col3) from p group by personid%10000

  集算器:程式碼分為三部分,分別是:彙總機程式、節點機主程式、節點機子程式。

 

  Impala: select personid%10000, sum(col3) from p group by personid%10000

2、1列分組4列彙總

  Hive: select personid%10, count(col1), max(col2), sum(col3), count(col5)from p group by personid%10

  集算器

    將彙總機程式A5格改為:

 =A4.groupx(personid:personid;count(cul1count):cul1count,max(cul2count):cul2count,sum(cul3sum):cul3sum,count(cul5):cul5count)

    節點機主程式A5格改為:

 [email protected](personid:personid;count(col1count):cu1count,max(col2count):cul2count,sum(col3sum):cul3sum,count(col5):cul5count)

    節點機主程式A1格改為:

 =cursor.groups(personid%10000:personid; count(col1count):co1count, max(col2count): col2count, sum(col3sum):col3sum,count(col5):col5count)

  Impala:select personid%10, count(col1), max(col2),sum(col3), count(col5) from p group by personid%10

3、4列分組1列彙總

  Hive: select personid%10, cityid%10, birthdayid%10, col4%10 from p group bypersonid%10,cityid%10,birthdayid%10,col4%10

  集算器:

   將彙總機程式A5格改為:

 =A4.groupx(personid:personid,cityid:cityid, birthdayid:birthdayid, col4:col4; sum(cul3sum):cul3sum)

   節點機主程式A5格改為:

 [email protected](personid:personid, cityid:cityid,birthdayid:birthdayid, col4:col4; sum(col3sum):cul3sum)

   節點機主程式A1格改為:

 =cursor.groups(personid%10:personid, cityid%10:cityid,birthdayid%10:birthdayid, col4%10:col4; sum(col3sum):col3sum)

  Impala: select personid%10, cityid%10,birthdayid%10, col4%10 from p group bypersonid%10,cityid%10,birthdayid%10,col4%10

4、4列分組,4列彙總

  Hive: select personid%10, cityid%10, birthdayid%10, col4%10,count(col1), max(col2), sum(col3), count(col5) from p group by personid%10,cityid%10,birthdayid%10,col4%10

  集算器:

    將彙總機程式A5格改為:

 =A4.groupx(personid:personid,cityid:cityid, birthdayid:birthdayid, col4:col4;count(cul1count):cul1count,max(cul2count):cul2count,sum(cul3sum):cul3sum,count(cul5):cul5count)

    節點機主程式A5格改為:

 [email protected](personid:personid, cityid:cityid,birthdayid:birthdayid, col4:col4; count(col1count):cu1count,max(col2count):cul2count,sum(col3sum):cul3sum,count(col5):cul5count)

    節點機主程式A1格改為:

 =cursor.groups(personid%10:personid, cityid%10:cityid,birthdayid%10:birthdayid, col4%10:col4; count(col1count):co1count,max(col2count): col2count, sum(col3sum):col3sum, count(col5):col5count)

  Impala: select personid%10, cityid%10, birthdayid%10, col4%10,count(col1), max(col2), sum(col3), count(col5) from p group by personid%10,cityid%10,birthdayid%10,col4%10

測試結果:


http://hi.baidu.com/datanalysis/item/3e30faef530f8028595dd874

相關推薦

Hive Impala效能對比測試報告

目的   對比Hive、集算器、Impala這三種大資料解決方案在分組彙總和關聯計算時的效能差異。 硬體環境   PC數量:4   CPU:Intel Core i5 2500(4核)   RAM:16G   HDD:2T/7200rpm   Ethern

Python+selenium之測試報告2

def window win get hot 過程 https 書寫 screen 1 # -*- coding: utf-8 -*- 2 import HTMLTestReport 3 import HTMLTestRunner 4 import os 5 i

Selenium2+python自動化54-unittest生成測試報告HTMLTestRunner【轉載】

logs mage 部分 art 測試結果 函數返回 top default 執行 本篇轉自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/unittest/ 前言 批量執行完用例後,生成的測試報告是文本形式的,不夠直

Appium python自動化測試系列之使用HTMLTestRunner生成測試報告十三

like resizable mes 500px string padding code tip hid ?13.1 測試報告概述 13.1.1 測試報告的定義 在前面章節我們已經講了自動化基礎的很多東西,如果說掌握了,而且自己動手去練習了,我相信在一些初級的面試中是沒

unittest生成測試報告HTMLTestRunner

測試 itl runner tde join set one 用例 desc # coding:utf-8import unittestimport osimport HTMLTestRunner # python2.7要是報編碼問題,就加這三行,python3不用加 im

Selenium2+python自動化54-unittest生成測試報告HTMLTestRunner

.py blog soft pos 導入 python安裝 res one selenium 前言 批量執行完用例後,生成的測試報告是文本形式的,不夠直觀,為了更好的展示測試報告,最好是生成HTML格式的。 unittest裏面是不能生成html格式報告的,需要導入一個第三

使用雲監控實現GPU雲服務的GPU監控和報警 - 自定義監控

調度 相關數 圖片 size 語言 rontab end ces format 摘要: 本文將介紹如何利用阿裏雲雲監控服務提供的自定義監控實現GPU雲服務器的GPU監控和報警的可視化,從而達到對GPU使用情況實時掌握的目的。 1 背景NVIDIA提供了nvidia-smi

法之智能搜索

rdma fff () setname sets exce skip entry water 筆者並不了解,各大搜索網站是怎麽實現智能搜索的。以下只是筆者一時的想法,筆者覺得這個方法可以實現智能匹配搜索內容。 一、首先我們獲取細胞詞庫內容 ①建表語句: DROP TABLE

一分鐘讀懂相容測試報告:概況篇

WeTest 導讀 在WeTest深度相容測試上線之後,為大量手遊及應用挖掘了相容問題,為測試開發同學提供了極大的便利。為了能夠讓測試開發同學能夠迅速的瞭解測試後的結果,您是否真的讀懂了WeTest的相容報告?是否瞭解具體問題的準確定位?      

資料結構與演算法學習筆記之 提高讀取效能的連結串列

前言   連結串列(Linked list)比陣列稍微複雜一點,在我們生活中用到最常見的應該是快取,它是一種提高資料讀取效能的技術,常見的如cpu快取,瀏覽器快取,資料庫快取等。今天我們就來學習一下連結串列 正文 一、連結串列的定義? 1.一種線性表(資料排成像一條線一樣的結構。每個線性表上的資料最多

網路基本功十五:細說網路效能監測與例項

介紹 網路路徑效能檢測主要包括三方面的內容:頻寬測量能夠獲知網路的硬體特性,如網路的最大容量,吞吐量測量能夠獲得網路實際可提供的最大容量,資料流測量能夠了解真實佔用的網路容量。 本文介紹在評估網路效能是否合理時,需要收集的資料及收集方式。涉及工具包括:ping,

solr測試專案--基於maven的springmvc環境搭建

從去年9月21開始寫部落格,今天整一年了。 從開始寫文章到現在,寫過spring的,springmvc的,spring與其他框架整合的(包括hibernate,ehcache,shiro),寫過一些工具類,寫過微信公眾號開發,寫過前端的一些小demo,雖然一直

深度學習4——強度非均勻性下影象分割的水平方法及其在MRI中的應用

強度非均勻性下影象分割的水平集方法及其在MRI中的應用 摘要 強度不均勻性經常出現在真實世界的影象中,這對影象分割提出了相當大的挑戰。最廣泛使用的影象分割演算法是基於區域並且通常依賴於感興趣區域中影象強度的均勻性,這通常由於強度不均勻性而不能提供準確

Azure Devops/TFS測試管理

因為最近測試人員合併到我這邊開發組,對於如何能更好管理測試流程和測試與開發能更高效的完成任務,通俗的說如何能更敏捷,深入思考,然後就開始琢磨起TFS(也稱之為VSTS/Azure Devops,因為我這邊還是用著TFS2018還未升級,下文都稱之為TFS)   本篇文章分上下 上 主要更多說在測試流

Oracle與對比測試報告

1.測試目的 針對相同的硬體環境和計算任務,對比Oracle和集算器的效能差異,為客戶選型提供參考。 2.硬體環境 裝置數量:1臺 CPU:16核 Intel(R) Xeon(R) CPU E5620  @ 2.40GHz 記憶體:20G 3.軟體環境 作業系統:CentOS6.4 64位 JDK:1.6

批量隨機鍵值查詢測試

【摘要】 當資料量巨大時,使用大批量隨機鍵值集獲取對應記錄集合,不僅僅考驗資料庫軟體本身,更在於程式設計師對資料的理解!如何在硬體資源有限的情況下將效能發揮到極致?點選:批量隨機鍵值查詢測試,來乾學院一探究竟! 複製摘要 本次測試主要針對集算器組表索引實現的批量鍵值取數效能,並與 Oracl

HAWQ與Hive查詢效能對比測試

一、實驗目的        本實驗通過模擬一個典型的應用場景和實際資料量,測試並對比HAWQ內部表、外部表與Hive的查詢效能。二、硬體環境1. 四臺VMware虛機組成的Hadoop叢集。2. 每臺機器配置如下:(1)15K RPM SAS 100GB(2)Intel(R)

倉庫版發布,黑科技獲得用戶好評

集群組表 並行列存 數據存儲 數據計算 2018年5月16日,集算器(倉庫版)攜帶多項黑科技正式發布。在發布之前的應用驗證中,倉庫版就已經用實力贏得了用戶的好評。北京銀行用戶在評價倉庫版時表示:在數據分析實踐中,高並發訪問、大數據量計算造成的系統響應時間過長的問題,始終沒有得到很好的解決。集算

初體驗

強制 控制臺輸出 有意 包含 根據 main函數 有意義 自動 強烈 1、從經典的Hello, world! 開始先看圖(1):圖(1)新建p1程序文件,在A1格子中輸入=output(“Hello, world!”)。點擊圖(1)中紅圈圈住的三角按鈕,執行p1的代碼,就可

資料分析用它就夠了 | 37 個場景你要用

【報表查詢效能】 1. 資料量大或併發多導致的查詢效能低下,BI 介面拖拽響應很慢 通過集算器編寫更為簡單高效的演算法加速計算程序,提升查詢效能 採用集算器可控儲存和索引機制,為 BI(CUBE)提供高速的資料儲存 2.T+0 實時全量查詢報表涉及資料量大,影響生產系統執