Hive和Hbase是兩種基于Hadoop的不同技術--Hive是一種類SQL的引擎,并且運行MapReduce任務,Hbase是一種在Hadoop之上的NoSQL 的Key/vale數(shù)據庫。當然,這兩種工具是可以同時使用的。就像用Google來搜索,用FaceBook進行社交一樣,Hive可以用來進行統(tǒng)計查詢,HBase可以用來進行實時查詢,數(shù)據也可以從Hive寫到Hbase,設置再從Hbase寫回Hive
在山西等地區(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供做網站、成都網站設計 網站設計制作定制網站建設,公司網站建設,企業(yè)網站建設,品牌網站建設,成都全網營銷,成都外貿網站建設公司,山西網站建設費用合理。
共同點:
1.hbase與hive都是架構在hadoop之上的。都是用hadoop作為底層存儲
區(qū)別:
1.Hive是建立在Hadoop之上為了減少MapReduce jobs編寫工作的批處理系統(tǒng),HBase是為了支持彌補Hadoop對實時操作的缺陷的項目 。
2.想象你在操作RMDB數(shù)據庫,如果是全表掃描,就用Hive+Hadoop,如果是索引訪問,就用HBase+Hadoop 。
3.Hive query就是MapReduce jobs可以從5分鐘到數(shù)小時不止,HBase是非常高效的,肯定比Hive高效的多。
4.Hive本身不存儲和計算數(shù)據,它完全依賴于HDFS和MapReduce,Hive中的表純邏輯,就只是表的定義等,即表的元數(shù)據。這樣就可以將結構化的數(shù)據文件映射為一張數(shù)據庫表,并提供完整的SQL查詢功能,并將SQL語句最終轉換為MapReduce任務進行運行。
5.hive借用hadoop的MapReduce來完成一些hive中的命令的執(zhí)行
6.hbase是物理表,不是邏輯表,提供一個超大的內存hash表,搜索引擎通過它來存儲索引,方便查詢操作。
7.hbase是列存儲。
8.hdfs作為底層存儲,hdfs是存放文件的系統(tǒng),而Hbase負責組織文件。
9.hive需要用到hdfs存儲文件,需要用到MapReduce計算框架。
隨著大數(shù)據分析市場迅速擴展,哪些技術是最有需求和最有增長潛力的呢?在Forrester Research的一份最新研究報告中,評估了22種技術在整個數(shù)據生命周期中的成熟度和軌跡。這些技術都對大數(shù)據的實時、預測和綜合洞察有著巨大的貢獻。
1. 預測分析技術
這也是大數(shù)據的主要功能之一。預測分析允許公司通過分析大數(shù)據源來發(fā)現(xiàn)、評估、優(yōu)化和部署預測模型,從而提高業(yè)務性能或降低風險。同時,大數(shù)據的預測分析也與我們的生活息息相關。淘寶會預測你每次購物可能還想買什么,愛奇藝正在預測你可能想看什么,百合網和其他約會網站甚至試圖預測你會愛上誰……
2. NoSQL數(shù)據庫
NoSQL,Not Only SQL,意思是“不僅僅是SQL”,泛指非關系型數(shù)據庫。NoSQL數(shù)據庫提供了比關系數(shù)據庫更靈活、可伸縮和更便宜的替代方案,打破了傳統(tǒng)數(shù)據庫市場一統(tǒng)江山的格局。并且,NoSQL數(shù)據庫能夠更好地處理大數(shù)據應用的需求。常見的NoSQL數(shù)據庫有HBase、Redis、MongoDB、Couchbase、LevelDB等。
3. 搜索和知識發(fā)現(xiàn)
支持來自于多種數(shù)據源(如文件系統(tǒng)、數(shù)據庫、流、api和其他平臺和應用程序)中的大型非結構化和結構化數(shù)據存儲庫中自助提取信息的工具和技術。如,數(shù)據挖掘技術和各種大數(shù)據平臺。
4. 大數(shù)據流計算引擎
能夠過濾、聚合、豐富和分析來自多個完全不同的活動數(shù)據源的數(shù)據的高吞吐量的框架,可以采用任何數(shù)據格式。現(xiàn)今流行的流式計算引擎有Spark Streaming和Flink。
5. 內存數(shù)據結構
通過在分布式計算機系統(tǒng)中動態(tài)隨機訪問內存(DRAM)、閃存或SSD上分布數(shù)據,提供低延遲的訪問和處理大量數(shù)據。
6. 分布式文件存儲
為了保證文件的可靠性和存取性能,數(shù)據通常以副本的方式存儲在多個節(jié)點上的計算機網絡。常見的分布式文件系統(tǒng)有GFS、HDFS、Lustre 、Ceph等。
7. 數(shù)據虛擬化
數(shù)據虛擬化是一種數(shù)據管理方法,它允許應用程序檢索和操作數(shù)據,而不需要關心有關數(shù)據的技術細節(jié),比如數(shù)據在源文件中是何種格式,或者數(shù)據存儲的物理位置,并且可以提供單個客戶用戶視圖。
8. 數(shù)據集成
用于跨解決方案進行數(shù)據編排的工具,如Amazon Elastic MapReduce (EMR)、Apache Hive、Apache Pig、Apache Spark、MapReduce、Couchbase、Hadoop和MongoDB等。
9. 數(shù)據準備
減輕采購、成形、清理和共享各種雜亂數(shù)據集的負擔的軟件,以加速數(shù)據對分析的有用性。
10. 數(shù)據質量
使用分布式數(shù)據存儲和數(shù)據庫上的并行操作,對大型高速數(shù)據集進行數(shù)據清理和充實的產品。
特點:
它們可以處理超大量的數(shù)據。
它們運行在便宜的PC服務器集群上。
PC集群擴充起來非常方便并且成本很低,避免了“sharding”操作的復雜性和成本。
它們擊碎了性能瓶頸。
NoSQL的支持者稱,通過NoSQL架構可以省去將Web或Java應用和數(shù)據轉換成SQL友好格式的時間,執(zhí)行速度變得更快。
“SQL并非適用于所有的程序代碼,” 對于那些繁重的重復操作的數(shù)據,SQL值得花錢。但是當數(shù)據庫結構非常簡單時,SQL可能沒有太大用處。
沒有過多的操作。
雖然NoSQL的支持者也承認關系數(shù)據庫提供了無可比擬的功能集合,而且在數(shù)據完整性上也發(fā)揮絕對穩(wěn)定,他們同時也表示,企業(yè)的具體需求可能沒有那么多。
Bootstrap支持
因為NoSQL項目都是開源的,因此它們缺乏供應商提供的正式支持。這一點它們與大多數(shù)開源項目一樣,不得不從社區(qū)中尋求支持。
優(yōu)點:
易擴展
NoSQL數(shù)據庫種類繁多,但是一個共同的特點都是去掉關系數(shù)據庫的關系型特性。數(shù)據之間無關系,這樣就非常容易擴展。也無形之間,在架構的層面上帶來了可擴展的能力。
大數(shù)據量,高性能
NoSQL數(shù)據庫都具有非常高的讀寫性能,尤其在大數(shù)據量下,同樣表現(xiàn)優(yōu)秀。這得益于它的無關系性,數(shù)據庫的結構簡單。一般MySQL使用 Query Cache,每次表的更新Cache就失效,是一種大粒度的Cache,在針對web2.0的交互頻繁的應用,Cache性能不高。而NoSQL的 Cache是記錄級的,是一種細粒度的Cache,所以NoSQL在這個層面上來說就要性能高很多了。
靈活的數(shù)據模型
NoSQL無需事先為要存儲的數(shù)據建立字段,隨時可以存儲自定義的數(shù)據格式。而在關系數(shù)據庫里,增刪字段是一件非常麻煩的事情。如果是非常大數(shù)據量的表,增加字段簡直就是一個噩夢。這點在大數(shù)據量的web2.0時代尤其明顯。
高可用
NoSQL在不太影響性能的情況,就可以方便的實現(xiàn)高可用的架構。比如Cassandra,HBase模型,通過復制模型也能實現(xiàn)高可用。
主要應用:
Apache HBase
這個大數(shù)據管理平臺建立在谷歌強大的BigTable管理引擎基礎上。作為具有開源、Java編碼、分布式多個優(yōu)勢的數(shù)據庫,Hbase最初被設計應用于Hadoop平臺,而這一強大的數(shù)據管理工具,也被Facebook采用,用于管理消息平臺的龐大數(shù)據。
Apache Storm
用于處理高速、大型數(shù)據流的分布式實時計算系統(tǒng)。Storm為Apache Hadoop添加了可靠的實時數(shù)據處理功能,同時還增加了低延遲的儀表板、安全警報,改進了原有的操作方式,幫助企業(yè)更有效率地捕獲商業(yè)機會、發(fā)展新業(yè)務。
Apache Spark
該技術采用內存計算,從多迭代批量處理出發(fā),允許將數(shù)據載入內存做反復查詢,此外還融合數(shù)據倉庫、流處理和圖計算等多種計算范式,Spark用Scala語言實現(xiàn),構建在HDFS上,能與Hadoop很好的結合,而且運行速度比MapReduce快100倍。
Apache Hadoop
該技術迅速成為了大數(shù)據管理標準之一。當它被用來管理大型數(shù)據集時,對于復雜的分布式應用,Hadoop體現(xiàn)出了非常好的性能,平臺的靈活性使它可以運行在商用硬件系統(tǒng),它還可以輕松地集成結構化、半結構化和甚至非結構化數(shù)據集。
Apache Drill
你有多大的數(shù)據集?其實無論你有多大的數(shù)據集,Drill都能輕松應對。通過支持HBase、Cassandra和MongoDB,Drill建立了交互式分析平臺,允許大規(guī)模數(shù)據吞吐,而且能很快得出結果。
Apache Sqoop
也許你的數(shù)據現(xiàn)在還被鎖定于舊系統(tǒng)中,Sqoop可以幫你解決這個問題。這一平臺采用并發(fā)連接,可以將數(shù)據從關系數(shù)據庫系統(tǒng)方便地轉移到Hadoop中,可以自定義數(shù)據類型以及元數(shù)據傳播的映射。事實上,你還可以將數(shù)據(如新的數(shù)據)導入到HDFS、Hive和Hbase中。
Apache Giraph
這是功能強大的圖形處理平臺,具有很好可擴展性和可用性。該技術已經被Facebook采用,Giraph可以運行在Hadoop環(huán)境中,可以將它直接部署到現(xiàn)有的Hadoop系統(tǒng)中。通過這種方式,你可以得到強大的分布式作圖能力,同時還能利用上現(xiàn)有的大數(shù)據處理引擎。
Cloudera Impala
Impala模型也可以部署在你現(xiàn)有的Hadoop群集上,監(jiān)視所有的查詢。該技術和MapReduce一樣,具有強大的批處理能力,而且Impala對于實時的SQL查詢也有很好的效果,通過高效的SQL查詢,你可以很快的了解到大數(shù)據平臺上的數(shù)據。
Gephi
它可以用來對信息進行關聯(lián)和量化處理,通過為數(shù)據創(chuàng)建功能強大的可視化效果,你可以從數(shù)據中得到不一樣的洞察力。Gephi已經支持多個圖表類型,而且可以在具有上百萬個節(jié)點的大型網絡上運行。Gephi具有活躍的用戶社區(qū),Gephi還提供了大量的插件,可以和現(xiàn)有系統(tǒng)完美的集成到一起,它還可以對復雜的IT連接、分布式系統(tǒng)中各個節(jié)點、數(shù)據流等信息進行可視化分析。
MongoDB
這個堅實的平臺一直被很多組織推崇,它在大數(shù)據管理上有極好的性能。MongoDB最初是由DoubleClick公司的員工創(chuàng)建,現(xiàn)在該技術已經被廣泛的應用于大數(shù)據管理。MongoDB是一個應用開源技術開發(fā)的NoSQL數(shù)據庫,可以用于在JSON這樣的平臺上存儲和處理數(shù)據。目前,紐約時報、Craigslist以及眾多企業(yè)都采用了MongoDB,幫助他們管理大型數(shù)據集。(Couchbase服務器也作為一個參考)。
十大頂尖公司:
Amazon Web Services
Forrester將AWS稱為“云霸主”,談到云計算領域的大數(shù)據,那就不得不提到亞馬遜。該公司的Hadoop產品被稱為EMR(Elastic Map Reduce),AWS解釋這款產品采用了Hadoop技術來提供大數(shù)據管理服務,但它不是純開源Hadoop,經過修改后現(xiàn)在被專門用在AWS云上。
Forrester稱EMR有很好的市場前景。很多公司基于EMR為客戶提供服務,有一些公司將EMR應用于數(shù)據查詢、建模、集成和管理。而且AWS還在創(chuàng)新,F(xiàn)orrester稱未來EMR可以基于工作量的需要自動縮放調整大小。亞馬遜計劃為其產品和服務提供更強大的EMR支持,包括它的RedShift數(shù)據倉庫、新公布的Kenesis實時處理引擎以及計劃中的NoSQL數(shù)據庫和商業(yè)智能工具。不過AWS還沒有自己的Hadoop發(fā)行版。
Cloudera
Cloudera有開源Hadoop的發(fā)行版,這個發(fā)行版采用了Apache Hadoop開源項目的很多技術,不過基于這些技術的發(fā)行版也有很大的進步。Cloudera為它的Hadoop發(fā)行版開發(fā)了很多功能,包括Cloudera管理器,用于管理和監(jiān)控,以及名為Impala的SQL引擎等。Cloudera的Hadoop發(fā)行版基于開源Hadoop,但也不是純開源的產品。當Cloudera的客戶需要Hadoop不具備的某些功能時,Cloudera的工程師們就會實現(xiàn)這些功能,或者找一個擁有這項技術的合作伙伴。Forrester表示:“Cloudera的創(chuàng)新方法忠于核心Hadoop,但因為其可實現(xiàn)快速創(chuàng)新并積極滿足客戶需求,這一點使它不同于其他那些供應商?!蹦壳埃珻loudera的平臺已經擁有200多個付費客戶,一些客戶在Cloudera的技術支持下已經可以跨1000多個節(jié)點實現(xiàn)對PB級數(shù)據的有效管理。
Hortonworks
和Cloudera一樣,Hortonworks是一個純粹的Hadoop技術公司。與Cloudera不同的是,Hortonworks堅信開源Hadoop比任何其他供應商的Hadoop發(fā)行版都要強大。Hortonworks的目標是建立Hadoop生態(tài)圈和Hadoop用戶社區(qū),推進開源項目的發(fā)展。Hortonworks平臺和開源Hadoop聯(lián)系緊密,公司管理人員表示這會給用戶帶來好處,因為它可以防止被供應商套牢(如果Hortonworks的客戶想要離開這個平臺,他們可以輕松轉向其他開源平臺)。這并不是說Hortonworks完全依賴開源Hadoop技術,而是因為該公司將其所有開發(fā)的成果回報給了開源社區(qū),比如Ambari,這個工具就是由Hortonworks開發(fā)而成,用來填充集群管理項目漏洞。Hortonworks的方案已經得到了Teradata、Microsoft、Red Hat和SAP這些供應商的支持。
IBM
當企業(yè)考慮一些大的IT項目時,很多人首先會想到IBM。IBM是Hadoop項目的主要參與者之一,F(xiàn)orrester稱IBM已有100多個Hadoop部署,它的很多客戶都有PB級的數(shù)據。IBM在網格計算、全球數(shù)據中心和企業(yè)大數(shù)據項目實施等眾多領域有著豐富的經驗?!癐BM計劃繼續(xù)整合SPSS分析、高性能計算、BI工具、數(shù)據管理和建模、應對高性能計算的工作負載管理等眾多技術?!?/p>
Intel
和AWS類似,英特爾不斷改進和優(yōu)化Hadoop使其運行在自己的硬件上,具體來說,就是讓Hadoop運行在其至強芯片上,幫助用戶打破Hadoop系統(tǒng)的一些限制,使軟件和硬件結合的更好,英特爾的Hadoop發(fā)行版在上述方面做得比較好。Forrester指出英特爾在最近才推出這個產品,所以公司在未來還有很多改進的可能,英特爾和微軟都被認為是Hadoop市場上的潛力股。
MapR Technologies
MapR的Hadoop發(fā)行版目前為止也許是最好的了,不過很多人可能都沒有聽說過。Forrester對Hadoop用戶的調查顯示,MapR的評級最高,其發(fā)行版在架構和數(shù)據處理能力上都獲得了最高分。MapR已將一套特殊功能融入其Hadoop發(fā)行版中。例如網絡文件系統(tǒng)(NFS)、災難恢復以及高可用性功能。Forrester說MapR在Hadoop市場上沒有Cloudera和Hortonworks那樣的知名度,MapR要成為一個真正的大企業(yè),還需要加強伙伴關系和市場營銷。
1,Cassandra:
Cassandra從安裝配置,到使用,負載平衡機制等等,無疑是這些新興的NoSQL中最方便使用的一個(個人使用體驗觀點)
但從近期的消息來看由于出現(xiàn)過幾次較為嚴重的數(shù)據庫停止服務事件,Cassandra的創(chuàng)始人Facebook,及Twitter開始漸漸棄用
Cassandra,只把Cassandra用在非核心模塊上,不地Digg仍在使用,看來我們要謹慎地對待它。2008年Facebook已讓
Cassandra開源到Apache.
2.MongoDB:
它的風格可以說,在當今WebAPI流行的時代,它更易于被人使用,BJSON操作風格,自動數(shù)據平衡機制(當然要當心存貯碎片問題),相對
MySQL等SQL數(shù)據庫有優(yōu)秀考慮全面的,分布式方案,自動M/S主從讀寫切換。對于數(shù)據集群來說,可以說相當完美的Sharding等自動化支持。至
今聽說過的最嚴重的事件就是FourSquare的11小時數(shù)據庫宕機事件。相對來說還能接受:),它是使用C++/Boost編寫,效率性能的確不錯。
3.Redis:
它就是一個高效的內存數(shù)據庫,用它來持久化數(shù)據存貯,那是扯淡,如果真拿它來與別的NoSQL一樣使用(考慮讀寫一致性或者寫安全)那它馬上慢下
來:)不過他提供了比Memcached更多的操作數(shù)據類型,倒可以完全用它來做為一個高效易用的緩存,Benchmark據說優(yōu)于memcached.
我用的數(shù)據規(guī)模沒有這么大,不敢妄加評論。
4.HBase:
概念上也相對完美,有Hive開源工具支持,使HBase,可以相對于其它NoSQL數(shù)據庫更易于使用,基于HDFS分布文件系統(tǒng),使HBASE天
生就有對海量分布集群很好的支持。又因為與Hadoop相伴而生,所以一個系統(tǒng)想使用數(shù)據分析,智能處理,海量邏輯執(zhí)行,完全可以選擇Hadoop +
HBase云計算方案。
MongoDB也支持js的Map/Reducer所以可以試著整合一下MongoDB進云計算方案中。
當我使有MySQL +
NoSQL方案時,我會選擇MongoDB,不僅是因為他的出色的海量分布式方案的支持,也不是因為經的Map/Reducer分布式計算的支持。而是因
為還沒聽說過它有過重大的失敗案例,相對較完美的文檔(還有中文手冊喲)還有JSON分格支持,在當下WebAPI流行的時代,不僅是從個人喜愛角度,也
是從工程管理角度,開發(fā)人員更Love it,呵呵。
一個公司里面不同項目可能用到不同的數(shù)據源,有的存在MySQL里面,又的存在MongoDB里面,甚至還有些要做第三方數(shù)據。
但是現(xiàn)在又想把數(shù)據整合起來,進行 數(shù)據分析 。此時數(shù)據倉庫(Data Warehouse,DW)就派上用場了。它可以對多種業(yè)務數(shù)據進行篩選和整合,可以用于數(shù)據分析、數(shù)據挖掘、數(shù)據報表。
總的來說,數(shù)據倉庫是將多個數(shù)據源的數(shù)據按照一定的 主題 集成起來,因為之前的數(shù)據各不相同,所以需要 抽取、清洗、轉換 。
整合以后的數(shù)據不允許隨便修改,只能分析,還需要定期更新。
上面我們說過,數(shù)據倉庫接收的數(shù)據源是不同的,要做集成的話,需要 抽取、清洗、轉換 三個步驟,這就是 ETL (Extract-Transform-Load)
國內最常用的是一款基于Hadoop的開源數(shù)據倉庫,名為 Hive ,它可以對存儲在 HDFS 的文件數(shù)據進行 查詢、分析 。
Hive對外可以提供HiveQL,這是類似于SQL語言的一種查詢語言。在查詢時可以將HiveQL語句轉換為 MapReduce 任務,在Hadoop層進行執(zhí)行。
Hive的最大優(yōu)勢在于 免費 ,那其他知名的商業(yè)數(shù)據倉庫有那些呢?比如Oracle,DB2,其中業(yè)界老大是 Teradata
Teradata數(shù)據倉庫支持大規(guī)模并行處理平臺(MPP),可以高速處理海量實際上,性能遠遠高于Hive。對企業(yè)來說,只需要專注于業(yè)務,節(jié)省管理技術方面的精力,實現(xiàn)ROI(投資回報率)最大化。
上面提到了Hive是最著名的開源數(shù)據倉庫,它是Hadoop生態(tài)中一個重要的組件。
Hadoop的生態(tài)中,HDFS解決了分布式存儲的問題,MapReduce解決了分布式計算的問題,而HBASE則提供了一種NoSQL的存儲方法。
但是如果需要的HDFS上的文件或者HBASE的表進行查詢,需要自定義MapReduce方法。那么Hive其實就是在HDFS上面的一個中間層,它可以讓業(yè)務人員直接使用SQL進行查詢。
所以Hive是用進行數(shù)據提取轉換加載的,而且它可以把SQL轉換為MapReduce任務,而Hive的表就是HDFS的目錄或者文件。
上圖為Hive的體系結構
Hive主要包含以下幾種數(shù)據模型:
本文為 什么是數(shù)據倉庫? 的筆記
大數(shù)據技術的體系龐大且復雜,基礎的技術包含數(shù)據的采集、數(shù)據預處理、分布式存儲、數(shù)據庫、數(shù)據倉庫、機器學習、并行計算、可視化等。
1、數(shù)據采集與預處理:FlumeNG實時日志收集系統(tǒng),支持在日志系統(tǒng)中定制各類數(shù)據發(fā)送方,用于收集數(shù)據;Zookeeper是一個分布式的,開放源碼的分布式應用程序協(xié)調服務,提供數(shù)據同步服務。
2、數(shù)據存儲:Hadoop作為一個開源的框架,專為離線和大規(guī)模數(shù)據分析而設計,HDFS作為其核心的存儲引擎,已被廣泛用于數(shù)據存儲。HBase,是一個分布式的、面向列的開源數(shù)據庫,可以認為是hdfs的封裝,本質是數(shù)據存儲、NoSQL數(shù)據庫。
3、數(shù)據清洗:MapReduce作為Hadoop的查詢引擎,用于大規(guī)模數(shù)據集的并行計算。
4、數(shù)據查詢分析:Hive的核心工作就是把SQL語句翻譯成MR程序,可以將結構化的數(shù)據映射為一張數(shù)據庫表,并提供HQL(HiveSQL)查詢功能。Spark啟用了內存分布數(shù)據集,除了能夠提供交互式查詢外,它還可以優(yōu)化迭代工作負載。
5、數(shù)據可視化:對接一些BI平臺,將分析得到的數(shù)據進行可視化,用于指導決策服務。