天天看點

大資料,資料分析,機器學習,架構等相關系統名稱名詞解釋1.日志(日志收集,日志處理)2.搜尋3.消息隊列4.中間件4.1 sqoop5. 分布式系統基礎架構、叢集計算6.實時計算7.分析8.機器學習、算法10.資料庫11.緩存12.其他

常用的一些軟體或其他

風來了.fox

logstash是一款輕量級的日志搜集處理架構,可以友善的把分散的、多樣化的日志搜集起來,并進行自定義的處理,然後傳輸到指定的位置,比如某個伺服器或者檔案。

filebeat是一個開源的檔案收集器,主要用于擷取日志檔案,并把它們發送到logstash或elasticsearch

scribe是facebook開源的日志收集系統,在facebook内部已經得到的應用。它能夠從各種日志源上收集日志,存儲到一個中央存儲系統(可以是nfs,分布式檔案系統等)上,以便于進行集中統計分析處理。

elasticsearch是一個基于lucene的搜尋伺服器。它提供了一個分布式多使用者能力的全文搜尋引擎,基于restful web接口。elasticsearch是用java開發的,并作為apache許可條款下的開放源碼釋出,是目前流行的企業級搜尋引擎。設計用于雲計算中,能夠達到實時搜尋,穩定,可靠,快速,安裝使用友善。

kafka是一種高吞吐量的分布式釋出訂閱消息系統,它可以處理消費者規模的網站中的所有動作流資料。

jafkamq是一個分布式的釋出/訂閱消息系統,它是apache kafka的java移植版

如:阿裡雲mq

sqoop是一款開源的工具,主要用于在hadoop(hive)與傳統的資料庫(mysql、postgresql…)間進行資料的傳遞,可以将一個關系型資料庫(例如 : mysql ,oracle ,postgres等)中的資料導進到hadoop的hdfs中,也可以将hdfs的資料導進到關系型資料庫中。

淘寶根據自己的業務特點開發了tddl(taobao distributed data layer 外号:頭都大了 ©_ob)架構,主要解決了分庫分表對應用的透明化以及異構資料庫之間的資料複制,它是一個基于集中式配置的 jdbc datasource實作,具有主備,讀寫分離,動态資料庫配置等功能。

tddl所處的位置(tddl通用資料通路層,部署在用戶端的jar包,用于将使用者的sql路由到指定的資料庫中)

atlas是由 qihoo 360, web平台部基礎架構團隊開發維護的一個基于mysql協定的資料中間層項目。它是在mysql-proxy 0.8.2版本的基礎上,對其進行了優化,增加了一些新的功能特性。360内部使用atlas運作的mysql業務,每天承載的讀寫請求數達幾十億條。

cobar是阿裡巴巴(b2b)部門開發的一種關系型資料的分布式處理系統,它可以在分布式的環境下看上去像傳統資料庫一樣為您提供海量資料服務

mycat 資料庫分庫分表中間件

hadoop是一個由apache基金會所開發的分布式系統基礎架構。

hadoop實作了一個分布式檔案系統(hadoop distributed file system),簡稱hdfs。hdfs有高容錯性的特點,并且設計用來部署在低廉的(low-cost)硬體上;而且它提供高吞吐量(high throughput)來通路應用程式的資料,适合那些有着超大資料集(large data set)的應用程式。hdfs放寬了(relax)posix的要求,可以以流的形式通路(streaming access)檔案系統中的資料。

hadoop的架構最核心的設計就是:hdfs和mapreduce。hdfs為海量的資料提供了存儲,則mapreduce為海量的資料提供了計算

dubbo是一個分布式服務架構,緻力于提供高性能和透明化的rpc遠端服務調用方案,是阿裡巴巴soa服務化治理方案的核心架構,每天為2,000+個服務提供3,000,000,000+次通路量支援,并被廣泛應用于阿裡巴巴集團的各成員站點。

現在已停止更新

當當網的擴充版本dubbox

