大資料,資料分析,機器學習,架構等相關係統名稱名詞解釋
常用的一些軟體或其他
1.日誌(日誌收集,日誌處理)
風來了.fox
1.1 Logstash
Logstash是一款輕量級的日誌蒐集處理框架,可以方便的把分散的、多樣化的日誌蒐集起來,並進行自定義的處理,然後傳輸到指定的位置,比如某個伺服器或者檔案。
1.2 Filebeat
Filebeat是一個開源的檔案收集器,主要用於獲取日誌檔案,並把它們傳送到logstash或elasticsearch
1.3 Scribe
Scribe是Facebook開源的日誌收集系統,在Facebook內部已經得到的應用。它能夠從各種日誌源上收集日誌,儲存到一箇中央儲存系統(可以是NFS,分散式檔案系統等)上,以便於進行集中統計分析處理。
2.搜尋
2.1 ElasticSearch
ElasticSearch是一個基於Lucene的搜尋伺服器。它提供了一個分散式多使用者能力的全文搜尋引擎,基於RESTful web介面。Elasticsearch是用Java開發的,並作為Apache許可條款下的開放原始碼釋出,是當前流行的企業級搜尋引擎。設計用於雲端計算中,能夠達到實時搜尋,穩定,可靠,快速,安裝使用方便。
3.訊息佇列
3.1 Kafka
Kafka是一種高吞吐量的分散式釋出訂閱訊息系統,它可以處理消費者規模的網站中的所有動作流資料。
3.2 jafka
JafkaMQ是一個分散式的釋出/訂閱訊息系統,它是Apache Kafka的Java移植版
3.3 RabbitMq
3.4 ActiveMq
3.5 ZeroMq
3.6 Pulsar
3.x 雲上訊息佇列
如:阿里雲MQ
4.中介軟體
4.1 sqoop
sqoop是一款開源的工具,主要用於在Hadoop(Hive)與傳統的資料庫(mysql、postgresql…)間進行資料的傳遞,可以將一個關係型資料庫(例如 : MySQL ,Oracle ,Postgres等)中的資料導進到Hadoop的HDFS中,也可以將HDFS的資料導進到關係型資料庫中。
4.10 TDDL 資料庫中介軟體
淘寶根據自己的業務特點開發了TDDL(Taobao Distributed Data Layer 外號:頭都大了 ©_Ob)框架,主要解決了分庫分表對應用的透明化以及異構資料庫之間的資料複製,它是一個基於集中式配置的 jdbc datasource實現,具有主備,讀寫分離,動態資料庫配置等功能。
TDDL所處的位置(tddl通用資料訪問層,部署在客戶端的jar包,用於將使用者的SQL路由到指定的資料庫中)
4.11 Atlas
Atlas是由 Qihoo 360, Web平臺部基礎架構團隊開發維護的一個基於MySQL協議的資料中間層專案。它是在mysql-proxy 0.8.2版本的基礎上,對其進行了優化,增加了一些新的功能特性。360內部使用Atlas執行的mysql業務,每天承載的讀寫請求數達幾十億條。
4.12 cobar
Cobar是阿里巴巴(B2B)部門開發的一種關係型資料的分散式處理系統,它可以在分散式的環境下看上去像傳統資料庫一樣為您提供海量資料服務
4.13 Mycat
Mycat 資料庫分庫分表中介軟體
5. 分散式系統基礎架構、叢集計算
5.1 Hadoop (HDFS)
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為海量的資料提供了計算
5.2 Dubbo
DUBBO是一個分散式服務框架,致力於提供高效能和透明化的RPC遠端服務呼叫方案,是阿里巴巴SOA服務化治理方案的核心框架,每天為2,000+個服務提供3,000,000,000+次訪問量支援,並被廣泛應用於阿里巴巴集團的各成員站點。
現在已停止更新
5.3 Dubbox
噹噹網的擴充套件版本dubbox
5.4 thirft
thrift是一個軟體框架,用來進行可擴充套件且跨語言的服務的開發。它結合了功能強大的軟體堆疊和程式碼生成引擎,以構建在 C++, Java, Go,Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, and OCaml 這些程式語言間無縫結合的、高效的服務。
5.5 zeroc ice
5.10 Spark
Spark是一種快速、通用的計算集群系統,Spark提出的最主要抽象概念是彈性分散式資料集(RDD),它是一個元素集合,劃分到叢集的各個節點上,可以被並行操作。使用者也可以讓Spark保留一個RDD在記憶體中,使其能在並行操作中被有效的重複使用。Flink是可擴充套件的批處理和流式資料處理的資料處理平臺,設計思想主要來源於Hadoop、MPP資料庫、流式計算系統等,支援增量迭代計算。
5.11 Flink
5.20 Alluxio
Alluxio 是一個高容錯的分散式檔案系統,允許檔案以記憶體的速度在叢集框架中進行可靠的共享,類似Spark和 MapReduce。通過利用lineage資訊,積極地使用記憶體,Alluxio的吞吐量要比HDFS高300多倍。Alluxio都是在記憶體中處理緩 存檔案,並且讓不同的 Jobs/Queries以及框架都能記憶體的速度來訪問快取檔案。
6.實時計算
6.1 Storm
Storm是一個免費開源、分散式、高容錯的實時計算系統。Storm令持續不斷的流計算變得容易,彌補了Hadoop批處理所不能滿足的實時要求。Storm經常用於在實時分析、線上機器學習、持續計算、分散式遠端呼叫和ETL等領域。Storm的部署管理非常簡單,而且,在同類的流式計算工具,Storm的效能也是非常出眾的。
6.2 JStorm
Jstorm是參考storm的實時流式計算框架,在網路IO、執行緒模型、資源排程、可用性及穩定性上做了持續改進,已被越來越多企業使用
7.分析
7.1 Kylin
Apache Kylin™是一個開源的分散式分析引擎,提供Hadoop之上的SQL查詢介面及多維分析(OLAP)能力以支援超大規模資料,最初由eBay Inc. 開發並貢獻至開源社群。它能在亞秒內查詢巨大的Hive表。
7.2 Heron
Twitter開源了資料實時分析平臺Heron。
Twitter使用Storm實時分析海量資料已經有好幾年了,並在2011年將其開源。該專案稍後開始在Apache基金會孵化,並在2015年秋天成為頂級專案。Storm以季度為釋出週期,並且向著人們期望的穩定版前進。但一直以來,Twitter都在致力於開發替代方案Heron,因為Storm無法滿足他們的實時處理需求。
Twitter現在已經用Heron完全替換了Storm。前者現在每天處理“數10TB的資料,生成數10億輸出元組”,在一個標準的單詞計數測試中,“吞吐量提升了6到14倍,元組延遲降低到了原來的五到十分之一”,硬體減少了2/3。
8.機器學習、演算法
8.1 mahout
Mahout 是 Apache Software Foundation(ASF) 旗下的一個開源專案,提供一些可擴充套件的機器學習領域經典演算法的實現,旨在幫助開發人員更加方便快捷地建立智慧應用程式。Mahout包含許多實現,包括聚類、分類、推薦過濾、頻繁子項挖掘。此外,通過使用 Apache Hadoop 庫,Mahout 可以有效地擴充套件到雲中。
10.資料庫
10.1 HBase
HBase是一個分散式的、面向列的開源資料庫,該技術來源於 Fay Chang 所撰寫的Google論文“Bigtable:一個結構化資料的分散式儲存系統”。就像Bigtable利用了Google檔案系統(File System)所提供的分散式資料儲存一樣,HBase在Hadoop之上提供了類似於Bigtable的能力。HBase是Apache的Hadoop專案的子專案。HBase不同於一般的關係資料庫,它是一個適合於非結構化資料儲存的資料庫。另一個不同的是HBase基於列的而不是基於行的模式。
10.20 mongodb
MongoDB是一個基於分散式檔案儲存的資料庫
10.21 SequoiaDB
SequoiaDB巨杉資料庫是一款支援SQL、高併發、實時性、分散式、可擴充套件、靈活儲存的操作型NewSQL資料庫(Operational NewSQL Database)
10.22 Cassandra
Cassandra是一套開源分散式NoSQL資料庫系統。它最初由Facebook開發,用於儲存收件箱等簡單格式資料,集GoogleBigTable的資料模型與Amazon Dynamo的完全分散式的架構於一身Facebook於2008將 Cassandra 開源,此後,由於Cassandra良好的可擴充套件性,被Digg、Twitter等知名Web 2.0網站所採納,成為了一種流行的分散式結構化資料儲存方案。
10.10 Mysql
Mysql是最流行的關係型資料庫管理系統,在WEB應用方面MySQL是最好的RDBMS
10.11 MS SQL
MS SQL是指微軟的SQLServer資料庫伺服器,它是一個數據庫平臺,提供資料庫的從伺服器到終端的完整的解決方案,其中資料庫伺服器部分,是一個數據庫管理系統,用於建立、使用和維護資料庫
10.12 Oracle Database
Oracle Database,又名Oracle RDBMS,或簡稱Oracle。是甲骨文公司的一款關係資料庫管理系統。它是在資料庫領域一直處於領先地位的產品。可以說Oracle資料庫系統是目前世界上流行的關係資料庫管理系統,系統可移植性好、使用方便、功能強,適用於各類大、中、小、微機環境。它是一種高效率、可靠性好的 適應高吞吐量的資料庫解決方案。
10.13 Microsoft Office Access
Microsoft Office Access是由微軟釋出的關係資料庫管理系統
10.14 sqlite
SQLite,是一款輕型的資料庫
它的設計目標是嵌入式的,而且目前已經在很多嵌入式產品中使用了它,它佔用資源非常的低,在嵌入式裝置中,可能只需要幾百K的記憶體就夠了。它能夠支援Windows/Linux/Unix等等主流的作業系統,同時能夠跟很多程式語言相結合,比如 Tcl、C#、PHP、Java等,還有ODBC介面,同樣比起Mysql、PostgreSQL這兩款開源的世界著名資料庫管理系統來講,它的處理速度比他們都快。
11.快取
11.1 Redis
Redis是一個開源(BSD許可),記憶體儲存的資料結構伺服器,可用作資料庫,快取記憶體和訊息佇列代理。它支援字串、雜湊表、列表、集合、有序集合,點陣圖,hyperloglogs等資料型別。內建複製、Lua指令碼、LRU收回、事務以及不同級別磁碟持久化功能,同時通過Redis Sentinel提供高可用,通過Redis Cluster提供自動分割槽。
11.2 Memcache
memcache是一套分散式的快取記憶體系統,由LiveJournal的Brad Fitzpatrick開發,但目前被許多網站使用以提升網站的訪問速度,尤其對於一些大型的、需要頻繁訪問資料庫的網站訪問速度提升效果十分顯著
12.其他
12.1 hive
hive是基於Hadoop的一個數據倉庫工具,可以將結構化的資料檔案對映為一張資料庫表,並提供簡單的sql查詢功能,可以將sql語句轉換為MapReduce任務進行執行。 其優點是學習成本低,可以通過類SQL語句快速實現簡單的MapReduce統計,不必開發專門的MapReduce應用,十分適合資料倉庫的統計分析。
12.2 Impala
Impala是Cloudera公司主導開發的新型查詢系統,它提供SQL語義,能查詢儲存在Hadoop的HDFS和HBase中的PB級大資料。已有的Hive系統雖然也提供了SQL語義,但由於Hive底層執行使用的是MapReduce引擎,仍然是一個批處理過程,難以滿足查詢的互動性。相比之下,Impala的最大特點也是最大賣點就是它的快速。
12.3 Shark
Shark即Hive on Spark,本質上是 通過Hive的HQL解析,把HQL翻譯成Spark上的RDD操作,然後通過Hive的metadata獲取資料庫裡的表資訊,實際HDFS上的資料和檔案,會由Shark獲取並放到Spark上運算 。Shark的特點就是快,完全相容Hive,且可以在shell模式下使用rdd2sql()這樣的API,把HQL得到的結果集,繼續在scala環境下運算,支援自己編寫簡單的機器學習或簡單分析處理函式,對HQL結果進一步分析計算。
12.10 MapReduce
MapReduce是一種程式設計模型,用於大規模資料集(大於1TB)的並行運算。概念”Map(對映)”和”Reduce(歸約)”,是它們的主要思想,都是從函數語言程式設計語言裡借來的,還有從向量程式語言裡借來的特性。它極大地方便了程式設計人員在不會分散式並行程式設計的情況下,將自己的程式執行在分散式系統上。 當前的軟體實現是指定一個Map(對映)函式,用來把一組鍵值對對映成一組新的鍵值對,指定併發的Reduce(歸約)函式,用來保證所有對映的鍵值對中的每一個共享相同的鍵組。
12.11 Presto
Presto是一個開源的分散式SQL查詢引擎,適用於互動式分析查詢,資料量支援GB到PB位元組。
Presto的設計和編寫完全是為了解決像Facebook這樣規模的商業資料倉庫的互動式分析和處理速度的問題。