一 目錄
系統(tǒng)平臺(tái)?(Hadoop割去、CDH窟却、HDP)
監(jiān)控管理?(CM、Hue呻逆、Ambari夸赫、Dr.Elephant、Ganglia咖城、Zabbix茬腿、Eagle)
文件系統(tǒng)?(HDFS呼奢、GPFS、Ceph滓彰、GlusterFS控妻、Swift 、BeeGFS揭绑、Alluxio)
資源調(diào)度?(YARN弓候、Mesos、)
協(xié)調(diào)框架?(ZooKeeper 他匪、Etcd菇存、Consul)
數(shù)據(jù)存儲(chǔ)?(HBase、Cassandra邦蜜、ScyllaDB 依鸥、MongoDB、Accumulo 悼沈、Redis 贱迟、Ignite、Arrow 絮供、Geode衣吠、CouchDB、Kudu壤靶、CarbonData)
數(shù)據(jù)處理?(MapReduce缚俏、Spark、Flink贮乳、Storm忧换、Tez、Samza向拆、Apex亚茬、Beam、Heron)
查詢分析(Hive浓恳、SparkSQL才写、Presto、Kylin奖蔓、Impala赞草、Druid、ElasticSearch吆鹤、HAWQ厨疙、Lucene、Solr疑务、?Phoenix)
數(shù)據(jù)收集?(Flume沾凄、Filebeat梗醇、Logstash、Chukwa?)
數(shù)據(jù)交換?(Sqoop 撒蟀、Kettle保屯、DataX 柄粹、NiFi)
消息系統(tǒng)?(Pulsar、Kafka拗秘、RocketMQ活箕、ActiveMQ悉罕、RabbitMQ)
任務(wù)調(diào)度?(Azkaban、Oozie屏富、Airflow)
數(shù)據(jù)治理?(Ranger 已日、Sentry哥纫、Atlas)
可視化? ? (Kibana 棉姐、D3.js、ECharts)
數(shù)據(jù)挖掘?(Mahout 啦逆、MADlib 伞矩、Spark ML、TensorFlow夏志、Keras)
云平臺(tái)? ? (Amazon S3乃坤、GCP、Microsoft Azure)
1
系統(tǒng)平臺(tái)
Hadoop:Apache
Hadoop是一個(gè)開源的分布式系統(tǒng)基礎(chǔ)框架沟蔑,離線數(shù)據(jù)的分布式存儲(chǔ)和計(jì)算的解決方案湿诊。Hadoop最早起源于Nutch,Nutch基于2003
年瘦材、2004年谷歌發(fā)表的兩篇論文分布式文件系統(tǒng)GFS和分布式計(jì)算框架MapReduce的開源實(shí)現(xiàn)HDFS和MapReduce厅须。2005年推出,2008年1月成為Apache頂級(jí)項(xiàng)目食棕。Hadoop分布式文件系統(tǒng)(HDFS)是革命性的一大改進(jìn)朗和,它將服務(wù)器與普通硬盤驅(qū)動(dòng)器結(jié)合,并將它們轉(zhuǎn)變?yōu)槟軌蛴蒍ava應(yīng)用程序兼容并行IO的分布式存儲(chǔ)系統(tǒng)簿晓。Hadoop作為數(shù)據(jù)分布式處理系統(tǒng)的典型代表眶拉,形了成完整的生態(tài)圈,已經(jīng)成為事實(shí)上的大數(shù)據(jù)標(biāo)準(zhǔn)抢蚀,開源大數(shù)據(jù)目前已經(jīng)成為互聯(lián)網(wǎng)企業(yè)的基礎(chǔ)設(shè)施。Hadoop主要包含分布式存儲(chǔ)HDFS镰禾、離線計(jì)算引擎MapRduce皿曲、資源調(diào)度Apache
YARN三部分。Hadoop2.0引入了Apache
YARN作為資源調(diào)度吴侦。Hadoop3.0以后的版本對(duì)MR做了大量?jī)?yōu)化屋休,增加了基于內(nèi)存計(jì)算模型,提高了計(jì)算效率备韧。比較普及的穩(wěn)定版本是2.x劫樟,目前最新版本為3.2.0。
相關(guān)網(wǎng)站:Apache Hadoop
CDH:Cloudera
CDH是Cloudera基于穩(wěn)定版Hadoop及相關(guān)項(xiàng)目最成型的發(fā)行版本。CDH中提供的各種組件能讓用戶在一個(gè)可視化的UI界面中方便地管理叠艳,配置和監(jiān)控Hadoop以及其它所有相關(guān)組件奶陈。Cloudera成立于2008年,在2009年Cloudera發(fā)行了第一個(gè)Hadoop集成版本CDH附较,到目前為止吃粒,因?yàn)槠湟子谩⒁子谏?jí)拒课、安裝組件和減少維護(hù)成本等特性徐勃,成為企業(yè)部署最廣泛的大數(shù)據(jù)系統(tǒng)。在Hadoop的世界中早像,規(guī)模最大僻肖、知名度最高的公司就是Cloudera。CDH提供強(qiáng)大的部署卢鹦、管理和監(jiān)控工具臀脏,通過Cloudera
Manager的Web
UI安裝和管理集群,并且通過Hue瀏覽器端的Web控制臺(tái)上與Hadoop集群進(jìn)行交互來分析處理數(shù)據(jù)法挨。隨著云計(jì)算的發(fā)展谁榜,催生了亞馬遜AWS等巨頭,他們也會(huì)提供托管的Hadoop/Spark服務(wù)凡纳,如AWS的Elastic
Map Reduce(EMR)窃植,不僅集成在云平臺(tái)內(nèi)部而且成本也更低。而對(duì)象存儲(chǔ)服務(wù)荐糜,如AWS S3巷怜,Azure
Blob存儲(chǔ)和Google云端存儲(chǔ),從成本上來說暴氏,也低于Hadoop的存儲(chǔ)成本延塑。但是,對(duì)于重視數(shù)據(jù)資產(chǎn)的企業(yè)來說依舊需要Cloudera產(chǎn)品答渔。Cloudera也一直致力于向云計(jì)算轉(zhuǎn)型关带。2018年10月Cloudera合并Hortonworks,表示新的公司將成為行業(yè)領(lǐng)導(dǎo)者沼撕,為客戶提供更好的平臺(tái)宋雏,創(chuàng)建世界首個(gè)企業(yè)數(shù)據(jù)云,并將在云計(jì)算务豺、物聯(lián)網(wǎng)和容器技術(shù)等領(lǐng)域繼續(xù)發(fā)力拨扶。這對(duì)Hadoop的發(fā)展方向是一個(gè)打擊于样,但也意味著Hadoop的標(biāo)準(zhǔn)將更加統(tǒng)一,將有更多資金投入新技術(shù)的研究。CDH目前最新版本為6.2.0。
相關(guān)網(wǎng)站:Cloudera CDH
HDP:HDP是Hortonworks在基于Hadoop的發(fā)行版本。2014年Hortonworks上市,是企業(yè)級(jí)全球數(shù)據(jù)管理平臺(tái),同時(shí)也是服務(wù)和解決方案的領(lǐng)先供應(yīng)商诗良,為100強(qiáng)企業(yè)中的一多半提供“任何類型數(shù)據(jù)”的可操作信息,已經(jīng)成為世界第二大數(shù)據(jù)服務(wù)商厕诡。Hortonworks是第一家使用了Apache
HCatalog的元數(shù)據(jù)服務(wù)特性的提供商累榜。Hortonworks為入門提供了一個(gè)非常好的,易于使用的沙盒灵嫌。Hortonworks開發(fā)了很多增強(qiáng)特性并提交至核心主干壹罚,這使得Apache
Hadoop能夠在包括Windows Server和Windows Azure在內(nèi)的Microsft
Windows平臺(tái)上本地運(yùn)行,相比于CDH只能運(yùn)行在Linux系統(tǒng)中寿羞。使用Ambari提供Web
UI管理集群猖凛。HDP好處是完全開源,可以在其基礎(chǔ)上進(jìn)行二次開發(fā)绪穆,但對(duì)于技術(shù)比較薄弱中小型企業(yè)來說穩(wěn)定性沒有CDH高辨泳。2018年10月Cloudera合并Hortonworks,方向暫時(shí)未知玖院。HDP目前最新版本為3.1菠红。
相關(guān)網(wǎng)站:Hortonworks HDP
2
集群管理與監(jiān)控
Clodera Manager:CM是Cloudera開發(fā)的一個(gè)基于Web的用于部署和管理CDH集群的軟件。它具有集群自動(dòng)化安裝难菌、中心化管理试溯、集群監(jiān)控、報(bào)警等功能郊酒,大大節(jié)省集群部署時(shí)間遇绞,降低了運(yùn)維成本,極大的提高集群管理的效率燎窘。(非開源)
相關(guān)網(wǎng)站:Clodera Manager
Hue:Hue是由Cloudera貢獻(xiàn)給開源社區(qū)的Hadoop UI系統(tǒng)(Hadoop User
Experience)摹闽,最早是由Cloudera Desktop演化而來,它是基于Python
Web框架Django實(shí)現(xiàn)的褐健。Hue是一個(gè)可快速開發(fā)和調(diào)試Hadoop生態(tài)系統(tǒng)各種應(yīng)用的一個(gè)基于瀏覽器的圖形化用戶接口付鹿。使用Hue可以在瀏覽器端的Web控制臺(tái)上與Hadoop集群進(jìn)行交互來分析處理數(shù)據(jù),例如操作HDFS上的數(shù)據(jù)蚜迅、運(yùn)行MapReduce
Job舵匾、執(zhí)行Hive的SQL語句、瀏覽HBase數(shù)據(jù)庫慢叨、運(yùn)行Sqoop纽匙,編寫Oozie工作流等等大量工作务蝠。Hue是Hadoop平臺(tái)大數(shù)據(jù)分析開發(fā)的可視化分析利器拍谐。
網(wǎng)站:Hue
Ambari:Apache
Ambari是Hortonworks貢獻(xiàn)給Apache基金會(huì)的Hadoop平臺(tái)管理軟件,2013年11月20日成為Apache頂級(jí)項(xiàng)目。它具備Hadoop組件的安裝轩拨、管理践瓷、運(yùn)維等基本功能,提供Web
UI進(jìn)行可視化的集群管理亡蓉,簡(jiǎn)化了大數(shù)據(jù)平臺(tái)的安裝晕翠、使用難度。
相關(guān)網(wǎng)站:Apache Ambari
Dr.Elephant:Dr.elephant是一款對(duì)Hadoop和Spark任務(wù)進(jìn)行性能監(jiān)控和調(diào)優(yōu)的工具砍濒,它由LinkedIn的團(tuán)隊(duì)于2016年開源淋肾,開源之前已經(jīng)在公司運(yùn)行使用2年。它能自動(dòng)采集作業(yè)的度量指標(biāo)并分析爸邢,然后以簡(jiǎn)單明了的方式展現(xiàn)出來樊卓。Dr.elephant的設(shè)計(jì)思想是通過作業(yè)分析結(jié)果來指導(dǎo)開發(fā)者進(jìn)行作業(yè)調(diào)優(yōu),從而提升開發(fā)者效率和集群資源的利用率杠河。
相關(guān)網(wǎng)址:Dr.Elephant
Ganglia:Ganglia是UC
Berkeley發(fā)起的一個(gè)開源集群監(jiān)視項(xiàng)目碌尔,設(shè)計(jì)用于測(cè)量數(shù)以千計(jì)的節(jié)點(diǎn)。Ganglia的核心包含gmond券敌、gmetad以及一個(gè)Web前端唾戚。主要是用來監(jiān)控系統(tǒng)性能,如:cpu
待诅、mem叹坦、硬盤利用率,
I/O負(fù)載咱士、網(wǎng)絡(luò)流量情況等立由,通過曲線很容易見到每個(gè)節(jié)點(diǎn)的工作狀態(tài),對(duì)合理調(diào)整序厉、分配系統(tǒng)資源锐膜,提高系統(tǒng)整體性能起到重要作用。
相關(guān)網(wǎng)站:Ganglia
Zabbix:Zabbix是一個(gè)的基于Web界面的開源的分布式企業(yè)級(jí)監(jiān)控解決方案弛房。于2004年zabbix 1.0
正式發(fā)布道盏,由Alexei Vladishev團(tuán)隊(duì)維護(hù)更新,Zabbix
SIA提供支持文捶。Zabbix通過C/S模式采集數(shù)據(jù)荷逞,通過B/S模式在web端展示和配置。它能夠?qū)崟r(shí)監(jiān)控從成千上萬臺(tái)服務(wù)器粹排、虛擬機(jī)和網(wǎng)絡(luò)設(shè)備中收集到的數(shù)以百萬計(jì)的指標(biāo)种远。Zabbix能監(jiān)視各種網(wǎng)絡(luò)參數(shù),保證服務(wù)器系統(tǒng)的安全運(yùn)營(yíng)顽耳,并提供靈活的通知機(jī)制以讓系統(tǒng)管理員快速定位/解決存在的各種問題坠敷。還能夠利用存儲(chǔ)數(shù)據(jù)提供杰出的報(bào)表及實(shí)時(shí)的圖形化數(shù)據(jù)處理妙同,實(shí)現(xiàn)對(duì)監(jiān)控主機(jī)7x24小時(shí)集中監(jiān)控。
相關(guān)網(wǎng)站:Zabbix
Eagle:Apache Eagle是一個(gè)開源監(jiān)視和警報(bào)解決方案膝迎,用于智能實(shí)時(shí)地識(shí)別大數(shù)據(jù)平臺(tái)上的安全和性能問題粥帚,例如Apache
Hadoop,Apache
Spark等限次。Eagle起源于eBay芒涡,最早用于解決大規(guī)模Hadoop集群的監(jiān)控問題,于2015年10月提交給Apache孵化器卖漫,2016年12月21日成為Apache頂級(jí)項(xiàng)目费尽。Eagle
主要包括:高可擴(kuò)展、高可伸縮羊始、低延時(shí)依啰、動(dòng)態(tài)協(xié)同等特點(diǎn),支持?jǐn)?shù)據(jù)行為實(shí)時(shí)監(jiān)控店枣,能立即監(jiān)測(cè)出對(duì)敏感數(shù)據(jù)的訪問或惡意的操作速警,并立即采取應(yīng)對(duì)的措施。Eagle
提供一套高效分布式的流式策略引擎鸯两,具有高實(shí)時(shí)闷旧、可伸縮、易擴(kuò)展钧唐、交互友好等特點(diǎn)忙灼,同時(shí)集成機(jī)器學(xué)習(xí)對(duì)用戶行為建立Profile以實(shí)現(xiàn)實(shí)時(shí)智能實(shí)時(shí)地保護(hù)
Hadoop 生態(tài)系統(tǒng)中大數(shù)據(jù)的安全。
相關(guān)網(wǎng)站:Apache Eagle
3
文件系統(tǒng)
HDFS:HDFS(Hadoop Distributed File
System)分布式文件系統(tǒng)钝侠,是分布式計(jì)算中數(shù)據(jù)存儲(chǔ)管理的基礎(chǔ)该园。是Hadoop
Core項(xiàng)目的核心子項(xiàng)目。HDFS是基于流數(shù)據(jù)模式訪問和處理超大文件的需求而開發(fā)的帅韧,效仿谷歌文件系統(tǒng)(GFS)里初,數(shù)據(jù)在相同節(jié)點(diǎn)上以復(fù)制的方式進(jìn)行存儲(chǔ)以實(shí)現(xiàn)將數(shù)據(jù)合并計(jì)算的目的。HDFS是一個(gè)高度容錯(cuò)性的系統(tǒng)忽舟,適合部署在廉價(jià)的機(jī)器上双妨。HDFS能提供高吞吐量的數(shù)據(jù)訪問,非常適合大規(guī)模數(shù)據(jù)集上的應(yīng)用叮阅。HDFS放寬了一部分POSIX約束刁品,來實(shí)現(xiàn)流式讀取文件系統(tǒng)數(shù)據(jù)的目的。它有很多的優(yōu)點(diǎn)浩姥,但也存在有一些缺點(diǎn)挑随,包括:不適合低延遲數(shù)據(jù)訪問、無法高效存儲(chǔ)大量小文件勒叠、不支持多用戶寫入及任意修改文件兜挨。
相關(guān)網(wǎng)站:Hadoop HDFS
GPFS:GPFS(General Parallel File
System)是IBM推出的基于Hadoop的并行分布式集群文件系統(tǒng)竞阐。IBM認(rèn)為GPFS不共享集群版本比HDFS快得多,因?yàn)樗趦?nèi)核級(jí)別中運(yùn)行暑劝,而不是像HDFS在操作系統(tǒng)中運(yùn)行。GPFS是一個(gè)共享磁盤的文件系統(tǒng)颗搂,集群內(nèi)的所有節(jié)點(diǎn)可以并行地訪問所有共享磁盤担猛,并通過分布式的Token管理機(jī)制和條帶化技術(shù)來管理和優(yōu)化節(jié)點(diǎn)的訪問。GPFS支持完整的Posix文件系統(tǒng)語義丢氢。GPFS的應(yīng)用范圍非常廣泛傅联,從多節(jié)點(diǎn)文件共享服務(wù)、實(shí)時(shí)多媒體處理疚察、到大型的高性能計(jì)算集群蒸走,我們都可以看到GPFS的優(yōu)秀表現(xiàn)。GPFS在這些應(yīng)用里面都表現(xiàn)出了非常出色的性能和高可用性貌嫡。
相關(guān)網(wǎng)站:GPFS
Ceph:Ceph是一個(gè)開源的統(tǒng)一的分布式存儲(chǔ)系統(tǒng)比驻,是高性能的并行文件系統(tǒng)。Ceph是加州大學(xué)Santa Cruz分校的Sage
Weil(DreamHost的聯(lián)合創(chuàng)始人)專為博士論文設(shè)計(jì)的新一代自由軟件分布式文件系統(tǒng)岛抄。自2007年畢業(yè)之后别惦,Sage開始全職投入到Ceph開發(fā)之中,使其能適用于生產(chǎn)環(huán)境夫椭。Ceph的主要目標(biāo)是設(shè)計(jì)成基于POSIX的沒有單點(diǎn)故障的分布式文件系統(tǒng)掸掸,使數(shù)據(jù)能容錯(cuò)和無縫的復(fù)制。2010年3月蹭秋,Linus
Torvalds將Ceph
client合并到內(nèi)核2.6.34中扰付。它基于CRUSH算法,沒有中心節(jié)點(diǎn)仁讨,可以無限擴(kuò)展羽莺。Ceph提供三種存儲(chǔ)方式分別是對(duì)象存儲(chǔ),塊存儲(chǔ)和文件系統(tǒng)洞豁。在虛擬化領(lǐng)域里禽翼,比較常用到的是Ceph的塊設(shè)備存儲(chǔ)。Ceph以其穩(wěn)定族跛、高可用闰挡、可擴(kuò)展的特性,乘著開源云計(jì)算管理系統(tǒng)OpenStack的東風(fēng)礁哄,迅速成為最熱門的開源分布式存儲(chǔ)系統(tǒng)长酗。Ceph是目前最火的分布式存儲(chǔ)軟件,Ceph開源存儲(chǔ)項(xiàng)目已經(jīng)成為全球眾多海量存儲(chǔ)項(xiàng)目的主要選擇桐绒。Ceph現(xiàn)在是云計(jì)算夺脾、虛擬機(jī)部署的最火開源存儲(chǔ)解決方案之拨,是私有云事實(shí)上的標(biāo)準(zhǔn)。
相關(guān)網(wǎng)站:Ceph咧叭、Ceph中文網(wǎng)
GlusterFS:GlusterFS(GNU ClusterFile
System)是一種全對(duì)稱的開源分布式文件系統(tǒng)蚀乔,所謂全對(duì)稱是指GlusterFS采用彈性哈希算法,沒有中心節(jié)點(diǎn)菲茬,所有節(jié)點(diǎn)全部平等吉挣。GlusterFS配置方便,穩(wěn)定性好婉弹,可輕松達(dá)到PB級(jí)容量睬魂,數(shù)千個(gè)節(jié)點(diǎn)。2011年被紅帽收購(gòu)镀赌,之后推出了基于GlusterFS的Red
Hat Storage Server氯哮,增加了針對(duì)KVM的許多特性,可用作為KVM存儲(chǔ)image存儲(chǔ)集群商佛,也可以為L(zhǎng)B或HA提供存儲(chǔ)喉钢。
相關(guān)網(wǎng)站:GlusterFS
Swift:Swift 最初是由 Rackspace 公司開發(fā)的高可用分布式對(duì)象存儲(chǔ)服務(wù)。于 2010
年貢獻(xiàn)給OpenStack開源社區(qū)作為其最初的核心子項(xiàng)目之一良姆,為其 Nova
子項(xiàng)目提供虛機(jī)鏡像存儲(chǔ)服務(wù)出牧。Swift構(gòu)筑在比較便宜的標(biāo)準(zhǔn)硬件存儲(chǔ)基礎(chǔ)設(shè)施之上,無需采用
RAID(磁盤冗余陣列)歇盼,通過在軟件層面引入一致性散列技術(shù)和數(shù)據(jù)冗余性舔痕,犧牲一定程度的數(shù)據(jù)一致性來達(dá)到高可用性和可伸縮性,支持多租戶模式豹缀、容器和對(duì)象讀寫操作伯复,適合解決互聯(lián)網(wǎng)的應(yīng)用場(chǎng)景下非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)問題。Swift是一種比較通用的存儲(chǔ)解決方案邢笙,能夠可靠地存儲(chǔ)數(shù)量非常多的大小不一的文件啸如。
相關(guān)網(wǎng)站:OpenStack Swift
BeeGFS:BeeGFS(原FhGFS)既是一個(gè)網(wǎng)絡(luò)文件系統(tǒng)也是一個(gè)并行文件系統(tǒng)。是由Fraunhofer
Institute為工業(yè)數(shù)學(xué)計(jì)算而設(shè)計(jì)開發(fā)氮惯,由于在歐洲和美國(guó)的中小型HPC系統(tǒng)性能表現(xiàn)良好叮雳,在2014年改名注冊(cè)為BeeGFS并受到科研和商業(yè)的廣泛應(yīng)用「竞梗客戶端通過網(wǎng)絡(luò)與存儲(chǔ)服務(wù)器進(jìn)行通信(具有TCP/IP或任何具有RDMA功能
的互連帘不,如InfiniBand,RoCE或Omni-Path杨箭,支持native verbs 接口)寞焙。通過BeeGFS添加更多的服務(wù)器,
其容量和性能被聚合在單個(gè)命名空間中。BeeGFS是遵循GPL的“免費(fèi)開源”產(chǎn)品捣郊,文件系統(tǒng)沒有許可證費(fèi)用辽狈。?由ThinkParQ提供專業(yè)支持,系統(tǒng)集成商可以為客戶構(gòu)建使用BeeGFS的解決方案呛牲。
相關(guān)網(wǎng)站:BeeGFS
Alluxio:Alluxio(原Tachyon)是以內(nèi)存為中心的虛擬的分布式存儲(chǔ)系統(tǒng)刮萌。誕生于UC
Berkeley的AMPLab,它統(tǒng)一了數(shù)據(jù)訪問的方式娘扩,為上層計(jì)算框架和底層存儲(chǔ)系統(tǒng)構(gòu)建了橋梁着茸,?應(yīng)用只需要連接Alluxio即可訪問存儲(chǔ)在底層任意存儲(chǔ)系統(tǒng)中的數(shù)據(jù)。此外畜侦,Alluxio的以內(nèi)存為中心的架構(gòu)使得數(shù)據(jù)的訪問速度能比現(xiàn)有方案快幾個(gè)數(shù)量級(jí)。Alluxio介于計(jì)算框架(如Apache
Spark躯保,Apache MapReduce旋膳,Apache HBase,Apache Hive途事,Apache
Flink)和現(xiàn)有的存儲(chǔ)系統(tǒng)(如Amazon S3验懊,OpenStack
Swift,GlusterFS尸变,HDFS义图,MaprFS,Ceph召烂,NFS碱工,OSS)之間。
相關(guān)網(wǎng)站:Alluxio
4
資源調(diào)度
YARN:(Yet Another Resource Negotiator)是Hadoop的資源管理和作業(yè)調(diào)度系統(tǒng)奏夫。作為Apache
Hadoop的核心組件之一怕篷,YARN負(fù)責(zé)將系統(tǒng)資源分配給在Hadoop集群中運(yùn)行的各種應(yīng)用程序,并調(diào)度在不同集群節(jié)點(diǎn)上執(zhí)行的任務(wù)酗昼。YARN是Hadoop2.x
版本中的一個(gè)新特性廊谓。它的出現(xiàn)其實(shí)是為了解決第一代 MapReduce
編程框架的不足,提高集群環(huán)境下的資源利用率麻削,這些資源包括內(nèi)存蒸痹,磁盤,網(wǎng)絡(luò)呛哟,IO等叠荠。YARN的基本思想是將資源管理和作業(yè)調(diào)度/監(jiān)視的功能分解為單獨(dú)的
daemon(守護(hù)進(jìn)程),其擁有一個(gè)全局ResourceManager扫责、每個(gè)應(yīng)用程序的ApplicationMaster及每臺(tái)機(jī)器框架代理NodeManager蝙叛。ResourceManager負(fù)責(zé)所有應(yīng)用程序之間資源分配。NodeManager負(fù)責(zé)Containers公给,監(jiān)視其資源使用情況(CPU借帘,內(nèi)存蜘渣,磁盤,網(wǎng)絡(luò))并將其報(bào)告給
ResourceManager肺然。ApplicationMaster負(fù)責(zé)是協(xié)調(diào)來自ResourceManager的資源蔫缸,并與NodeManager一起執(zhí)行和監(jiān)視任務(wù)。
相關(guān)網(wǎng)址:Hadoop Yarn
Mesos:Apache
Mesos是一個(gè)集群管理器际起,可跨分布式應(yīng)用程序或框架提供有效的資源隔離和共享拾碌。Mesos最初是由加州大學(xué)伯克利分校的AMPLab開發(fā)的,Mesos項(xiàng)目發(fā)布于是2009年街望,2010年12月進(jìn)入Apache孵化器校翔,2013年6月19日成為Apache頂級(jí)項(xiàng)目。Twitter公司則是
Mesos
項(xiàng)目的早期支持者和使用者之一灾前。它位于應(yīng)用程序?qū)雍筒僮飨到y(tǒng)之間防症,可以更加輕松地在大規(guī)模集群環(huán)境中更有效地部署和管理應(yīng)用程序。它可以在動(dòng)態(tài)共享節(jié)點(diǎn)池上運(yùn)行許多應(yīng)用程序哎甲。對(duì)數(shù)據(jù)中心而言它就像一個(gè)單一的資源池蔫敲,從物理或虛擬機(jī)器中抽離了CPU、內(nèi)存炭玫、存儲(chǔ)以及其它計(jì)算資源奈嘿,很容易建立和有效運(yùn)行具備容錯(cuò)性和彈性的分布式系統(tǒng)。2019年5月吞加,Twitter宣布放棄Mesos裙犹,基礎(chǔ)設(shè)施從Mesos全面轉(zhuǎn)向Kubernetes。
相關(guān)網(wǎng)址:Apache?Mesos
5
協(xié)調(diào)框架
Zookeeper:Apache ZooKeeper
是一個(gè)開源的分布式協(xié)調(diào)服務(wù)衔憨,是Google的Chubby一個(gè)開源的實(shí)現(xiàn)伯诬,是Hadoop,HBase和其他分布式框架使用的有組織服務(wù)的標(biāo)準(zhǔn)巫财。由雅虎開源并于2010年11月成為Apache頂級(jí)項(xiàng)目盗似。ZooKeeper是一個(gè)典型的分布式數(shù)據(jù)一致性解決方案,分布式應(yīng)用程序可以基于ZooKeeper實(shí)現(xiàn)諸如數(shù)據(jù)發(fā)布/訂閱平项、負(fù)載均衡赫舒、命名服務(wù)、分布式協(xié)調(diào)/通知闽瓢、集群管理接癌、Master
選舉、分布式鎖和分布式隊(duì)列等功能扣讼。ZooKeeper是以Fast Paxos算法為基礎(chǔ)的缺猛,Paxos
算法存在活鎖的問題,即當(dāng)有多個(gè)proposer交錯(cuò)提交時(shí),有可能互相排斥導(dǎo)致沒有一個(gè)proposer能提交成功荔燎,而Fast
Paxos作了一些優(yōu)化耻姥,通過選舉產(chǎn)生一個(gè)leader (領(lǐng)導(dǎo)者),只有l(wèi)eader才能提交proposer有咨。ZooKeeper使用 ZAB
協(xié)議作為其保證數(shù)據(jù)一致性的核心算法琐簇。ZAB(ZooKeeper Atomic Broadcast 原子廣播)協(xié)議是為分布式協(xié)調(diào)服務(wù)
ZooKeeper 專門設(shè)計(jì)的一種支持崩潰恢復(fù)的原子廣播協(xié)議。
相關(guān)網(wǎng)址:Apache Zookeeper
Etcd:Etcd是一個(gè)高可用的鍵值存儲(chǔ)系統(tǒng)座享,主要用于共享配置和服務(wù)發(fā)現(xiàn)婉商。Etcd是一種分布式kv存儲(chǔ)設(shè)施,由CoreOS于2013年6月發(fā)起的開源并維護(hù)的項(xiàng)目渣叛,它感來自于ZooKeeper和Doozer丈秩,基于Go語言實(shí)現(xiàn)。它類似的Zookeeper淳衙,但沒有Zookeeper那么重型蘑秽,功能也沒有覆蓋那么多,通過Raft一致性算法處理日志復(fù)制以保證強(qiáng)一致性滤祖。Raft是一個(gè)新的一致性算法筷狼,適用于分布式系統(tǒng)的日志復(fù)制瓶籽,Raft通過選舉的方式來實(shí)現(xiàn)一致性匠童。Google的容器集群管理系統(tǒng)Kubernetes、開源PaaS平臺(tái)Cloud
Foundry和CoreOS的Fleet都廣泛使用了Etcd塑顺。在分布式系統(tǒng)中汤求,如何管理節(jié)點(diǎn)間的狀態(tài)一直是一個(gè)難題,etcd像是專門為集群環(huán)境的服務(wù)發(fā)現(xiàn)和注冊(cè)而設(shè)計(jì)严拒,它提供了數(shù)據(jù)TTL失效扬绪、數(shù)據(jù)改變監(jiān)視、多值裤唠、目錄監(jiān)聽挤牛、分布式鎖原子操作等功能,可以方便的跟蹤并管理集群節(jié)點(diǎn)的狀態(tài)种蘸。
相關(guān)網(wǎng)站:Etcd
Consul:Consul是HashiCorp公司推出的開源工具墓赴,用于實(shí)現(xiàn)分布式系統(tǒng)的服務(wù)發(fā)現(xiàn)與配置共享。Consul用Go語言實(shí)現(xiàn)航瞭,因此具有天然可移植性(支持Linux诫硕、windows和Mac
OS
X)。與其他分布式服務(wù)注冊(cè)與發(fā)現(xiàn)的方案不同刊侯,Consul的方案更"一站式"章办,內(nèi)置了服務(wù)注冊(cè)與發(fā)現(xiàn)框架、分布一致性協(xié)議實(shí)現(xiàn)、健康檢查藕届、Key/Value存儲(chǔ)挪蹭、多數(shù)據(jù)中心方案,不再需要依賴其他工具(比如ZooKeeper等)翰舌。采用Raft算法一致性協(xié)議嚣潜,支持多數(shù)據(jù)中心分布式高可用,服務(wù)發(fā)現(xiàn)和配置共享椅贱,使用gossip協(xié)議管理成員和消息廣播懂算,支持ACL訪問控制。最新的Consul提供了一個(gè)新特性“Mesh
網(wǎng)關(guān)”,實(shí)現(xiàn)透明烦感、跨網(wǎng)絡(luò)的連接。這些特性可以跨平臺(tái)工作垮媒,對(duì)Kubernetes提供一流的支持侮穿,并且在任何云或?qū)S镁W(wǎng)絡(luò)上都可以輕松地部署到更傳統(tǒng)的環(huán)境中驶俊,實(shí)現(xiàn)了Consul多云服務(wù)網(wǎng)絡(luò)的目標(biāo)榕酒。
相關(guān)網(wǎng)站:Consul
6
數(shù)據(jù)存儲(chǔ)
Hbase:Apache HBase(Hadoop
Database)是一個(gè)分布式的胚膊、面向列的NoSQL開源數(shù)據(jù)庫。是一個(gè)高可靠性想鹰、高性能紊婉、面向列、可伸縮的分布式存儲(chǔ)系統(tǒng)辑舷,利用HBase技術(shù)可在廉價(jià)PC
Server上搭建起大規(guī)模結(jié)構(gòu)化存儲(chǔ)集群喻犁。初期的目標(biāo)是彌補(bǔ)MapReduce在實(shí)時(shí)操作上的缺失,方便用戶可隨時(shí)操作大規(guī)模的數(shù)據(jù)集何缓。HBase原來是Apache的Hadoop項(xiàng)目的子項(xiàng)目肢础,隨著大數(shù)據(jù)與NoSQL的流行和迅速發(fā)展,2010年5月Apache
HBase脫離了Hadoop成為Apache基金的頂級(jí)項(xiàng)目碌廓。HBase是Google Bigtable的開源實(shí)現(xiàn)传轰,類似Google
Bigtable利用GFS作為其文件存儲(chǔ)系統(tǒng),HBase利用Hadoop
HDFS作為其文件存儲(chǔ)系統(tǒng)谷婆;Google運(yùn)行MapReduce來處理Bigtable中的海量數(shù)據(jù)慨蛙,HBase同樣利用Hadoop
MapReduce來處理HBase中的海量數(shù)據(jù);Google Bigtable利用
Chubby作為協(xié)同服務(wù)纪挎,HBase利用Zookeeper作為協(xié)調(diào)服務(wù)期贫。HBase不同于一般的關(guān)系數(shù)據(jù)庫,它是一個(gè)適合于非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)庫异袄,另外HBase是基于列的而不是基于行的模式通砍。
相關(guān)網(wǎng)址:Apache Hbase
Cassandra:Apache
Cassandra是一個(gè)開源的、分布式的混合型NoSQL數(shù)據(jù)庫隙轻。它最初由Facebook開發(fā)埠帕,于2008年開源垢揩,2010年2月17日成為Apache頂級(jí)項(xiàng)目玖绿。主要用于儲(chǔ)存海量數(shù)據(jù)。以Amazon專有的完全分布式Dynamo為基礎(chǔ)叁巨,結(jié)合了Google
BigTable基于列族的數(shù)據(jù)模型斑匪。P2P去中心化的存儲(chǔ)。很多方面都可以稱之為Dynamo
2.0锋勺。Cassandra的主要特點(diǎn)就是它不是一個(gè)數(shù)據(jù)庫蚀瘸,而是由一堆數(shù)據(jù)庫節(jié)點(diǎn)共同構(gòu)成的一個(gè)分布式網(wǎng)絡(luò)服務(wù),對(duì)Cassandra
的一個(gè)寫操作庶橱,會(huì)被復(fù)制到其它節(jié)點(diǎn)上去贮勃,對(duì)Cassandra的讀操作,也會(huì)被路由到某個(gè)節(jié)點(diǎn)上面去讀取苏章。對(duì)于一個(gè)Cassandra群集來說寂嘉,擴(kuò)展性能是比較簡(jiǎn)單的事情奏瞬,只管在群集里面添加節(jié)點(diǎn)就可以了。它提供了高可用性泉孩,沒有單點(diǎn)故障硼端。它是一個(gè)網(wǎng)絡(luò)社交云計(jì)算方面理想的數(shù)據(jù)庫。
相關(guān)網(wǎng)站:Apache Cassandra
ScyllaDB:ScyllaDB 是用 C++ 重寫的 Cassandra寓搬,官網(wǎng)號(hào)稱每節(jié)點(diǎn)每秒處理 100 萬 TPS珍昨。ScyllaDB
完全兼容 Apache Cassandra,擁有比 Cassandra 多 10x 倍的吞吐量句喷,降低了延遲镣典。ScyllaDB
號(hào)稱是世界上最快的 NoSQL 列存儲(chǔ)數(shù)據(jù)庫。ScyllaDB 在垃圾收集或者 Compaction
的時(shí)候不需要暫停唾琼,在常規(guī)生產(chǎn)負(fù)載的時(shí)候可以添加和刪除節(jié)點(diǎn)骆撇,數(shù)據(jù)結(jié)構(gòu)測(cè)量不會(huì)跨 CPU 緩存線,poll
模式驅(qū)動(dòng)替代了中斷父叙。目前國(guó)內(nèi)資料極少神郊,中文網(wǎng)2016年7月停止了更新。
相關(guān)網(wǎng)站:ScyllaDB趾唱、ScyllaDB中文網(wǎng)
MongoDB:MongoDB是為處理大數(shù)據(jù)而生的一個(gè)面向文檔的分布式開源數(shù)據(jù)庫涌乳,由10gen公司開發(fā)和維護(hù)。它使用C++編寫甜癞。MongoDB是一個(gè)介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的產(chǎn)品夕晓,是非關(guān)系數(shù)據(jù)庫當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫的悠咱。他支持的數(shù)據(jù)結(jié)構(gòu)非常松散蒸辆,是類似json的bjson格式,因此可以存儲(chǔ)比較復(fù)雜的數(shù)據(jù)類型析既。Mongo最大的特點(diǎn)是他支持的查詢語言非常強(qiáng)大躬贡,其語法有點(diǎn)類似于面向?qū)ο蟮牟樵冋Z言,幾乎可以實(shí)現(xiàn)類似關(guān)系數(shù)據(jù)庫單表查詢的絕大部分功能眼坏,而且還支持對(duì)數(shù)據(jù)建立索引拂玻。MongoDB是專為可擴(kuò)展性,高性能和高可用性而設(shè)計(jì)的數(shù)據(jù)庫宰译。它可以從單服務(wù)器部署擴(kuò)展到大型檐蚜、復(fù)雜的多數(shù)據(jù)中心架構(gòu)。利用內(nèi)存計(jì)算的優(yōu)勢(shì)沿侈,MongoDB能夠提供高性能的數(shù)據(jù)讀寫操作闯第。MongoDB的本地復(fù)制和自動(dòng)故障轉(zhuǎn)移功能使應(yīng)用程序具有企業(yè)級(jí)的可靠性和操作靈活性。2018年10月MongoDB宣布將開源協(xié)議從GNU
AGPLv3切換到Server Side Public License (SSPL)缀拭,SSPL 明確要求托管 MongoDB
實(shí)例的云廠商要么獲取商業(yè)許可證要么向社區(qū)開放其服務(wù)源碼咳短。隨即肃廓,紅帽宣布從Red Hat Enterprise Linux(RHEL)8中刪除
MongoDB,Debian Linux也已經(jīng)從它的發(fā)行版中刪除了MongoDB诲泌。
相關(guān)網(wǎng)址:MongoDB盲赊、MongoDB中文社區(qū)
Accumulo:Apache Accumulo
是一個(gè)高性能可擴(kuò)展的分布式Key-Value數(shù)據(jù)存儲(chǔ)和檢索系統(tǒng)。由美國(guó)國(guó)家安全局(NSA)于2011年捐贈(zèng)給Apache基金會(huì)敷扫,2012年3月21日成為Apache頂級(jí)項(xiàng)目哀蘑。Accumulo使用Google
BigTable設(shè)計(jì)思路,基于Apache Hadoop葵第、Zookeeper 和 Thrift
構(gòu)建绘迁。Accumulo支持高效存儲(chǔ)和檢索的結(jié)構(gòu)化數(shù)據(jù),包括查詢范圍卒密,并提供支持使用Accumulo表作為輸入和輸出的
MapReduce作業(yè)缀台。Accumulo比簡(jiǎn)單的key-values數(shù)據(jù)庫提供更豐富的數(shù)據(jù)模型,但不是完全的關(guān)系數(shù)據(jù)庫哮奇。
相關(guān)網(wǎng)站:Apache Accumulo
Redis:Redis
是一個(gè)開源的支持網(wǎng)絡(luò)膛腐、可基于內(nèi)存也可持久化的日志型、Key-Value數(shù)據(jù)庫鼎俘,和Memcached類似哲身。它可以用作數(shù)據(jù)庫、緩存和消息中間件贸伐。是Salvatore
Sanfilippo于2009年開發(fā)勘天,2010年3月15日起Redis的開發(fā)工作由VMware主持,2013年5月開始由Pivotal贊助捉邢。Redis支持存儲(chǔ)的value類型相對(duì)更多脯丝,包括字符串、鏈表伏伐、集合(set)和有序集合(zset)宠进。與memcached一樣,為了保證效率秘案,數(shù)據(jù)都是緩存在內(nèi)存中砰苍,區(qū)別的是Redis會(huì)周期性的把更新的數(shù)據(jù)寫入磁盤或者把修改操作寫入追加的記錄文件潦匈,并且在此基礎(chǔ)上實(shí)現(xiàn)了主從同步阱高。Redis的出現(xiàn),很大程度補(bǔ)償了memcached這類key/value存儲(chǔ)的不足茬缩,在部分場(chǎng)合可以對(duì)關(guān)系數(shù)據(jù)庫起到很好的補(bǔ)充作用赤惊。它提供了Python、Ruby凰锡、Erlang未舟、PHP客戶端圈暗,使用很方便。?簡(jiǎn)單說裕膀,Redis是一個(gè)數(shù)據(jù)緩存的NoSQL數(shù)據(jù)庫员串。
相關(guān)網(wǎng)站:Redis、Redis中文網(wǎng)
Ignite:Apache
Ignite是一個(gè)以內(nèi)存為中心的分布式數(shù)據(jù)庫昼扛、緩存和處理平臺(tái)寸齐,可以在PB級(jí)數(shù)據(jù)中,以內(nèi)存級(jí)的速度進(jìn)行事務(wù)性抄谐、分析性以及流式負(fù)載的處理渺鹦。Ignite和Apache
Arrow很類似,屬于大數(shù)據(jù)范疇中的內(nèi)存分布式管理系統(tǒng)蛹含。Ignite來源于GridGain系統(tǒng)公司開發(fā)的GridGain軟件毅厚,2014
年3月GridGain公司將該軟件90%以上的功能和代碼開源,2014年10月GridGain通過Apache
2.0許可進(jìn)入Apache的孵化器進(jìn)行孵化浦箱,2015年9月18日成為Apache的頂級(jí)項(xiàng)目吸耿,9月28日即發(fā)布了1.4.0版。Ignite提供了完整的SQL酷窥、DDL和DML的支持珍语,可以使用純SQL而不用寫代碼與Ignite進(jìn)行交互,這意味著只使用SQL就可以創(chuàng)建表和索引竖幔,以及插入板乙、更新和查詢數(shù)據(jù)。有這個(gè)完整的SQL支持拳氢,Ignite就可以作為一種分布式SQL數(shù)據(jù)庫募逞。Ignite還提供了基于數(shù)據(jù)關(guān)聯(lián)對(duì)數(shù)據(jù)進(jìn)行分區(qū)的能力,并使用大規(guī)模并行處理來提高性能和可伸縮性馋评。Ignite還提供內(nèi)置的流處理放接、分析和機(jī)器學(xué)習(xí)功能。它類似于一個(gè)關(guān)系型的內(nèi)存數(shù)據(jù)庫留特,可以像操作數(shù)據(jù)庫一樣操作內(nèi)存緩存纠脾。
相關(guān)網(wǎng)站:Apache Ignite、Apache Ignite中文站
Arrow:Apache Arrow 大數(shù)據(jù)列式內(nèi)存數(shù)據(jù)平臺(tái)蜕青。最初是基于Apache
Drill項(xiàng)目的代碼進(jìn)行開發(fā)的苟蹈,于2016年2月17日成為Apache頂級(jí)項(xiàng)目。它是列式內(nèi)存分析的事實(shí)標(biāo)準(zhǔn)右核,由來自Drill慧脱、Hadoop、HBase贺喝、Impala菱鸥、Storm等13個(gè)頂級(jí)開源項(xiàng)目的工程師們開發(fā)和完善宗兼。它設(shè)計(jì)的目的在于作為一個(gè)跨平臺(tái)的數(shù)據(jù)層,來加快大數(shù)據(jù)分析項(xiàng)目的運(yùn)行速度氮采。它為平面和分層數(shù)據(jù)指定了獨(dú)立于語言的標(biāo)準(zhǔn)化列式內(nèi)存格式殷绍,可在現(xiàn)代硬件上進(jìn)行高效的分析操作。它還提供了計(jì)算庫和零拷貝流式消息傳遞和進(jìn)程間通信鹊漠。在分布式系統(tǒng)內(nèi)部篡帕,每個(gè)系統(tǒng)都有自己的內(nèi)存格式,大量的
CPU
資源被消耗在序列化和反序列化過程中贸呢,并且由于每個(gè)項(xiàng)目都有自己的實(shí)現(xiàn)镰烧,沒有一個(gè)明確的標(biāo)準(zhǔn),造成各個(gè)系統(tǒng)都在重復(fù)著復(fù)制楞陷、轉(zhuǎn)換工作怔鳖,這種問題在微服務(wù)系統(tǒng)架構(gòu)出現(xiàn)之后更加明顯,Arrow
的出現(xiàn)就是為了解決這一問題固蛾。它提供了一種跨平臺(tái)應(yīng)用的內(nèi)存數(shù)據(jù)交換格式结执,是列式內(nèi)存分析的事實(shí)標(biāo)準(zhǔn)。目前支持的語言包括C艾凯、C++献幔、C#、Go趾诗、Java蜡感、JavaScript、MATLAB恃泪、Python郑兴、R語言、Ruby和Rust等11種語言贝乎。
相關(guān)網(wǎng)站:Apache Arrow
Geode:Apache
Geode是一個(gè)高性能的分布式內(nèi)存對(duì)象緩存系統(tǒng)情连,Key/Value存儲(chǔ)系統(tǒng)。是GemFire的開源版览效,2015年4月GemGire把代碼提交給Apache孵化却舀,2016年11月16日畢業(yè)成為Apache基金會(huì)的頂級(jí)項(xiàng)目。Geode是一個(gè)相當(dāng)成熟锤灿、強(qiáng)健的的數(shù)據(jù)管理平臺(tái)挽拔,提供實(shí)時(shí)的、一致的衡招、貫穿整個(gè)云架構(gòu)地訪問數(shù)據(jù)關(guān)鍵型應(yīng)用篱昔。Geode跨多個(gè)進(jìn)程匯集內(nèi)存,CPU始腾,網(wǎng)絡(luò)資源和可選的本地磁盤州刽,以管理應(yīng)用程序?qū)ο蠛托袨椤eode自身功能比較多浪箭,首先它是一個(gè)基于JVM的NoSQL分布式數(shù)據(jù)處理平臺(tái)穗椅,同時(shí)集中間件、緩存奶栖、消息隊(duì)列匹表、事件處理引擎、NoSQL數(shù)據(jù)庫于一身的分布式內(nèi)存數(shù)據(jù)處理平臺(tái)宣鄙∨鄱疲可用來進(jìn)行完成分布式緩存、數(shù)據(jù)持久化冻晤、分布式事物苇羡、動(dòng)態(tài)擴(kuò)展等功能。簡(jiǎn)單說鼻弧,Geode是Redis的增強(qiáng)版设江。
相關(guān)網(wǎng)站:Apache Geode
Neo4j:Neo4j是一個(gè)開源的高性能NOSQL圖形數(shù)據(jù)庫,它將結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)在網(wǎng)絡(luò)上而不是表中攘轩。它是由Neo技術(shù)使用Java語言完全開發(fā)的叉存。圖形數(shù)據(jù)庫也就意味著它的數(shù)據(jù)并非保存在表或集合中,而是保存為節(jié)點(diǎn)以及節(jié)點(diǎn)之間的關(guān)系度帮。Neo4j
除了頂點(diǎn)和邊歼捏,還有一種重要的部分屬性。無論是頂點(diǎn)還是邊笨篷,都可以有任意多的屬性甫菠。屬性的存放類似于一個(gè)HashMap,Key 為一個(gè)字符串冕屯,而
Value
必須是基本類型或者是基本類型數(shù)組寂诱。Neo4j也可以被看作是一個(gè)高性能的圖引擎,該引擎具有成熟數(shù)據(jù)庫的所有特性安聘。Neo4j創(chuàng)建的圖是用頂點(diǎn)和邊構(gòu)建一個(gè)有向圖痰洒,其查詢語言cypher已經(jīng)成為事實(shí)上的標(biāo)準(zhǔn)。
相關(guān)網(wǎng)站:Neo4j浴韭、Neo4j中文社區(qū)
CouchDB:Apache
CouchDB是一個(gè)分布式的NoSQL面向文檔的數(shù)據(jù)庫丘喻,2008年11月19日成為Apache頂級(jí)開源項(xiàng)目。CouchDB是一個(gè)完全包含web的數(shù)據(jù)庫念颈。使用JSON格式存儲(chǔ)文檔數(shù)據(jù)泉粉。使用web瀏覽器通過HTTP訪問文檔。使用JavaScript查詢、組合和轉(zhuǎn)換文檔嗡靡。CouchDB可以很好地與現(xiàn)代web和移動(dòng)應(yīng)用程序配合使用跺撼。可以使用CouchDB
增量復(fù)制高效地分發(fā)數(shù)據(jù)讨彼。CouchDB支持帶有自動(dòng)沖突檢測(cè)的主控設(shè)置歉井。CouchDB附帶了一套特性,比如即時(shí)文檔轉(zhuǎn)換和實(shí)時(shí)更改通知哈误,這使得web開發(fā)變得非常簡(jiǎn)單哩至。它甚至提供了一個(gè)易于使用的web管理控制臺(tái)。
相關(guān)網(wǎng)站:Apache CouchDB
Kudu:Apache
Kudu是一個(gè)為了Hadoop系統(tǒng)環(huán)境而打造的列式存儲(chǔ)系統(tǒng)蜜自,是一個(gè)為塊數(shù)據(jù)的快速分析而生的存儲(chǔ)架構(gòu)菩貌,可以同時(shí)提供低延遲的隨機(jī)讀寫和高效的數(shù)據(jù)分析能力。Kudu是由Cloudera開源重荠,2015年12月3日進(jìn)入Apache孵化器箭阶,2016年7月20日成為Apache頂級(jí)項(xiàng)目。Kudu專為了對(duì)快速變化的數(shù)據(jù)進(jìn)行快速的分析晚缩,擁有Hadoop生態(tài)系統(tǒng)應(yīng)用的常見技術(shù)特性尾膊,運(yùn)行在一般的商用硬件上,支持水平擴(kuò)展,高可用荞彼,使用Raft協(xié)議進(jìn)行一致性保證冈敛。并且與Cloudera
Impala和Apache
Spark等當(dāng)前流行的大數(shù)據(jù)查詢和分析工具結(jié)合緊密。在Kudu出現(xiàn)之前鸣皂,Hadoop生態(tài)環(huán)境中的儲(chǔ)存主要依賴HDFS和HBase抓谴,追求高吞吐批處理的用例中使用HDFS,追求低延時(shí)隨機(jī)讀取用例下用HBase寞缝,而Kudu正好能兼顧這兩者癌压。
相關(guān)網(wǎng)站:Apache Kudu
CarbonData:Apache
CarbonData是一個(gè)基于索引的列式數(shù)據(jù)格式解決方案。華為于2016年6月開源并貢獻(xiàn)給Apache荆陆,于2017年4月19日成為Apache頂級(jí)項(xiàng)目滩届。CarbonData是一種新的融合存儲(chǔ)解決方案,利用先進(jìn)的列式存儲(chǔ)被啼,索引帜消,壓縮和編碼技術(shù)提高計(jì)算效率,從而加快查詢速度浓体,其查詢速度比
PetaBytes
數(shù)據(jù)快一個(gè)數(shù)量級(jí)泡挺。CarbonData提供了一種新的融合數(shù)據(jù)存儲(chǔ)方案,以一份數(shù)據(jù)同時(shí)支持“交互式分析命浴、詳單查詢娄猫、任意維度組合的過濾查詢等”多種大數(shù)據(jù)應(yīng)用場(chǎng)景贱除,并通過豐富的索引技術(shù)、字典編碼媳溺、列存等特性提升了IO掃描和計(jì)算性能月幌,實(shí)現(xiàn)百億數(shù)據(jù)級(jí)秒級(jí)響應(yīng),與大數(shù)據(jù)生態(tài)Apache
Hadoop褂删、Apache Spark等無縫集成飞醉。
相關(guān)網(wǎng)站:Apache CarbonData冲茸、CarbonData中文文檔
7
數(shù)據(jù)處理
MapReduce:Apache Hadoop
MapReduce是一個(gè)分布式的離線計(jì)算框架屯阀,用于海量數(shù)據(jù)的并行運(yùn)算,是Hadoop數(shù)據(jù)分析的核心.轴术。MapReduce框架使得編程人員在不會(huì)分布式并行編程的情況下难衰,將編寫的業(yè)務(wù)邏輯代碼運(yùn)行在分布式系統(tǒng)上,開發(fā)人員可以將絕大部分的工作集中于業(yè)務(wù)邏輯上的開發(fā)逗栽,具體的計(jì)算只需要交給框架就可以盖袭。MapReduce的處理過程分為兩個(gè)步驟:Map和Reduce。Map階段對(duì)輸入的數(shù)據(jù)進(jìn)行并行處理彼宠,處理結(jié)果傳給Reduce完成最后的匯總鳄虱。但由于MR對(duì)HDFS的頻繁操作(包括計(jì)算結(jié)果持久化、數(shù)據(jù)備份凭峡、資源下載及Shuffle等)導(dǎo)致磁盤I/O成為系統(tǒng)性能的瓶頸拙已,因此只適用于離線數(shù)據(jù)處理或批處理,而不能支持對(duì)迭代式摧冀、交互式倍踪、流式數(shù)據(jù)的處理,目前逐漸被Spark索昂、Flink替代建车。
相關(guān)網(wǎng)站:Hadoop MapReduce
Spark:Apache Spark是通用的一站式計(jì)算框架,是專為大規(guī)模數(shù)據(jù)處理而設(shè)計(jì)的快速通用的計(jì)算引擎椒惨。2009年誕生于UC
Berkeley的AMPLab缤至,2010
年開源,2013年6月成為Apache孵化項(xiàng)目康谆,2014年2月19日成為Apache頂級(jí)項(xiàng)目领斥。Spark是基于MapReduce算法實(shí)現(xiàn)的分布式計(jì)算,擁有
MapReduce 所具有的優(yōu)點(diǎn)秉宿,但不同于 MR 的是戒突,Job中間輸出和結(jié)果可以保存在內(nèi)存中,從而不再需要讀寫
HDFS描睦,因此Spark能更好地適用于數(shù)據(jù)挖掘與機(jī)器學(xué)習(xí)等需要迭代的算法中膊存,高效地支持更多計(jì)算模式,包括交互式查詢和流處理。Spark是MapReduce
的替代方案隔崎,是對(duì) Hadoop 的補(bǔ)充今艺,而且兼容 HDFS、Hive爵卒,可融入 Hadoop
的生態(tài)系統(tǒng)虚缎,以彌補(bǔ)MapReduce的不足。Spark是在Scala語言中實(shí)現(xiàn)的钓株,它將 Scala 用作其應(yīng)用程序框架实牡。與 Hadoop
不同,Spark
和Scala能夠緊密集成轴合,其中的Scala可以像操作本地集合對(duì)象一樣輕松地操作分布式數(shù)據(jù)集创坞。Spark通過提供豐富的Scala、Java受葛、Python
API题涨、R及交互式Shell來提高可用性。Spark主要包含幾個(gè)重要組件:SparkCore批處理总滩、SparkSQL交互式處理纲堵、SparkStreaming流處理、Spark
Graphx圖計(jì)算闰渔、Spark
MLlib機(jī)器學(xué)習(xí)席函,Spark旨在成為運(yùn)行批處理、數(shù)據(jù)流處理澜建、交互處理向挖、圖形處理和機(jī)器學(xué)習(xí)等應(yīng)用的一站式平臺(tái)。目前Spark已經(jīng)成為大數(shù)據(jù)領(lǐng)域最熱門的技術(shù)炕舵。
相關(guān)網(wǎng)站:Apache Spark
Flink:Apache
Flink是一個(gè)的開源的流處理和批處理分布式數(shù)據(jù)處理框架何之,其核心是一個(gè)流式的數(shù)據(jù)流執(zhí)行引擎。Flink起源于Stratosphere項(xiàng)目咽筋,2014年4月Stratosphere代碼被貢獻(xiàn)給Apache軟件基金會(huì)成為孵化器項(xiàng)目溶推,2014年12月17日成為Apache頂級(jí)項(xiàng)目,0.6版本以后改名為Flink奸攻,2015年09月發(fā)布第一個(gè)穩(wěn)定版本0.9蒜危。Flink的概念和使用場(chǎng)合類似于Spark,旨在成為運(yùn)行批處理、數(shù)據(jù)流處理、交互處理浑玛、圖形處理和機(jī)器學(xué)習(xí)等應(yīng)用的一站式平臺(tái)陕贮。Flink不僅具有支持高吞吐集惋、低延遲和exactly-once語義的實(shí)時(shí)計(jì)算能力怔软,還有基于流式計(jì)算引擎處理批量數(shù)據(jù)的計(jì)算能力姜性,真正意義實(shí)現(xiàn)了批流統(tǒng)一猪叙,同時(shí)Flink運(yùn)行時(shí)本身也支持迭代算法的執(zhí)行赘风。Flink流式計(jì)算模型實(shí)現(xiàn)了高吞吐夹囚,低延遲,高性能兼具實(shí)時(shí)流式計(jì)算框架邀窃,而且完全兼容Hadoop荸哟。眾多優(yōu)秀的特性,使得Flink成為開源大數(shù)據(jù)數(shù)據(jù)處理框架中的一顆新星瞬捕,在全球范圍內(nèi)鞍历,越來越多的公司開始使用Flink,F(xiàn)link也漸漸成為企業(yè)內(nèi)部主流的數(shù)據(jù)處理框架山析,逐漸成為下一代大數(shù)據(jù)數(shù)據(jù)處理框架標(biāo)準(zhǔn)的趨勢(shì)堰燎。
相關(guān)網(wǎng)站:Apache Flink
Storm:Apache
Storm是一個(gè)開源的分布式實(shí)時(shí)大數(shù)據(jù)處理系統(tǒng)掏父。Hadoop不擅長(zhǎng)實(shí)時(shí)計(jì)算笋轨,因?yàn)樗菫榕幚矶模琒torm擅長(zhǎng)實(shí)時(shí)處理海量數(shù)據(jù)赊淑,而非批處理爵政。Storm設(shè)計(jì)用于在容錯(cuò)和水平可擴(kuò)展方法中處理大量數(shù)據(jù)。它是一個(gè)流數(shù)據(jù)框架陶缺,具有最高的攝取率钾挟。Storm最初由Nathan
Marz創(chuàng)建,后來被Twitter收購(gòu)并開源饱岸。2011年9月Storm正式發(fā)布掺出,2013年9月進(jìn)入Apache孵化并于2014年9月17日畢業(yè)成為Apache頂級(jí)項(xiàng)目,短時(shí)間內(nèi)Storm成為了分布式實(shí)時(shí)處理系統(tǒng)的標(biāo)準(zhǔn)苫费。Storm是用Java和Clojure編寫汤锨,使用Apache
Thrift,能以任何語言編寫拓?fù)鋞opology百框。Storm提供了毫秒級(jí)別的實(shí)時(shí)數(shù)據(jù)處理能力∠欣瘢現(xiàn)在隨著Spark和Flink的發(fā)展,Storm市場(chǎng)占有逐漸在降低铐维,但目前它仍然是實(shí)時(shí)分析的領(lǐng)導(dǎo)者柬泽。
相關(guān)網(wǎng)站:Apache Storm、Apache Storm教程
Tez:Apache
Tez是一個(gè)開源的支持DAG作業(yè)的計(jì)算引擎嫁蛇,它可以將多個(gè)有依賴的作業(yè)轉(zhuǎn)換為一個(gè)作業(yè)從而大幅提升DAG作業(yè)的性能锨并。Tez是Hortonworks開發(fā)的DAG計(jì)算框架,是為了更高效地運(yùn)行存在依賴關(guān)系的作業(yè)(比如Pig和Hive產(chǎn)生的MapReduce作業(yè))睬棚,減少磁盤和網(wǎng)絡(luò)IO第煮。2014年7月16日成為Apache頂級(jí)項(xiàng)目有决。Tez是從MapReduce計(jì)算框架演化而來的通用DAG計(jì)算框架,可作為MapReduce空盼、Pig书幕、Hive等系統(tǒng)的底層數(shù)據(jù)處理引擎。簡(jiǎn)單來說揽趾,Tez主要Apache和HDP平臺(tái)替代MR和Hive底層執(zhí)行引擎台汇,提高計(jì)算效率。
相關(guān)網(wǎng)站:Apache Tez
Samza:Apache Samza是一種是分布式流處理框架篱瞎,與Apache
Kafka消息系統(tǒng)緊密綁定的流處理框架苟呐。是LinkedIn于2013年7月開源并作為孵化項(xiàng)目貢獻(xiàn)給Apache,2015年1月21日成為Apache頂級(jí)項(xiàng)目俐筋。它是一個(gè)分布式流處理框架牵素,專用于實(shí)時(shí)數(shù)據(jù)的處理,非常像Twitter的流處理系統(tǒng)Storm澄者。不同的是Samza基于Hadoop笆呆,而且使用了LinkedIn自家的Kafka分布式消息系統(tǒng)。Samza的目標(biāo)是將流作為接受到的消息處理粱挡,同時(shí)赠幕,Samza的流初始元素并不是一個(gè)tuple或一個(gè)DStream,而是一個(gè)消息询筏,流被劃分到分區(qū)榕堰,每個(gè)分區(qū)是一個(gè)只讀消息的排序的序列,每個(gè)消息有一個(gè)唯一的ID(offset)嫌套,系統(tǒng)也支持批處理逆屡,從同樣的流分區(qū)以順序消費(fèi)幾個(gè)消息,盡管Samza主要是依賴于Hadoop的Yarn和Apache
Kafka踱讨,但是它的Execution & Streaming模塊是可插拔的魏蔗。
相關(guān)網(wǎng)站:Apache Samza、Apache Samza教程
Apex:Apache
Apex是一個(gè)統(tǒng)一流和批處理引擎勇蝙。作為新的開源數(shù)據(jù)流分析方案沫勿,Apex脫胎于DataTorrent的RTS平臺(tái),能夠帶來出色的速度表現(xiàn)并簡(jiǎn)化編程要求味混。由DataTorrent在2012年創(chuàng)建产雹,2015年8月貢獻(xiàn)給Apache,2016年4月20日成為Apache頂級(jí)項(xiàng)目翁锡。Apex能夠在Hadoop上實(shí)現(xiàn)數(shù)據(jù)流分析蔓挖。其設(shè)計(jì)目標(biāo)在于運(yùn)行Hadoop生態(tài)系統(tǒng),并利用YARN實(shí)現(xiàn)按需規(guī)模伸縮且通過HDFS實(shí)現(xiàn)容錯(cuò)能力馆衔。
相關(guān)網(wǎng)站:Apache Apex
Beam:Apache
Beam是一個(gè)開源的統(tǒng)一編程模型瘟判,用于定義和執(zhí)行并行數(shù)據(jù)處理管道怨绣。Beam主要是對(duì)數(shù)據(jù)處理的編程范式和接口進(jìn)行了統(tǒng)一定義,這樣基于Beam開發(fā)的數(shù)據(jù)處理程序可以執(zhí)行在任意的分布式計(jì)算引擎上拷获。譽(yù)為下一代的大數(shù)據(jù)處理統(tǒng)一標(biāo)準(zhǔn)篮撑。Google在2016年2月宣布將大數(shù)據(jù)流水線產(chǎn)品(Google
DataFlow)貢獻(xiàn)給Apache基金會(huì)孵化,2016年12月21日成為Apache頂級(jí)項(xiàng)目匆瓜,2017年5月發(fā)布第一個(gè)穩(wěn)定版本2.0.0赢笨。它的強(qiáng)大之處在于它能夠同時(shí)運(yùn)行批處理流和流式管道,并且由Beam支持的分布式處理后端之一執(zhí)行:Apache
Apex驮吱,Apache Flink茧妒,Apache Spark和Google Cloud Dataflow。?
相關(guān)網(wǎng)站:Apache Beam
Heron:Heron是一個(gè)實(shí)時(shí)的左冬、容錯(cuò)的桐筏、分布式的流數(shù)據(jù)處理系統(tǒng)。Twitter開發(fā)的第二代流處理系統(tǒng)拇砰,于2016年5月25日宣布開源梅忌。2017年6月23日進(jìn)入Apache孵化器。Twitter宣稱已經(jīng)用Heron替換了Storm毕匀。Heron是Apache
Storm的直接繼承者铸鹰。它繼承了Apache Storm的實(shí)時(shí)性、容錯(cuò)皂岔、低延遲的特性。并且它保留了Apache Storm的Topology
API展姐,使用者可以直接將Apache Storm上構(gòu)建的Topology項(xiàng)目躁垛,直接轉(zhuǎn)移到Apache
Storm中運(yùn)行而不需要做其他更改。它廣泛應(yīng)用于實(shí)時(shí)分析圾笨、連續(xù)計(jì)算教馆、復(fù)雜事件處理和一些實(shí)時(shí)性要求的應(yīng)用。相比于Apache
Storm擂达,它提供了擴(kuò)展性更好土铺,調(diào)試能力更強(qiáng),性能更好板鬓,管理更容易等特性悲敷。它能夠每秒鐘百萬級(jí)別的吞吐量和毫秒級(jí)別的延遲。
相關(guān)網(wǎng)站:Heron源碼
8
數(shù)據(jù)查詢和分析
Hive:Apache
Hive是基于Hadoop的一個(gè)數(shù)據(jù)倉(cāng)庫工具俭令,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表后德,并提供類SQL語句的Hive
SQL(HQL)查詢功能,將SQL語句轉(zhuǎn)換為MapReduce任務(wù)進(jìn)行運(yùn)行抄腔。Hive是由Facebook在2008年將捐獻(xiàn)給Apache瓢湃,2010年9月畢業(yè)成為Apache頂級(jí)項(xiàng)目理张。原理是用熟悉的SQL模型來操作
HDFS 上的數(shù)據(jù)
。優(yōu)點(diǎn)是學(xué)習(xí)成本低绵患,可以通過HQL語句快速實(shí)現(xiàn)簡(jiǎn)單的MapReduce統(tǒng)計(jì)雾叭,不必開發(fā)專門的MapReduce應(yīng)用。方便的使用 Hive
進(jìn)行數(shù)據(jù)倉(cāng)庫的建模和建設(shè)落蝙,然后使用 SQL
模型針對(duì)數(shù)據(jù)倉(cāng)庫中的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)和分析拷况。但由于Hive底層默認(rèn)是轉(zhuǎn)換為MR執(zhí)行,而MR的shuffle是基于磁盤的掘殴,所以只能處理離線分析赚瘦,效率比較低。目前大部分企業(yè)使用Hive構(gòu)建數(shù)倉(cāng)奏寨。
相關(guān)網(wǎng)站:Apache Hive
SparkSQL:Apache SparkSQL 是一個(gè)用來處理結(jié)構(gòu)化數(shù)據(jù)的spark組件起意。Spark團(tuán)隊(duì)在2014年發(fā)布了Spark
SQL,并吸收了一個(gè)的早期的Hive-on-Spark項(xiàng)目Shark病瞳,迅速成為最廣泛使用的Spark模塊揽咕。它提供了一個(gè)叫做DataFrames的可編程抽象數(shù)據(jù)模型,并且可被視為一個(gè)分布式的SQL查詢引擎套菜。SparkSQL替代的是Hive的查詢引擎亲善,且兼容hive。跟基本的Spark
RDD的API不同逗柴,Spark SQL中提供的接口將會(huì)提供給Spark更多關(guān)于結(jié)構(gòu)化數(shù)據(jù)和計(jì)算的信息蛹头。Spark SQL底層是Spark
Core,這種意味著可以輕松地在不同的SQL和API之間進(jìn)行切換戏溺。
相關(guān)網(wǎng)站:Apache SparkSQL
Presto:Presto是一個(gè)分布式的數(shù)據(jù)查詢引擎渣蜗。它本身并不存儲(chǔ)數(shù)據(jù),但是可以接入多種數(shù)據(jù)源旷祸,并且支持跨數(shù)據(jù)源的級(jí)聯(lián)查詢耕拷。是Facebook于2012年開發(fā),2013年開源的分布式SQL交互式查詢引擎托享。Presto是一個(gè)OLAP的工具骚烧,擅長(zhǎng)對(duì)海量數(shù)據(jù)進(jìn)行復(fù)雜的分析,但對(duì)于OLTP場(chǎng)景并不擅長(zhǎng)闰围,Presto只有計(jì)算分析能力赃绊,所以不能把Presto當(dāng)做數(shù)據(jù)庫來使用。Presto是一個(gè)低延遲高并發(fā)的內(nèi)存計(jì)算引擎辫诅,相比Hive凭戴,執(zhí)行效率要高很多。是一種MPP(Massively
parallel
processing大規(guī)模并行處理)模型炕矮,能處理PB級(jí)數(shù)據(jù)么夫。Presto的原理是將數(shù)據(jù)的一些放在內(nèi)存進(jìn)行計(jì)算者冤,完成后取出,再處理另一些數(shù)據(jù)档痪,這樣循環(huán)的類似流水線的處理模式涉枫。
相關(guān)網(wǎng)站:Presto
Kylin:Apache
Kylin是Hadoop大數(shù)據(jù)平臺(tái)上一個(gè)開源的分布式分析引擎,提供Hadoop/Spark之上的SQL查詢接口及OLAP能力以支持超大規(guī)模數(shù)據(jù)腐螟。它采用Cube預(yù)計(jì)算技術(shù)愿汰,可以將某些場(chǎng)景下的大數(shù)據(jù)
SQL
查詢速度提升到亞秒級(jí)別。Kylin始創(chuàng)于eBay乐纸,并在2014年11月加入Apache孵化器衬廷,2015年12月8日成為Apache頂級(jí)項(xiàng)目,是第一個(gè)中國(guó)團(tuán)隊(duì)主導(dǎo)貢獻(xiàn)的頂級(jí)項(xiàng)目汽绢。Kylin它的出現(xiàn)就是為了解決大數(shù)據(jù)系統(tǒng)中TB級(jí)別的數(shù)據(jù)分析需求吗跋,主要是對(duì)hive中的數(shù)據(jù)進(jìn)行預(yù)計(jì)算,利用hadoop的MapReduce框架實(shí)現(xiàn)宁昭,它能在亞秒內(nèi)查詢巨大的Hive表跌宛。在Kylin中最關(guān)鍵的兩個(gè)流程是Cube的預(yù)計(jì)算過程和SQL查詢轉(zhuǎn)換成Cube的過程,盡量多地預(yù)先計(jì)算聚合結(jié)果积仗,在查詢時(shí)盡量利用預(yù)計(jì)算的結(jié)果得出查詢結(jié)果疆拘,從而避免直接掃描可能無限增大的原始記錄。
相關(guān)網(wǎng)站:Apache Kylin中文版
Impala:Apache
Impala是一個(gè)實(shí)時(shí)交互SQL大數(shù)據(jù)查詢引擎寂曹。是Cloudera在受到Google的Dremel啟發(fā)下開發(fā)的SQL On
Hadoop開源MPP查詢工具哎迄,2012年10月開源,于2017年11月28日晉升為apache頂級(jí)項(xiàng)目稀颁。Impala使用完全開放的形式融入Hadoop生態(tài)芬失,允許用戶使用SQL操作Hadoop中的海量數(shù)據(jù),目前已經(jīng)支持更多存儲(chǔ)選擇匾灶,比如:Apache
Kudu、Amazon S3租漂、Microsoft
ADLS阶女、本地存儲(chǔ)等。最初Impala僅支持HDFS海量數(shù)據(jù)的交互式分析哩治,其靈活性和領(lǐng)先的分析型數(shù)據(jù)庫性能推動(dòng)了Impala在全球企業(yè)中的大量部署秃踩。為企業(yè)業(yè)務(wù)提供BI和交互式SQL高效率分析支持,讓支持Impala的第三方生態(tài)系統(tǒng)快速增長(zhǎng)业筏。與Apache
Kudu項(xiàng)目憔杨,進(jìn)一步鞏固了Cloudera在開源SQL領(lǐng)域的地位。
相關(guān)網(wǎng)站:Apache Impala
Druid:Apache
Druid是一個(gè)開源的實(shí)時(shí)大數(shù)據(jù)分析引擎蒜胖,旨在快速處理大規(guī)模的數(shù)據(jù)消别,并能夠?qū)崿F(xiàn)快速查詢和分析抛蚤。是Metamarkets推出的一個(gè)分布式內(nèi)存實(shí)時(shí)分析系統(tǒng),用于解決如何在大規(guī)模數(shù)據(jù)集下進(jìn)行快速的寻狂、交互式的查詢和分析岁经。2018年2月28日進(jìn)入Apache孵化器。Druid就是為了解決海量數(shù)據(jù)上的實(shí)時(shí)分析蛇券,它提供了以交互方式訪問數(shù)據(jù)的能力缀壤,數(shù)據(jù)可以實(shí)時(shí)攝入,進(jìn)入到Druid后立即可查纠亚,同時(shí)數(shù)據(jù)是幾乎是不可變塘慕。通常是基于時(shí)序的事實(shí)事件,事實(shí)發(fā)生后進(jìn)入Druid蒂胞,外部系統(tǒng)就可以對(duì)該事實(shí)進(jìn)行查詢图呢。
相關(guān)網(wǎng)站:Apache Druid
Elastic Search:Elastic Search(ES) 是一個(gè)分布式可擴(kuò)展的實(shí)時(shí)搜索和分析引擎,是一個(gè)建立在Apache
Lucene基礎(chǔ)上的搜索引擎.啤誊。由Shay
Banon在2010年創(chuàng)建并開源岳瞭,后來Shay和合伙人成立了公司專注打造ES,他們對(duì)ES進(jìn)行了一些商業(yè)化的包裝和支持蚊锹。它提供了一個(gè)分布式多用戶能力的全文搜索引擎瞳筏,基于RESTful
web接口。ES的實(shí)現(xiàn)原理主要分為以下幾個(gè)步驟牡昆,首先用戶將數(shù)據(jù)提交到ES數(shù)據(jù)庫中姚炕,再通過分詞控制器去將對(duì)應(yīng)的語句分詞,將其權(quán)重和分詞結(jié)果一并存入數(shù)據(jù)丢烘,當(dāng)用戶搜索數(shù)據(jù)時(shí)候柱宦,再根據(jù)權(quán)重將結(jié)果排名,打分播瞳,再將返回結(jié)果呈現(xiàn)給用戶掸刊。ES是用Java開發(fā)的,是當(dāng)前流行的企業(yè)級(jí)搜索引擎赢乓。設(shè)計(jì)用于云計(jì)算中忧侧,能夠達(dá)到實(shí)時(shí)搜索,穩(wěn)定牌芋,可靠蚓炬,快速,安裝使用方便躺屁。官方客戶端在Java肯夏、.NET(C#)、PHP、Python驯击、Apache
Groovy烁兰、Ruby和許多其他語言中都是可用的。根據(jù)DB-Engines的排名顯示余耽,ES是最受歡迎的企業(yè)搜索引擎缚柏,其次是Apache
Solr,也是基于Lucene碟贾。ES現(xiàn)在是Elastic的ELK家族成員之一币喧。
相關(guān)網(wǎng)站:ElasticSearch、ElasticSearch中文社區(qū)
HAWQ:Apache HAWQ(Hadoop With Query
帶查詢Hadoop)是一個(gè)Hadoop原生大規(guī)模并行SQL分析引擎袱耽,針對(duì)的是分析性應(yīng)用杀餐。HAWQ是Pivotal在2012年推出了一款商業(yè)許可的高性能SQL引擎,于2015年6月將項(xiàng)目捐獻(xiàn)給了Apache朱巨,并于2015年9月進(jìn)入了Apache孵化器史翘,2018年8月15日成為Apache頂級(jí)項(xiàng)目。HAWQ是Hadoop原生SQL查詢引擎冀续,結(jié)合了MPP數(shù)據(jù)庫的關(guān)鍵技術(shù)優(yōu)勢(shì)和Hadoop的可擴(kuò)展性和便捷性琼讽。官方宣稱HAWQ做OLAP高于Hive和Impala性能4倍以上。它非常適合用于Hadoop平臺(tái)上快速構(gòu)建數(shù)據(jù)倉(cāng)庫系統(tǒng)洪唐。HAWQ具有大規(guī)模并行處理钻蹬、完善的SQL兼容性、支持存儲(chǔ)過程和事務(wù)凭需、出色的性能表現(xiàn)等特性问欠,還可與開源數(shù)據(jù)挖掘庫MADLib機(jī)器學(xué)習(xí)庫輕松整合,從而使用SQL就能進(jìn)行數(shù)據(jù)挖掘與機(jī)器學(xué)習(xí)粒蜈。
相關(guān)網(wǎng)站:Apache HAWQ
Lucene:Apache
Lucene是一套開源的基于Java的用于全文檢索和搜尋的引擎工具包顺献,是一種功能強(qiáng)大且被廣泛使用的搜索引擎,由資深全文檢索專家Doug
Cutting在2000年3月創(chuàng)建開源枯怖,在2001年9月加入Apache的Jakarta家族中注整。Lucene并不是一個(gè)完整的搜索引擎產(chǎn)品,而是一個(gè)全文檢索引擎的架構(gòu)度硝,可以用來制作搜索引擎產(chǎn)品设捐。它是一個(gè)全文檢索引擎的架構(gòu),提供了完整的創(chuàng)建索引和查詢索引塘淑,以及部分文本分析的引擎。Lucene的目的是為軟件開發(fā)人員提供一個(gè)簡(jiǎn)單易用的工具包蚂斤,以方便在目標(biāo)系統(tǒng)中實(shí)現(xiàn)全文檢索的功能存捺,或者是以此為基礎(chǔ)建立起完整的全文檢索引擎。Lucene提供了一個(gè)簡(jiǎn)單卻強(qiáng)大的應(yīng)用程序接口(API),能夠做全文索引和搜尋捌治,在Java開發(fā)環(huán)境里L(fēng)ucene是一個(gè)成熟的免費(fèi)開放源代碼工具岗钩。
相關(guān)網(wǎng)站:Apache Lucene
Solr:Apache Solr 是基于Apache
Lucene構(gòu)建的開源的企業(yè)搜索平臺(tái)。2004年發(fā)布肖油,2007年1月17日成為Apache頂級(jí)項(xiàng)目兼吓。Solr
具有高可靠性,可擴(kuò)展性和容錯(cuò)性森枪,可提供分布式索引视搏,復(fù)制和負(fù)載均衡查詢,自動(dòng)故障轉(zhuǎn)移和恢復(fù)以及集中配置等特性县袱。Solr 是用 Java
編寫浑娜、運(yùn)行在 Servlet 容器(如 Apache Tomcat 或Jetty)的一個(gè)獨(dú)立的全文搜索服務(wù)器。Solr 采用了Lucene
Java 搜索庫為核心的全文索引和搜索式散,并具有類似 REST 的 HTTP/XML 和 JSON 的 API筋遭。Solr
強(qiáng)大的外部配置功能使得無需進(jìn)行 Java 編碼,便可對(duì)其進(jìn)行調(diào)整以適應(yīng)多種類型的應(yīng)用程序暴拄。Solr
為世界上許多大型互聯(lián)網(wǎng)站點(diǎn)提供搜索和導(dǎo)航功能漓滔。
相關(guān)網(wǎng)站:Apache Solr
Phoenix:Apache
Phoenix是構(gòu)建在HBase之上的SQL框架,可以使用標(biāo)準(zhǔn)的JDBC的API去代替常規(guī)的HBase客戶端的API去創(chuàng)建表乖篷,插入數(shù)據(jù)和查詢HBase數(shù)據(jù)响驴。由Saleforce在2013年捐獻(xiàn)給Apache,2014年5月項(xiàng)目畢業(yè)成為頂級(jí)項(xiàng)目那伐。它一個(gè)Java中間層踏施,可以讓開發(fā)者通過Phoenix可以像使用MySQL等關(guān)系型數(shù)據(jù)庫一樣使用HBase中的數(shù)據(jù)表。Phoenix會(huì)將用戶編寫的SQL查詢編譯為一系列的Scan操作罕邀,最終產(chǎn)生通用的JDBC結(jié)果集返回給客戶端畅形。它充分利用了HBase協(xié)處理器和過濾器等底層,小范圍的查詢?cè)诤撩爰?jí)響應(yīng)诉探,千萬數(shù)據(jù)的話響應(yīng)速度為秒級(jí)日熬。
相關(guān)網(wǎng)站:Apache Phoenix
9
數(shù)據(jù)收集
Flume:Apache
Flume是一個(gè)分布式海量日志采集、聚合和傳輸系統(tǒng)肾胯。Flume最初由Cloudera由開發(fā)竖席,于2011年6月貢獻(xiàn)給Apache,2012年成為Apache頂級(jí)項(xiàng)目敬肚。Flume支持在日志系統(tǒng)中定制各類數(shù)據(jù)發(fā)送方毕荐,用于收集數(shù)據(jù),同時(shí)艳馒,F(xiàn)lume提供對(duì)數(shù)據(jù)進(jìn)行簡(jiǎn)單處理憎亚,并寫到各種數(shù)據(jù)接受方(可定制)的能力员寇。Flume的數(shù)據(jù)流由事件(Event)貫穿始終。事件是Flume的基本數(shù)據(jù)單位第美,它攜帶日志數(shù)據(jù)(字節(jié)數(shù)組形式)并且攜帶有頭信息蝶锋,這些Event由Agent外部的Source生成,當(dāng)Source捕獲事件后會(huì)進(jìn)行特定的格式化什往,然后Source會(huì)把事件推入(單個(gè)或多個(gè))Channel中扳缕。可以把Channel看作是一個(gè)緩沖區(qū)别威,它將保存事件直到Sink處理完該事件躯舔。Sink負(fù)責(zé)持久化日志或者把事件推向另一個(gè)Source。
相關(guān)網(wǎng)站:Apache Flume
Filebeat:Filebeat是本地文件的日志數(shù)據(jù)采集器兔港。Filebeat是一個(gè)輕量級(jí)日志傳輸工具庸毫,它監(jiān)視日志目錄或特定日志文件(Tail
File),并將它們轉(zhuǎn)發(fā)給Logstash衫樊、Elasticsearch飒赃、Kafka、Redis等中科侈。其作用是收集業(yè)務(wù)服務(wù)器的日志载佳,輸出到一個(gè)日志系統(tǒng)便于集中管理。Filebeat
是 Elastic Stack 的一部分臀栈,因此能夠與 Logstash蔫慧、Elasticsearch 和 Kibana 無縫協(xié)作。無論您要使用
Logstash 轉(zhuǎn)換或充實(shí)日志和文件权薯,還是在 Elasticsearch 中隨意處理一些數(shù)據(jù)分析姑躲,亦或在 Kibana
中構(gòu)建和分享儀表板,F(xiàn)ilebeat
都能輕松地將您的數(shù)據(jù)發(fā)送至最關(guān)鍵的地方盟蚣。Filebeat占用資源少黍析,而且安裝配置也比較簡(jiǎn)單,支持目前各類主流OS及Docker平臺(tái)屎开。
相關(guān)網(wǎng)站:Filebeat
Logstash:Logstash是一個(gè)具有實(shí)時(shí)管道功能的開源數(shù)據(jù)收集引擎阐枣。它可以動(dòng)態(tài)地將來自不同數(shù)據(jù)源的數(shù)據(jù)統(tǒng)一起來,并將數(shù)據(jù)規(guī)范化到選擇的目的地奄抽“剑可以用它來統(tǒng)一對(duì)應(yīng)用程序日志進(jìn)行收集管理,提供
Web
接口用于查詢和統(tǒng)計(jì)逞度。Logstash作為一個(gè)數(shù)據(jù)管道中間件额划,支持對(duì)各種類型數(shù)據(jù)的采集與轉(zhuǎn)換,并將數(shù)據(jù)發(fā)送到各種類型的存儲(chǔ)庫档泽。Logstash現(xiàn)在是Elastic的ELK家族成員之一锁孟。
相關(guān)網(wǎng)站:Logstash中文社區(qū)
Chukwa:Apache Chukwa
是一個(gè)開源的用于監(jiān)控大型分布式系統(tǒng)的數(shù)據(jù)收集系統(tǒng)彬祖。2010年7月14日進(jìn)入Apache孵化器,2013年9月27日成為Apache頂級(jí)項(xiàng)目品抽。它是構(gòu)建在
hadoop 的 hdfs 和 MapReduce 框架之上的,繼承了 Hadoop 的可伸縮性和健壯性甜熔。Chukwa
還包含了一個(gè)強(qiáng)大和靈活的工具集圆恤,可用于展示、監(jiān)控和分析已收集的數(shù)據(jù)腔稀。Chukwa用于管理大型分布式系統(tǒng)的數(shù)據(jù)收集系統(tǒng)(2000+以上的節(jié)點(diǎn)盆昙,
系統(tǒng)每天產(chǎn)生的監(jiān)控?cái)?shù)據(jù)量在T級(jí)別)。
相關(guān)網(wǎng)站:Apache Chukwa
10
數(shù)據(jù)交換
Sqoop:Apache Sqoop
是一款數(shù)據(jù)遷移工具焊虏,用來在不同數(shù)據(jù)存儲(chǔ)軟件之間進(jìn)行數(shù)據(jù)傳輸?shù)拈_源軟件淡喜,它支持多種類型的數(shù)據(jù)儲(chǔ)存軟件。用來在關(guān)系型數(shù)據(jù)庫和Hadoop/Hive間進(jìn)行數(shù)據(jù)遷移诵闭,方便大量數(shù)據(jù)的導(dǎo)入導(dǎo)出工作炼团。Sqoop底層是通過MapReduce去實(shí)現(xiàn)的,但只有Map沒有Reduce疏尿。Sqoop項(xiàng)目開始于2009年瘟芝,最早是作為Hadoop的一個(gè)第三方模塊存在,后來獨(dú)立成為一個(gè)Apache項(xiàng)目褥琐,于2012年3月成為Apache頂級(jí)項(xiàng)目锌俱。
相關(guān)網(wǎng)站:Apache Sqoop
Kettle:Kettle是一款國(guó)外開源的ETL工具,純java編寫敌呈,可以在Window贸宏、Linux、Unix上運(yùn)行磕洪,數(shù)據(jù)抽取高效穩(wěn)定吭练。可以將各種類型數(shù)據(jù)作為數(shù)據(jù)流褐鸥,經(jīng)過處理后再生成各種類型的數(shù)據(jù)线脚。
相關(guān)網(wǎng)站:Kettle中文網(wǎng)
DataX:DataX 是阿里巴巴開源的離線數(shù)據(jù)同步工具/平臺(tái),致力于實(shí)現(xiàn)包括關(guān)系型數(shù)據(jù)庫(MySQL叫榕、Oracle等)匙奴、HDFS、Hive段直、ODPS呛谜、HBase、FTP等各種異構(gòu)數(shù)據(jù)源之間穩(wěn)定高效的數(shù)據(jù)同步功能荞下。
相關(guān)網(wǎng)站:DataX源碼
NIFI:Apache NiFi
是一個(gè)易于使用伶选、功能強(qiáng)大而且可靠的數(shù)據(jù)拉取史飞、數(shù)據(jù)處理和分發(fā)系統(tǒng)⊙鏊埃基于Web圖形界面构资,通過拖拽、連接陨簇、配置完成基于流程的編程吐绵,實(shí)現(xiàn)數(shù)據(jù)采集等功能。NiFi是美國(guó)國(guó)家安全局NAS開發(fā)并使用了8年的可視化數(shù)據(jù)集成產(chǎn)品河绽,2014年貢獻(xiàn)給了Apache社區(qū)己单,2015年成為Apache頂級(jí)項(xiàng)目。?是為數(shù)據(jù)流設(shè)計(jì)耙饰。它支持高度可配置的指示圖的數(shù)據(jù)路由纹笼、轉(zhuǎn)換和系統(tǒng)中介邏輯,支持從多種數(shù)據(jù)源動(dòng)態(tài)拉取數(shù)據(jù)苟跪。NiFi是基于Java的廷痘,使用Maven支持包的構(gòu)建管理。NiFi基于Web方式工作削咆,后臺(tái)在服務(wù)器上進(jìn)行調(diào)度牍疏。用戶可以為數(shù)據(jù)處理定義為一個(gè)流程,然后進(jìn)行處理拨齐,后臺(tái)具有數(shù)據(jù)處理引擎鳞陨、任務(wù)調(diào)度等組件。
相關(guān)網(wǎng)站:Apache NIFI
11
消息系統(tǒng)
Pulsar:Apache Pulsar是一個(gè)開源的企業(yè)級(jí)分布式消息系統(tǒng)瞻惋。項(xiàng)目于2015年由 Yahoo 開源厦滤,2017年6月提交給
Apache孵化器,2018年9月成為Apache的頂級(jí)項(xiàng)目歼狼。Pulsar在消息掏导、計(jì)算和存儲(chǔ)三個(gè)方面進(jìn)行的協(xié)調(diào)、抽象和統(tǒng)一羽峰。Pulsar對(duì)pub-sub和
queue兩種模式提供統(tǒng)一的支持趟咆,同時(shí)保證了一致性,高性能和易擴(kuò)展性梅屉。Pulsar同時(shí)支持處理實(shí)時(shí)流和消息隊(duì)列值纱,內(nèi)部的
Pulsar-Functions 提供了 Stream-native 的輕量級(jí)計(jì)算框架,保證了數(shù)據(jù)的即時(shí)流式處理坯汤。Pulsar借助Apache
BookKeeper提供了以 segment
為中心的存儲(chǔ)架構(gòu)虐唠,保證了存儲(chǔ)的性能,持久性和彈性惰聂。Pulsar是無狀態(tài)的疆偿,在Pulsar架構(gòu)中咱筛,數(shù)據(jù)的分發(fā)和保存是相互獨(dú)立的。broker
從生產(chǎn)者接收數(shù)據(jù)杆故,然后將數(shù)據(jù)發(fā)送給消費(fèi)者迅箩,但數(shù)據(jù)是保存在 BookKeeper
中的。Pulsar支持跨域復(fù)制反番。Pulsar是下一代分布式消息隊(duì)列沙热,有替代Kafka的趨勢(shì)。
相關(guān)網(wǎng)站:Apache Pulsar
Kafka:Apache
Kafka是一個(gè)發(fā)布/訂閱的消息系統(tǒng)罢缸,由Scala寫成。Kafka最初是由LinkedIn開發(fā)投队,并于2011年初開源枫疆,2012年10月從Apache畢業(yè)成為頂級(jí)項(xiàng)目。該項(xiàng)目的目標(biāo)是為處理實(shí)時(shí)數(shù)據(jù)提供一個(gè)統(tǒng)一敷鸦、高通量息楔、低等待的平臺(tái)。Kafka是一個(gè)分布式的扒披、分區(qū)的值依、多復(fù)本的日志提交服務(wù)。是目前使用最廣泛的消息系統(tǒng)碟案。
相關(guān)網(wǎng)站:Apache Kafka愿险、Apache Kafka中文文檔
RocketMQ:Apache
RocketMQ是一款分布式、隊(duì)列模型的消息中間件价说。是阿里巴巴在2012年開源辆亏,于2016年11月成為Apache孵化項(xiàng)目,
2017年9月25日成為Apache頂級(jí)項(xiàng)目鳖目。它借鑒參考了JMS規(guī)范的MQ實(shí)現(xiàn)扮叨,更參考了優(yōu)秀的開源消息中間件Kafka,并且結(jié)合阿里實(shí)際業(yè)務(wù)需求在天貓雙十一的場(chǎng)景领迈,實(shí)現(xiàn)業(yè)務(wù)削峰彻磁,分布式事務(wù)的優(yōu)秀框架。它提供了豐富的消息拉取模式狸捅,高效的訂閱者水平擴(kuò)展能力衷蜓,實(shí)時(shí)的消息訂閱機(jī)制,億級(jí)消息堆積能力薪贫,且具備了連接其它頂級(jí)開源生態(tài)(如Spark恍箭、Ignite和Storm等)能力。
相關(guān)網(wǎng)站:Apache RocketMQ
ActiveMQ:Apache
ActiveMQ是Apache所提供的一個(gè)開源的消息系統(tǒng)瞧省,完全采用Java來實(shí)現(xiàn)扯夭。它是一款歷史悠久的開源項(xiàng)目鳍贾,2007年成為Apache頂級(jí)項(xiàng)目。已經(jīng)在很多產(chǎn)品中得到應(yīng)用交洗,實(shí)現(xiàn)了JMS1.1規(guī)范骑科,可以和Spring-JMS輕松融合,實(shí)現(xiàn)了多種協(xié)議构拳。有多重語言的成熟的客戶端咆爽。不夠輕巧,支持持久化到數(shù)據(jù)庫置森,對(duì)隊(duì)列數(shù)較多的情況支持不好斗埂。
相關(guān)網(wǎng)站:Apache ActiveMQ
RabbitMQ:RabbitMQ是基于 AMQP 實(shí)現(xiàn)的一個(gè)開源消息組件,主要用于在分布式系統(tǒng)中存儲(chǔ)轉(zhuǎn)發(fā)消息凫海。是一個(gè)消息代理和隊(duì)列服務(wù)器呛凶,可以在完全不同的應(yīng)用之間共享數(shù)據(jù)。使用Erlang語言開發(fā)行贪,具有很好的并發(fā)優(yōu)勢(shì)漾稀,性能較好。支持消息持久化建瘫。
相關(guān)網(wǎng)站:RabbitMQ
12
任務(wù)調(diào)度
Azkaban:Azkaban是由Linkedin開源的一個(gè)批量工作流任務(wù)調(diào)度器崭捍。使用Java開發(fā)。用于在一個(gè)工作流內(nèi)以一個(gè)特定的順序運(yùn)行一組工作和流程啰脚。Azkaban定義了一種KV文件格式來建立任務(wù)之間的依賴關(guān)系殷蛇,并提供一個(gè)易于使用的web用戶界面維護(hù)和跟蹤工作流。Azkaban通過Web瀏覽器在GUI中進(jìn)行基于時(shí)間的調(diào)度拣播,將所有正在運(yùn)行的工作流的狀態(tài)保存在其內(nèi)存中晾咪。
相關(guān)網(wǎng)站:Azkaban
Oozie:Apache
Oozie是一個(gè)基于Hadoop的企業(yè)級(jí)工作流調(diào)度框架。Oozie是Cloudeara貢獻(xiàn)給Apache的頂級(jí)項(xiàng)目贮配。它關(guān)注靈活性和創(chuàng)建復(fù)雜的工作流程谍倦,允許由時(shí)間,事件或數(shù)據(jù)可用性觸發(fā)作業(yè)泪勒,可以通過命令行昼蛀、Java
API、Web瀏覽器圆存,以及GUI操作叼旋。它以XML的形式寫調(diào)度流程,可以調(diào)度MR沦辙、Hive夫植、Spark、Pig、Shell详民、Jar等等延欠。Oozie將所有正在運(yùn)行的工作流的狀態(tài)保存SQL數(shù)據(jù)庫,僅將其內(nèi)存用于狀態(tài)事務(wù)沈跨。相比于Azkaban由捎,Oozie屬于重量級(jí)的任務(wù)調(diào)度工具。
相關(guān)網(wǎng)站:Apache Oozie
Airflow:Apache
Airflow是一個(gè)靈活饿凛,可擴(kuò)展的工作流自動(dòng)化和調(diào)度系統(tǒng)狞玛,是基于DAG的一種調(diào)度器,可編譯和管理數(shù)百PB的數(shù)據(jù)涧窒。Airflow最初由Airbnb于2014年創(chuàng)建心肪,2016年3月提交給Apache孵化器,2019年1月成為Apache頂級(jí)項(xiàng)目纠吴。Airflow可以輕松地協(xié)調(diào)復(fù)雜的計(jì)算工作流程蒙畴,通過智能調(diào)度,數(shù)據(jù)庫和依賴關(guān)系管理呜象,錯(cuò)誤處理和日志記錄,可以自動(dòng)化從單個(gè)服務(wù)器到大型群集的資源管理碑隆。該項(xiàng)目是用Python編寫的恭陡,具有高度可擴(kuò)展性,能夠運(yùn)行用其他語言編寫的任務(wù)上煤,并允許與常見的體系結(jié)構(gòu)和項(xiàng)目集成休玩,如AWS
S3,Docker劫狠,Kubernetes拴疤,MySQL,Postgres等独泞。據(jù)悉呐矾,Apache Airflow 目前正被 200
多個(gè)組織使用,包括 Adobe懦砂、Airbnb蜒犯、Astronomer、Etsy荞膘、Google罚随、ING、Lyft羽资、NYC City
Planning淘菩、Paypal、Polidea屠升、Qubole潮改、Quizlet狭郑、Reddit、Reply进陡、Solita愿阐、Square、Twitter
等趾疚。
相關(guān)網(wǎng)站:Apache Airflow
13
數(shù)據(jù)治理
Ranger:Apache Ranger 是一個(gè)用在 Hadoop
平臺(tái)上并提供操作缨历、監(jiān)控、管理綜合數(shù)據(jù)安全的框架糙麦,它提供一個(gè)集中的管理機(jī)制辛孵,管理基于Apache
Hadoop生態(tài)圈的所有數(shù)據(jù)權(quán)限。Ranger是由Hortonworks所主導(dǎo)赡磅,2014年7月24日進(jìn)入Apache孵化魄缚,2017年1月18日成為Apache的頂級(jí)項(xiàng)目。隨著Apache
YARN的出現(xiàn)焚廊,Hadoop平臺(tái)現(xiàn)在可以支持一個(gè)真正的數(shù)據(jù)湖體系結(jié)構(gòu)冶匹。企業(yè)可以在多租戶環(huán)境中運(yùn)行多個(gè)工作負(fù)載,因此咆瘟,
Hadoop中的數(shù)據(jù)安全性需要發(fā)展嚼隘。Apache Ranger 提供最全面的安全覆蓋,本地支持眾多 Apache
項(xiàng)目袒餐,包括Atlas飞蛹、HDFS、HBase灸眼、Hive卧檐、Kafka、Knox焰宣、NiFi霉囚、Solr、Storm 和 YARN宛徊。Ranger
通過訪問控制策略提供了一種標(biāo)準(zhǔn)的授權(quán)方法佛嬉。作為標(biāo)準(zhǔn),Ranger提供了一種集中式的組件闸天,用于審計(jì)用戶的訪問行為和管理組件間的安全交互行為暖呕。Ranger
使用了一種基于屬性的方法定義和強(qiáng)制實(shí)施安全策略。當(dāng)與 Apache Hadoop 的數(shù)據(jù)治理解決方案和元數(shù)據(jù)倉(cāng)儲(chǔ)組件Apache
Atlas一起使用時(shí)苞氮,它可以定義一種基于標(biāo)簽的安全服務(wù)湾揽,通過使用標(biāo)簽對(duì)文件和數(shù)據(jù)資產(chǎn)進(jìn)行分類,并控制用戶和用戶組對(duì)一系列標(biāo)簽的訪問。
相關(guān)網(wǎng)站:Apache Ranger
Sentry:Apache
Sentry是一個(gè)為Hadoop集群元數(shù)據(jù)和數(shù)據(jù)存儲(chǔ)提供集中库物、細(xì)粒度的訪問控制項(xiàng)目霸旗。Sentry是由Cloudera開發(fā),2013年8月成為Apache的孵化項(xiàng)目戚揭,2016年3月16日成為Apache頂級(jí)項(xiàng)目诱告。初衷是為了讓用戶能夠細(xì)粒度的控制Hadoop系統(tǒng)中的數(shù)據(jù),所以Sentry對(duì)HDFS民晒,Hive以及同樣由Cloudera開發(fā)的Impala有著很好的支持性精居。Sentry旨在成為Hadoop各組件的可插拔授權(quán)引擎。它允許您定義授權(quán)規(guī)則以驗(yàn)證用戶或應(yīng)用程序?qū)adoop資源的訪問請(qǐng)求潜必。Sentry是高度模塊化的靴姿,可以支持Hadoop中各種數(shù)據(jù)模型的授權(quán)。Sentry是一個(gè)RPC服務(wù)磁滚,將認(rèn)證元數(shù)據(jù)信息存儲(chǔ)在關(guān)系型數(shù)據(jù)庫佛吓,并提供RPC接口檢索和操作權(quán)限。
相關(guān)網(wǎng)站:Apache Sentry
Atlas:Apache Atlas是Apache Hadoop的數(shù)據(jù)和元數(shù)據(jù)治理的框架垂攘,是Hortonworks
公司聯(lián)合其他廠商與用戶于2015年發(fā)起數(shù)據(jù)治理倡議维雇,2015年5月5日進(jìn)入Apache孵化,2017年6月21日成為Apache頂級(jí)項(xiàng)目晒他。是為解決Hadoop生態(tài)系統(tǒng)的元數(shù)據(jù)治理問題而產(chǎn)生的開源項(xiàng)目谆沃。它為Hadoop集群提供了包括數(shù)據(jù)分類、集中策略引擎仪芒、數(shù)據(jù)血緣、安全和生命周期管理在內(nèi)的元數(shù)據(jù)治理核心登能力耕陷。Atlas是一組可伸縮和可擴(kuò)展的核心基礎(chǔ)治理服務(wù)掂名,使企業(yè)能夠有效和高效地滿足Hadoop中的遵從性需求,并允許與整個(gè)企業(yè)數(shù)據(jù)生態(tài)系統(tǒng)進(jìn)行集成哟沫。Atlas用于管理共享元數(shù)據(jù)饺蔑、數(shù)據(jù)分級(jí)、審計(jì)嗜诀、安全性以及數(shù)據(jù)保護(hù)等方面猾警,與Apache
Ranger整合,用于數(shù)據(jù)權(quán)限控制策略隆敢。
相關(guān)網(wǎng)站:Apache Atlas
14
數(shù)據(jù)可視化
Kibana:Kibana 是一個(gè)設(shè)計(jì)出來用于和 Elasticsearch 一起使用的開源的分析與可視化平臺(tái)发皿,可以用 Kibana
搜索、查看拂蝎、交互存放在Elasticsearch
索引里的數(shù)據(jù)穴墅,使用各種不同的圖表、表格、地圖等展示高級(jí)數(shù)據(jù)分析與可視化玄货,基于瀏覽器的接口使你能快速創(chuàng)建和分享實(shí)時(shí)展現(xiàn)Elasticsearch查詢變化的動(dòng)態(tài)儀表盤皇钞,讓大量數(shù)據(jù)變得簡(jiǎn)單,容易理解松捉。Kibana
現(xiàn)在是Elastic的ELK家族成員之一夹界。
相關(guān)網(wǎng)站:Kibana中文社區(qū)
D3.js:D3(Data-Driven Documents
數(shù)據(jù)驅(qū)動(dòng)文檔)是一個(gè)開源數(shù)據(jù)可視化項(xiàng)目,由紐約時(shí)報(bào)的工程師在2011年2月首次發(fā)布隘世。D3其實(shí)就是一個(gè)JavaScript的函數(shù)庫可柿,被稱為一個(gè)互動(dòng)和動(dòng)態(tài)的數(shù)據(jù)可視化庫網(wǎng)絡(luò)。D3
項(xiàng)目的代碼托管于 GitHubJavaScript 文件的后綴名通常為 .js以舒,故 D3 也常使用 D3.js 稱呼趾痘。D3
提供了各種簡(jiǎn)單易用的函數(shù),大大簡(jiǎn)化了 JavaScript 操作數(shù)據(jù)的難度蔓钟。由于它本質(zhì)上是 JavaScript 永票,所以用 JavaScript
也可以實(shí)現(xiàn)所有功能的,但它能大大減小了工作量滥沫,尤其是在數(shù)據(jù)可視化方面侣集,D3
已經(jīng)將生成可視化的復(fù)雜步驟精簡(jiǎn)到了幾個(gè)簡(jiǎn)單的函數(shù),只需要輸入幾個(gè)簡(jiǎn)單的數(shù)據(jù)兰绣,就能夠轉(zhuǎn)換為各種絢麗的圖形世分。D3利用可縮放矢量圖形或SVG格式,允許您渲染可放大或縮小的形狀缀辩,線條和填充臭埋,而不會(huì)降低質(zhì)量。
相關(guān)網(wǎng)站:D3.js
ECharts:ECharts(Enterprise Charts
商業(yè)產(chǎn)品圖表庫)是一個(gè)提供商業(yè)產(chǎn)品常用圖表的純Javascript的圖表庫臀玄。由百度開源瓢阴,于2018年1月進(jìn)入Apache孵化器。它可以流暢的運(yùn)行在
PC 和移動(dòng)設(shè)備上健无,兼容當(dāng)前絕大部分瀏覽器荣恐,底層依賴輕量級(jí)的矢量圖形庫 ZRender,提供直觀累贤,交互豐富叠穆,可高度個(gè)性化定制的數(shù)據(jù)可視化圖表。
相關(guān)網(wǎng)站:ECharts
15
數(shù)據(jù)挖掘
Mahout:Apache Mahout
是機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘的一個(gè)分布式框架臼膏,它是基于hadoop之上的硼被。它提供一些可擴(kuò)展的機(jī)器學(xué)習(xí)領(lǐng)域經(jīng)典算法的實(shí)現(xiàn),旨在幫助開發(fā)人員更加方便快捷地創(chuàng)建智能應(yīng)用程序渗磅。Mahout包含許多實(shí)現(xiàn)祷嘶,包括聚類屎媳、分類、推薦過濾论巍、頻繁子項(xiàng)挖掘烛谊,主要核心的三大算法為推薦,聚類及分類算法嘉汰。此外丹禀,通過使用
Apache Hadoop 庫,Mahout 可以有效地?cái)U(kuò)展到云中鞋怀。
相關(guān)網(wǎng)站:Apache Mahout
MADlib:Apache MADlib
是一個(gè)基于SQL的數(shù)據(jù)庫內(nèi)置的可擴(kuò)展的機(jī)器學(xué)習(xí)庫双泪。是Pivotal公司與UCBerkeley合作開發(fā),2015年9月進(jìn)入Apache孵化器密似,于2017年7月19日畢業(yè)成為Apache頂級(jí)項(xiàng)目焙矛。MADlib提供了精確的數(shù)據(jù)并行實(shí)現(xiàn)、統(tǒng)計(jì)和機(jī)器學(xué)習(xí)方法對(duì)結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)進(jìn)行分析残腌。提供了豐富的分析模型村斟,包括回歸分析,決策樹抛猫,隨機(jī)森林蟆盹,貝葉斯分類,向量機(jī)闺金,風(fēng)險(xiǎn)模型逾滥,KMEAN聚集,文本挖掘败匹,數(shù)據(jù)校驗(yàn)等寨昙。In-Database
Analytics的特性使其大大擴(kuò)展了數(shù)據(jù)庫的分析功能,充分利用MPP架構(gòu)使其能夠快速處理海量數(shù)據(jù)集掀亩。MADlib 可以與Apache
HAWQ毅待、PostgreSQL和Greenplum等數(shù)據(jù)庫系統(tǒng)無縫集成。DBAer不用現(xiàn)學(xué)Python归榕、R或MATLAB,只要使用MADlib吱涉,用SQL就能實(shí)現(xiàn)簡(jiǎn)單的數(shù)據(jù)挖掘刹泄。
相關(guān)網(wǎng)站:Apache MADlib
Spark MLlib:Apache Spark MLlib是Spark的機(jī)器學(xué)習(xí)庫,是Apache
Spark的一個(gè)組成模塊怎爵。MLlib由一些通用的學(xué)習(xí)算法和工具組成特石,包括分類、回歸鳖链、聚類姆蘸、協(xié)同過濾墩莫、降維等,同時(shí)還包括底層的優(yōu)化原語和高層的管道API逞敷。Spark設(shè)計(jì)的初衷就是用來進(jìn)行迭代計(jì)算狂秦。它基于內(nèi)存的計(jì)算模型天生就擅長(zhǎng)迭代計(jì)算,多個(gè)步驟計(jì)算直接在內(nèi)存中完成推捐,只有在必要時(shí)才會(huì)操作磁盤和網(wǎng)絡(luò)裂问,所以說Spark正是機(jī)器學(xué)習(xí)的理想的平臺(tái)。利用Spark基于內(nèi)存迭代計(jì)算牛柒、機(jī)器學(xué)習(xí)的優(yōu)勢(shì)堪簿,使用Spark處理數(shù)據(jù)挖掘?qū)?huì)更顯得有價(jià)值。MLllib目前分為兩個(gè)代碼包:spark.mllib庫基于RDD的原始算法API皮壁;spark.ml庫基于DataaFrame的高層次的API椭更。Spark2.0以后,Spark
MLlib進(jìn)入維護(hù)不再更新蛾魄,預(yù)計(jì)Spark3.0以后被廢除虑瀑,完全轉(zhuǎn)向Spark ML。
相關(guān)網(wǎng)站:Apache Spark MLlib
Tensorflow:TensorFlow是一個(gè)開源的基于數(shù)據(jù)流圖的機(jī)器學(xué)習(xí)框架畏腕,它是Google
Brain的第二代機(jī)器學(xué)習(xí)系統(tǒng)缴川,常被應(yīng)用于各種感知、語言理解描馅、語音識(shí)別把夸、圖像識(shí)別等多項(xiàng)機(jī)器深度學(xué)習(xí)領(lǐng)域。TensorFlow是一個(gè)采用數(shù)據(jù)流圖(Data
Flow
Graphs)铭污,用于數(shù)值計(jì)算的開源軟件庫恋日。節(jié)點(diǎn)(Nodes)在圖中表示數(shù)學(xué)操作,張量(Tensor)代表了多維數(shù)組嘹狞,圖中的線(Edges)則表示在節(jié)點(diǎn)間相互聯(lián)系的多維數(shù)據(jù)數(shù)組岂膳,即張量,流(Flow)代表了基于數(shù)據(jù)流圖的計(jì)算磅网。它靈活的架構(gòu)讓你可以在多種平臺(tái)上展開計(jì)算谈截,例如臺(tái)式計(jì)算機(jī)中的一個(gè)或多個(gè)CPU(或GPU),服務(wù)器涧偷,移動(dòng)設(shè)備等等簸喂。TensorFlow
最初由Google大腦小組(隸屬于Google機(jī)器智能研究機(jī)構(gòu))的研究員和工程師們開發(fā)出來,用于機(jī)器學(xué)習(xí)和深度神經(jīng)網(wǎng)絡(luò)方面的研究燎潮,但這個(gè)系統(tǒng)的通用性使其也可廣泛用于其他計(jì)算領(lǐng)域喻鳄。
相關(guān)網(wǎng)站:Tensorflow、Tensorflow中文社區(qū)
Keras:Keras是一個(gè)基于TensorFlow的深度學(xué)習(xí)庫确封,其特點(diǎn)是對(duì)用戶友好的除呵,并且能夠提供簡(jiǎn)易和快速的原型設(shè)計(jì)再菊。Keras是一個(gè)由Python編寫的開源人工神經(jīng)網(wǎng)絡(luò)庫,可以作為Tensorflow颜曾、Microsoft-CNTK和Theano的高階應(yīng)用程序接口纠拔,進(jìn)行深度學(xué)習(xí)模型的設(shè)計(jì)、調(diào)試泛啸、評(píng)估绿语、應(yīng)用和可視化。Keras
為支持快速實(shí)驗(yàn)而生候址,能夠把你的idea迅速轉(zhuǎn)換為結(jié)果吕粹。
相關(guān)網(wǎng)站:Keras
16
云平臺(tái)
AWS S3:Amazon S3(Amazon Simple Storage Service
)是一種對(duì)象存儲(chǔ)服務(wù),提供行業(yè)領(lǐng)先的可擴(kuò)展性岗仑、數(shù)據(jù)可用性匹耕、安全性和性能。這意味著各種規(guī)模和行業(yè)的客戶都可以使用它來存儲(chǔ)和保護(hù)各種用例(如網(wǎng)站荠雕、移動(dòng)應(yīng)用程序稳其、備份和還原、存檔炸卑、企業(yè)應(yīng)用程序既鞠、IoT
設(shè)備和大數(shù)據(jù)分析)的任意數(shù)量的數(shù)據(jù)。Amazon S3
提供了易于使用的管理功能盖文,因此您可以組織數(shù)據(jù)并配置精細(xì)調(diào)整過的訪問控制以滿足特定的業(yè)務(wù)嘱蛋、組織和合規(guī)性要求。
相關(guān)網(wǎng)站:AWS S3
GCP:GCP(Google Cloud
Platform)是Google提供的一套云計(jì)算服務(wù)五续。它提供一系列模塊化云服務(wù)洒敏,包括計(jì)算、數(shù)據(jù)存儲(chǔ)疙驾、數(shù)據(jù)分析和機(jī)器學(xué)習(xí)凶伙。Google把運(yùn)行各種網(wǎng)絡(luò)應(yīng)用所需要的一切基礎(chǔ)架構(gòu),包括服務(wù)器它碎、操作系統(tǒng)函荣、應(yīng)用軟件、網(wǎng)站架構(gòu)扳肛、API接口傻挂、數(shù)據(jù)庫、CDN敞峭、VPN、物聯(lián)網(wǎng)蝉仇、大數(shù)據(jù)等等全部預(yù)先準(zhǔn)備好旋讹。你只需要在google云平臺(tái)上注冊(cè)一個(gè)帳號(hào)殖蚕,即可在分布在全球各地?cái)?shù)十個(gè)google機(jī)房使用所有的基礎(chǔ)架構(gòu)服務(wù)。
相關(guān)網(wǎng)站:GCP
Microsoft?Azure:Azure是Microsoft提供的企業(yè)級(jí)云計(jì)算平臺(tái)沉迹。Azure的主要目標(biāo)是為開發(fā)者提供一個(gè)平臺(tái)睦疫,幫助開發(fā)可運(yùn)行在云服務(wù)器、數(shù)據(jù)中心鞭呕、Web和PC上的應(yīng)用程序蛤育。云計(jì)算的開發(fā)者能使用微軟全球數(shù)據(jù)中心的儲(chǔ)存、計(jì)算能力和網(wǎng)絡(luò)基礎(chǔ)服務(wù)葫松。
注:轉(zhuǎn)載來源于微信公眾號(hào)數(shù)據(jù)社瓦糕。