thrift是一個軟體架構,用來進行可擴充且跨語言的服務的開發。它結合了功能強大的軟體堆棧和代碼生成引擎,以建構在 c++, java, go,python, php, ruby, erlang, perl, haskell, c#, cocoa, javascript, node.js, smalltalk, and ocaml 這些程式設計語言間無縫結合的、高效的服務。

spark是一種快速、通用的計算叢集系統,spark提出的最主要抽象概念是彈性分布式資料集(rdd),它是一個元素集合,劃分到叢集的各個節點上,可以被并行操作。使用者也可以讓spark保留一個rdd在記憶體中,使其能在并行操作中被有效的重複使用。flink是可擴充的批處理和流式資料處理的資料處理平台,設計思想主要來源于hadoop、mpp資料庫、流式計算系統等,支援增量疊代計算。

alluxio 是一個高容錯的分布式檔案系統,允許檔案以記憶體的速度在叢集架構中進行可靠的共享,類似spark和 mapreduce。通過利用lineage資訊,積極地使用記憶體,alluxio的吞吐量要比hdfs高300多倍。alluxio都是在記憶體中處理緩 存檔案,并且讓不同的 jobs/queries以及架構都能記憶體的速度來通路緩存檔案。

storm是一個免費開源、分布式、高容錯的實時計算系統。storm令持續不斷的流計算變得容易,彌補了hadoop批處理所不能滿足的實時要求。storm經常用于在實時分析、線上機器學習、持續計算、分布式遠端調用和etl等領域。storm的部署管理非常簡單,而且,在同類的流式計算工具,storm的性能也是非常出衆的。

jstorm是參考storm的實時流式計算架構,在網絡io、線程模型、資源排程、可用性及穩定性上做了持續改進,已被越來越多企業使用

apache kylin™是一個開源的分布式分析引擎,提供hadoop之上的sql查詢接口及多元分析(olap)能力以支援超大規模資料,最初由ebay inc. 開發并貢獻至開源社群。它能在亞秒内查詢巨大的hive表。

twitter開源了資料實時分析平台heron。

twitter使用storm實時分析海量資料已經有好幾年了,并在2011年将其開源。該項目稍後開始在apache基金會孵化,并在2015年秋天成為頂級項目。storm以季度為釋出周期,并且向着人們期望的穩定版前進。但一直以來,twitter都在緻力于開發替代方案heron,因為storm無法滿足他們的實時處理需求。

twitter現在已經用heron完全替換了storm。前者現在每天處理“數10tb的資料,生成數10億輸出元組”,在一個标準的單詞計數測試中,“吞吐量提升了6到14倍,元組延遲降低到了原來的五到十分之一”,硬體減少了2/3。

mahout 是 apache software foundation(asf) 旗下的一個開源項目,提供一些可擴充的機器學習領域經典算法的實作,旨在幫助開發人員更加友善快捷地建立智能應用程式。mahout包含許多實作,包括聚類、分類、推薦過濾、頻繁子項挖掘。此外,通過使用 apache hadoop 庫,mahout 可以有效地擴充到雲中。

hbase是一個分布式的、面向列的開源資料庫,該技術來源于 fay chang 所撰寫的google論文“bigtable:一個結構化資料的分布式存儲系統”。就像bigtable利用了google檔案系統(file system)所提供的分布式資料存儲一樣,hbase在hadoop之上提供了類似于bigtable的能力。hbase是apache的hadoop項目的子項目。hbase不同于一般的關系資料庫,它是一個适合于非結構化資料存儲的資料庫。另一個不同的是hbase基于列的而不是基于行的模式。

mongodb是一個基于分布式檔案存儲的資料庫

sequoiadb巨杉資料庫是一款支援sql、高并發、實時性、分布式、可擴充、靈活存儲的操作型newsql資料庫(operational newsql database)

cassandra是一套開源分布式nosql資料庫系統。它最初由facebook開發,用于儲存收件箱等簡單格式資料,集googlebigtable的資料模型與amazon dynamo的完全分布式的架構于一身facebook于2008将 cassandra 開源,此後,由于cassandra良好的可擴充性,被digg、twitter等知名web 2.0網站所采納,成為了一種流行的分布式結構化資料存儲方案。

