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

基于Hadoop的交互式大數據分析查詢處理方法

2016-02-23 06:29:00李聰穎王瑞剛梁小江
計算機技術與發展 2016年8期
關鍵詞:引擎優化方法

李聰穎,王瑞剛,梁小江

(1.西安郵電大學,陜西 西安 710061;2.陜西省信息化工程研究院,陜西 西安 710061)

基于Hadoop的交互式大數據分析查詢處理方法

李聰穎1,王瑞剛1,梁小江2

(1.西安郵電大學,陜西 西安 710061;2.陜西省信息化工程研究院,陜西 西安 710061)

基于Hadoop的交互式大數據分析查詢處理方法旨在快速分析查詢大數據集的信息,最重要的特征就是查詢速度快。該方法能夠運行在上千節點的集群上,適于半結構化/嵌套數據的分析、兼容現有的SQL環境和Apache Hive。文中主要利用此方法實現連接HDFS、Hive以及Hbase進行查詢測試,還完成了同時從不同數據源上關聯查詢數據。在同一Hadoop集群環境中,將該方法與Spark SQL對于10萬、20萬、50萬、100萬、500萬條數據進行查詢速度對比測試。經過多次實驗后得出,基于Hadoop的交互式大數據分析查詢處理方法速度快、效率高,能夠幫助企業用戶快速、高效地進行Hadoop數據查詢和企業級大數據分析。

Hadoop集群;大數據處理;交互式查詢;快速;SQL

0 引 言

隨著計算機信息技術的發展和普及,互聯網規模迅速擴大,各行業應用互聯網所產生的數據呈爆炸性增長態勢。近年來,生活中很多方面都依賴實時應用,例如通過社交媒體更新動態、在線購物、等待客戶在線回應等,客戶希望快速得到有效信息。因此,對大數據進行分析及查詢,提高查詢的性能和效率極其重要。

在服務器硬件及數據庫配置等條件固定的情況下,傳統查詢方式隨著數據量不斷增大,其查詢效率不斷降低,查詢的響應時間越來越慢,甚至會出現由于查詢導致數據庫無法使用的情況[1]。傳統大數據分析查詢速度慢且查詢方式為非交互式。因此,需要一種能夠對不同的數據源分析處理大數據并且交互式快速查詢數據的方法。

1 整體框架設計

1.1 簡 介

隨著大數據時代的到來,查詢速度成為Hadoop的

瓶頸,因為越來越多的用戶需要一種快速而且互動的數據分析查詢處理方法。

基于Hadoop的交互式大數據分析查詢處理方法的目的在于:設計和實現一種大數據集的交互式分析查詢系統。當用戶使用SQL語句查詢數據時,用戶的查詢請求首先被提交給SQL查詢解析器,查詢解析器將查詢請求解析為邏輯計劃,再由查詢優化器讀取邏輯計劃并將其轉化為物理計劃,最后由執行引擎來執行物理計劃,存儲引擎將元數據信息提供給元數據庫,并將查詢的原生功能告知執行引擎。

基于Hadoop的交互式大數據分析查詢處理方法是一種分布式SQL引擎,不需要定義和維護數據模式或數據轉換,能夠自動解析數據結構[2];不僅支持結構化和半結構化的數據查詢,還支持復雜的嵌套式數據查詢,并且使用全新標準的ANSI SQL:2003查詢能力;可以連接多種后端數據源,如Hive,Hbase,HDFS,MongoDB,Cassandra,等等。盡管大數據交互式分析查詢系統運行在Hadoop集群中,但它不局限于Hadoop集群,也可以運行在任何分布式集群中,能夠適應上千節點的PB級數據的交互式商業智能分析場景[3]。

1.2 核心架構設計

如圖1所示,基于Hadoop的交互式大數據分析查詢處理方法的核心架構包括:遠程訪問模塊、SQL解析器、查詢優化器、任務計劃執行引擎、存儲插件接口、分布式緩存模塊等。

圖1 核心架構圖

(1)遠程訪問模塊。該模塊是一個低開銷的遠程過程調用通信協議。此外,C++和Java API層也用于客戶端應用程序與系統進行交互,在提交查詢請求之前,客戶端既可以直接與特定節點進行通信,也能通過zookeeper發現集群節點,從而更方便地管理維護復雜的集群。