mysql是最流行的關系型資料庫管理系統,在web應用方面mysql是最好的rdbms

ms sql是指微軟的sqlserver資料庫伺服器,它是一個資料庫平台,提供資料庫的從伺服器到終端的完整的解決方案,其中資料庫伺服器部分,是一個資料庫管理系統,用于建立、使用和維護資料庫

oracle database,又名oracle rdbms,或簡稱oracle。是甲骨文公司的一款關系資料庫管理系統。它是在資料庫領域一直處于領先地位的産品。可以說oracle資料庫系統是目前世界上流行的關系資料庫管理系統,系統可移植性好、使用友善、功能強,适用于各類大、中、小、微機環境。它是一種高效率、可靠性好的 适應高吞吐量的資料庫解決方案。

microsoft office access是由微軟釋出的關系資料庫管理系統

sqlite,是一款輕型的資料庫

它的設計目标是嵌入式的,而且目前已經在很多嵌入式産品中使用了它,它占用資源非常的低,在嵌入式裝置中,可能隻需要幾百k的記憶體就夠了。它能夠支援windows/linux/unix等等主流的作業系統,同時能夠跟很多程式語言相結合,比如 tcl、c#、php、java等,還有odbc接口,同樣比起mysql、postgresql這兩款開源的世界著名資料庫管理系統來講,它的處理速度比他們都快。

redis是一個開源(bsd許可),記憶體存儲的資料結構伺服器,可用作資料庫,高速緩存和消息隊列代理。它支援字元串、哈希表、清單、集合、有序集合,位圖,hyperloglogs等資料類型。内置複制、lua腳本、lru收回、事務以及不同級别磁盤持久化功能,同時通過redis sentinel提供高可用,通過redis cluster提供自動分區。

memcache是一套分布式的高速緩存系統,由livejournal的brad fitzpatrick開發,但目前被許多網站使用以提升網站的通路速度,尤其對于一些大型的、需要頻繁通路資料庫的網站通路速度提升效果十分顯著

hive是基于hadoop的一個資料倉庫工具,可以将結構化的資料檔案映射為一張資料庫表,并提供簡單的sql查詢功能,可以将sql語句轉換為mapreduce任務進行運作。 其優點是學習成本低,可以通過類sql語句快速實作簡單的mapreduce統計,不必開發專門的mapreduce應用,十分适合資料倉庫的統計分析。

impala是cloudera公司主導開發的新型查詢系統,它提供sql語義,能查詢存儲在hadoop的hdfs和hbase中的pb級大資料。已有的hive系統雖然也提供了sql語義,但由于hive底層執行使用的是mapreduce引擎,仍然是一個批處理過程,難以滿足查詢的互動性。相比之下,impala的最大特點也是最大賣點就是它的快速。

shark即hive on spark,本質上是 通過hive的hql解析,把hql翻譯成spark上的rdd操作,然後通過hive的metadata擷取資料庫裡的表資訊,實際hdfs上的資料和檔案,會由shark擷取并放到spark上運算 。shark的特點就是快,完全相容hive,且可以在shell模式下使用rdd2sql()這樣的api,把hql得到的結果集,繼續在scala環境下運算,支援自己編寫簡單的機器學習或簡單分析處理函數,對hql結果進一步分析計算。

mapreduce是一種程式設計模型,用于大規模資料集(大于1tb)的并行運算。概念”map(映射)”和”reduce(歸約)”,是它們的主要思想,都是從函數式程式設計語言裡借來的,還有從矢量程式設計語言裡借來的特性。它極大地友善了程式設計人員在不會分布式并行程式設計的情況下,将自己的程式運作在分布式系統上。 目前的軟體實作是指定一個map(映射)函數,用來把一組鍵值對映射成一組新的鍵值對,指定并發的reduce(歸約)函數,用來保證所有映射的鍵值對中的每一個共享相同的鍵組。

presto是一個開源的分布式sql查詢引擎,适用于互動式分析查詢,資料量支援gb到pb位元組。

presto的設計和編寫完全是為了解決像facebook這樣規模的商業資料倉庫的互動式分析和處理速度的問題。