(2)SQL解析器?;跇藴蔛QL語句解析傳入的查詢請求,通過元數據應用程序接口請求模式信息,然后產生標準邏輯計劃以供優化器進行優化,其語法樹提供用戶操作接口,靈活性高且該解析器的組件與語言無關。

(3)查詢優化器。優化器將邏輯計劃轉化為物理計劃,包含有子查詢的SELECT語句是作為半連接執行的,所以子查詢中每條記錄返回最少的實例,優化器可以對表的掃描最小化并且有利于匹配內外表的SELECT記錄。

(4)任務計劃執行引擎。為了實現高性能的查詢處理,引入一種分布式可擴展的執行引擎。該引擎提供數據本地化、容錯以及基于行列的等級處理。

(5)存儲插件接口。存儲插件可以與數據源進行交互,數據的位置和優化規則有助于提升查詢效率。

(6)分布式緩存模塊。采用分布式緩存,提高查詢性能,通過動態地增減集群節點來調節數據訪問負載,從而提高資源利用率。

1.3 數據查詢流程

基于Hadoop的交互式大數據分析查詢處理方法的執行流是用戶或機器產生的查詢請求提交給查詢解析器的過程,如圖2所示[4]。

圖2 執行流圖

首先,SQL解析器對查詢請求進行解析,包括詞法分析和語義分析。在查詢解析器中的查詢請求會被解析為邏輯計劃,而邏輯計劃描述了查詢操作的基本數據流。

其次,優化器讀取邏輯計劃并把邏輯計劃轉換為物理計劃[5]。存儲引擎和特定的數據源進行交互,提供讀寫功能,將元數據信息提供給元數據庫,將原生功能告知執行引擎。

最后,由執行引擎執行物理計劃,執行引擎依賴組件(執行器、功能函數、掃描器、寫詞器等),執行器負責轉換數據流,功能函數將數據流轉換為單獨的數據,掃描器和寫詞器負責讀寫數據。元數據庫查詢執行框架并提供元數據信息,即時編譯器將部分物理計劃轉換成本地代碼。

如圖3所示,基于Hadoop的交互式大數據分析查詢處理方法主要支持文本、序列化、列存儲等存儲格式。其中,Hbase表、JSON、BSON都屬于無模式的數據模型[3,6],CSV、TSV和Hbase表是扁平結構的數據,Parquet、JSON、BSON的數據結構是嵌套型的復雜數據,而Avro是一種序列化的復雜數據。

圖3 數據結構圖

當用戶提交一個查詢請求時,客戶端或應用程序會把查詢的SQL語句發送給集群中的節點。系統的進程在集群的節點上執行協調、規劃、最大化查詢。客戶端和應用程序查詢后端節點,然后驅動查詢的組件。查詢解析器解析SQL語句,將自定義規則應用到特定的SQL操作符,轉換成特定的邏輯操作語法,集合邏輯運算符形成邏輯計劃,邏輯計劃描述了作業所需要生成的查詢結果,定義數據源和應用操作[7]。

2 實現與測試

2.1 方法實現

2.1.1 底層環境

操作系統:ubuntu12.04;

Java環境:jdk1.7.0_67;

分布式Hadoop集群環境:主節點IP:10.10.10.39,從節點IP: 10.10.10.34,10.10.10.35,10.10.10.36,10.10.10.37,10.10.10.38。

2.1.2 存儲插件配置

在每個節點上啟動交互式大數據查詢系統后,通過命令sqlline -h可以查看sqlline的參數,-u為鏈接地址,zk=localhost為zookeeper服務,需要在配置文件中配置zookeeper的IP,本地不用另外配置zookeeper服務,然后通過jdbc驅動連接到sqlline工具進行數據查詢[8]。

查詢系統服務啟動后,在瀏覽器中通過服務節點IP和端口號即可訪問Web頁面,點開storage選項查看當前支持的數據源存儲插件,默認只有cp和dfs可用。在Disabled Storage Plugins中點擊不可用插件的Enable功能,就能使用該存儲插件。若插件列表中沒有所需的插件,則添加所需的插件并使其Enable可用,然后再進行配置。下面是一個典型的HDFS存儲插件的關鍵配置信息:

{

"type":"file",

"enabled":true,

"connection":

"hdfs://hadoop34.newqd.com:8020/",

"workspaces":{

"root":{

"location":"/root",

"writable":true,

"defaultInputFormat":null

}

},

"formats":{

"csv":{

"type":"text",

"extensions":[

"csv"

],

"delimiter":","

}

}

其中,type為存儲插件的類型,可以為File、Hive、Hbase或者Mongo;enable為存儲插件是否可用的狀態;connection為連接數據源的地址;location為工作空間的路徑;writable為是否允許在工作空間中創建一個表或者視圖;defaultInputFormat為輸入格式的擴展名是否對輸入數據有影響;csv為數據格式的名稱;text為數據格式的類型;extention為可讀數據格式的擴展名類型;delimiter為數據的分隔符[9]。

2.1.3 連接zookeeper集群

基于Hadoop的交互式大數據分析查詢處理方法提供了一些訪問數據源數據的方法,例如JDBC Driver,ODBC Driver。文中是基于JDBC Driver連接zookeeper服務。

連接本地zk

bin/sqlline -u jdbc:zk=local

連接zk集群

手動指定zk:

bin/sqlline -u jdbc:drill:zk=10.10.10.34,10.10.10.35,10.10.10.36:2181

如果是集群模式,也可以不跟上zk地址,如bin/sqlline -u jdbc:zk就可以自動讀取override.conf文件中的zk配置信息。

當指定的zk是一個全新的zk,例如之前使用的是本地zk,那么在本次新的會話中Storage-Plugin的信息就都會丟失。因為指定的zookeeper集群是全新的,所以基于Hadoop的交互式大數據分析查詢處理系統還沒有往里面寫入任何數據[10]。這是因為在WEB UI上對Storage Plugin進行update或者create的數據都會寫入到對應的zookeeper節點上。因此需要在界面上update某一個數據源插件時并且enable后,通過show databases才可以看到數據源里的表。

2.2 方法測試

2.2.1 關聯查詢Hive,Hbase和HDFS

由于Hbase表中的數據要轉碼為UTF8才可以查詢,所以在聯合查詢的過程中先把Hbase表轉化為視圖,保存在本地文件系統下,然后再關聯視圖查詢。

如圖4所示,關聯查詢的數據中,第一列數據studentid來自hive.student表,第二列數據name來自Hbase視圖,第三列數據state來自HDFS中的sample.json文件。

selects.studentid,p.name,`state`from hive.student s,dfs.root.prodview p,hdfs.`/opt/test/sample.json` m where s.id=p.id and s.id=m.id;

圖4 關聯查詢Hive,Hbase和HDFS

2.2.2 與Spark SQL的對比測試

Spark SQL的前身是Shark,但是隨著Spark的發展,Shark對于Hive的太多依賴(如采用Hive的語法解析器、查詢優化器等)制約了Spark各個組件的相互集成,所以提出了Spark SQL項目。Spark SQL拋棄原有Shark的代碼,汲取了Shark的一些優點,如列存儲、兼容Hive等,重新開發了Spark SQL代碼。由于擺脫了Hive的依賴性,Spark SQL在數據兼容、性能優化、組件擴展方面都得到了極大的提升[11]。例如在數據兼容方面,不但兼容Hive,還可以從RDD、parquet文件、JSON文件中獲取數據,未來版本甚至支持獲取RDBMS數據以及cassandra等NOSQL數據;在性能優化方面除了采取In-Memory Columnar Storage、byte-code generation等優化技術外,將會引進Cost Model對查詢進行動態評估,獲取最佳物理計劃,等等;在組件擴展方面,無論是SQL的語法解析器、分析器還是優化器都可以重新定義并進行擴展,因此Spark SQL的性能得到了極大提升[12]。

基于Hadoop的交互式大數據分析查詢處理方法,在查詢速度方面與Spark SQL對于10萬、20萬、50萬、100萬、500萬條數據的查詢測試對比結果分別見表1和表2。

表1為使用count()方法查詢不同數據量的測試對表結果,表2為使用where語句從不同數據量中查詢其中一條數據的測試對比結果。

表1 統計數據數量測試對比結果

由表1可以看出,在同一Hadoop集群平臺上,經過多次實驗取平均值后,在查詢10萬、20萬、50萬、100萬、500萬條數據時,文中方法比Spark SQL的查詢速度依次提高44.62%、57.65%、64.28%、66.54%、45.60%。

表2 提取一條數據測試對比結果

由表2可以看出,在同一Hadoop集群平臺上,經過多次實驗取平均值后,從10萬、20萬、50萬、100萬、500萬條數據中依次查找一條數據時,文中方法比Spark SQL的查詢速度依次提高了22.81%、21.62%、30.38%、32.73%、9.24%。

3 結束語

基于Hadoop的交互式大數據分析查詢處理方法能夠運行在上千節點的集群上,適于半結構化/嵌套數據的分析、兼容現有的SQL環境和Apache Hive,沒有集中的元數據定義,可以在單次查詢中從多種數據源中合并數據進行查詢,是一種高吞吐量和低潛在因素的大數據處理方法[13]。

在同一Hadoop集群環境中,經過多次實驗得出,在依次查詢10萬、20萬、50萬、100萬、500萬條數據時,文中方法比Spark SQL的查詢速度平均高55.74%;在依次從10萬、20萬、50萬、100萬、500萬條數據中查詢一條數據時,文中方法比Spark-SQL的查詢速度平均高23.36%。因此,該方法分析效率高,交互式查詢速度快,滿足了企業級大數據分析場景的應用。

[1] Manyika J,Chui M,Brown B,et al.Big data:the next frontier for innovation,competition,and productivity[EB/OL].2011.http://www.Mckinsey.com/insights/business_technology/big_data_the_next_frontier_for_innovation.

[2] Li G.Research status and scientific thinking of big data[J].Bulletin of Chinese Academy of Sciences,2012,27(6):647-657.

[3] 王元卓,靳小龍,程學旗.網絡大數據:現狀與展望[J].計算機學報,2013,36(6):1125-1138.

[4] Arthur W B. The second economy[EB/OL].2011.http://www.images-et-reseaux.com/sites/default/files/medias/blog/2011/12/the-2ndeconomy.pdf.

[5] Tempini N.Book review:'big data:a revolution that will transform how we live,work,and think'[J].Media Culture & Society,2013,37:78-105.

[6] 李國杰,程學旗.大數據研究:未來科技及經濟社會發展的重大戰略領域——大數據的研究現狀與科學思考[J].中國科學院院刊,2012,27(6):55-90.

[7] 孫大為,張廣艷,鄭緯民.大數據流式計算:關鍵技術及系統實例[J].軟件學報,2014,25(4):839-862.

[8] 陳立瑋,馮巖松,趙東巖.基于弱監督學習的海量網絡數據關系抽取[J].計算機研究與發展,2013,50(9):1825-1835.

[9] 程學旗,郭嘉豐,靳小龍.網絡信息的檢索與挖掘回顧[J].中文信息學報,2011,25(6):111-117.

[10] 中國電子科學研究院學報編輯部.大數據時代[J].中國電子科學研究院學報,2013(1):27-35.

[11] 王 珊,王會舉,覃雄派,等.架構大數據:挑戰現狀與展望[J].計算機學報,2011,34(10):1741-1752.

[12] 王 鄂,李 銘.云計算下的海量數據挖掘研究[J].現代計算機,2009(11):22-25.

[13] 李偉衛,趙 航,張 陽,等.基于MapReduce的海量數據挖掘技術研究[J].計算機工程與應用,2013,49(20):112-117.

An Interactive Processing Method of Analysis and Query for Big Data Based on Hadoop

LI Cong-ying1,WANG Rui-gang1,LIANG Xiao-jiang2

(1.Xi’an University of Posts and Telecommunications,Xi’an 710061,China;2.Shaanxi Information Engineering Research Institure,Xi’an 710061,China)

An interactive processing method of analysis and query of big data based on Hadoop aims to analyze and query large data fast,whose important feature is the rapid query speed.The method is able to run on a cluster with thousands of nodes,suitable for analyzing semi-structured or nested data,combining with existing SQL environment and Apache Hive.The main purpose is to use the method to connect HDFS,Hive and Hbase for query,also achieving to query data from different data sources.Furthermore,in the same Hadoop clustering environment,the method and Spark SQL is compared in the query speed for data with 100 000,200 000,500 000,one million and five million.Several experiments show the method is fast and efficient,and enables business users to query data and analyze enterprise Hadoop big data quickly and efficiently.

Hadoop clustering;big data processing;interactive query;fast;SQL

2015-12-01

2016-03-09

時間:2016-08-01

2015陜西省信息化技術研究項目課題(2015-002)

李聰穎(1992-),女,碩士研究生,研究方向為云計算與大數據處理;王瑞剛,高級工程師,研究方向為多媒體通信。

http://www.cnki.net/kcms/detail/61.1450.TP.20160801.0904.038.html

TP302.1

A

1673-629X(2016)08-0134-04

10.3969/j.issn.1673-629X.2016.08.028

猜你喜歡
引擎優化方法
超限高層建筑結構設計與優化思考
房地產導刊(2022年5期)2022-06-01 06:20:14
民用建筑防煙排煙設計優化探討
關于優化消防安全告知承諾的一些思考
一道優化題的幾何解法
藍谷: “涉藍”新引擎
商周刊(2017年22期)2017-11-09 05:08:31
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
無形的引擎
河南電力(2015年5期)2015-06-08 06:01:46
捕魚
基于Cocos2d引擎的PuzzleGame開發
主站蜘蛛池模板: 欧类av怡春院| 欧美亚洲香蕉| 青草精品视频| jijzzizz老师出水喷水喷出| 国产玖玖视频| av一区二区无码在线| 国产十八禁在线观看免费| a级毛片毛片免费观看久潮| 最新国语自产精品视频在| 欧美 亚洲 日韩 国产| 日本一区二区三区精品国产| 亚洲黄色网站视频| 亚洲一区二区三区麻豆| 国产JIZzJIzz视频全部免费| 亚洲免费三区| 国产麻豆精品在线观看| 国内精品久久人妻无码大片高| 国产精品无码AⅤ在线观看播放| 东京热一区二区三区无码视频| 一区二区欧美日韩高清免费| 五月婷婷中文字幕| 国产成人精品一区二区| 97se亚洲综合不卡 | 久久精品日日躁夜夜躁欧美| 99爱视频精品免视看| 色成人综合| 超清无码一区二区三区| 精品无码一区二区三区在线视频 | 免费观看无遮挡www的小视频| 亚洲中文无码h在线观看| 色综合激情网| 精品久久久无码专区中文字幕| 成人小视频在线观看免费| 婷婷午夜天| 国产永久无码观看在线| 色婷婷亚洲综合五月| 午夜丁香婷婷| 青青草一区| 免费看美女毛片| 成人午夜网址| 国产黄色免费看| 韩国v欧美v亚洲v日本v| 国产成人精彩在线视频50| 国产成人免费手机在线观看视频| 91欧美在线| 91精品专区国产盗摄| 亚洲日本韩在线观看| 福利在线一区| 一级全免费视频播放| 97免费在线观看视频| 亚洲美女一区二区三区| 五月天天天色| 一级毛片免费观看不卡视频| 久久久久久久久18禁秘| 特级精品毛片免费观看| 思思热在线视频精品| 国产在线啪| 最新精品久久精品| 国产精品所毛片视频| 欧美在线黄| 亚洲国产中文欧美在线人成大黄瓜 | 黄色网在线免费观看| 美女国产在线| 亚洲精品福利视频| 日韩欧美国产另类| 国产成人艳妇AA视频在线| 国产精品一区二区不卡的视频| 激情综合图区| 亚洲成a人在线播放www| 强乱中文字幕在线播放不卡| 亚洲有无码中文网| 久久精品亚洲热综合一区二区| 欧美全免费aaaaaa特黄在线| 无码一区18禁| 亚洲人成网7777777国产| 青草视频免费在线观看| 欧美日韩精品综合在线一区| 亚洲天堂首页| 国模沟沟一区二区三区| 国产精品55夜色66夜色| 91精品国产一区| 中字无码av在线电影|