國內大資料開發中比較受歡迎的幾款工具
1、zookeeper
一個分散式的應用程式協調服務,是Hadoop和Hbase的重要元件。它是一個為分散式應用提供一致性服務的工具,讓Hadoop叢集裡面的節點可以彼此協調。ZooKeeper現在已經成為了 Apache的頂級專案,為分散式系統提供了高效可靠且易於使用的協同服務。
2、HDFS
Hadoop Distributed File System,簡稱HDFS,是一個分散式檔案系統。HDFS是一個高度容錯性的系統,適合部署在廉價的機器上。HDFS能提供高吞吐量的資料訪問,非常適合大規模資料集上的應用。
3、Kafka
一種高吞吐量的分散式釋出訂閱訊息系統,它可以處理消費者規模網站中的所有動作流資料,目前已成為大資料系統在非同步和分散式訊息之間的最佳選擇。
4、Spark
一個高速、通用大資料計算處理引擎。擁有Hadoop MapReduce所具有的優點,但不同的是Job的中間輸出結果可以儲存在記憶體中,從而不再需要讀寫HDFS,因此Spark能更好地適用於資料探勘與機器學習等需要迭代的MapReduce的演算法。它可以與Hadoop和Apache Mesos一起使用,也可以獨立使用。
5、Hadoop
一個開源框架,適合執行在通用硬體,支援用簡單程式模型分散式處理跨叢集大資料集,支援從單一伺服器到上千伺服器的水平scale up。Apache的Hadoop專案已幾乎與大資料劃上了等號,它不斷壯大起來,已成為一個完整的生態系統,擁有眾多開源工具面向高度擴充套件的分散式計算。高效、可靠、可伸縮,能夠為你的資料儲存專案提供所需的YARN、HDFS和基礎架構,並且執行主要的大資料服務和應用程式。
6、Storm
Storm是Twitter開源的一個類似於Hadoop的實時資料處理框架。程式設計模型簡單,顯著地降低了實時處理的難度,也是當下最人氣的流計算框架之一。與其他計算框架相比,Storm最大的優點是毫秒級低延時。
7、Hive
是基於Hadoop的一個數據倉庫工具,可以將結構化的資料檔案對映為一張資料庫表,並提供簡單的sql查詢功能,可以將sql語句轉換為MapReduce任務進行執行。 其優點是學習成本低,可以通過類SQL語句快速實現簡單的MapReduce統計,不必開發專門的MapReduce應用,十分適合資料倉庫的統計分析。
8、Redis
是一個高效能的key-value儲存系統,和Memcached類似,它支援儲存的value型別相對更多,包括string(字串)、list(連結串列)、set(集合)和zset(有序集合)。Redis的出現,很大程度補償了memcached這類key/value儲存的不足,在部分場合可以對關係資料庫起到很好的補充作用。
9、HDFS
Hadoop分散式檔案系統(HDFS)被設計成適合執行在通用硬體(commodity hardware)上的分散式檔案系統。它和現有的分散式檔案系統有很多共同點。HDFS是一個高度容錯性的系統,適合部署在廉價的機器上。HDFS能提供高吞吐量的資料訪問,非常適合大規模資料集上的應用。
10、HBase
是Hadoop的資料庫,一個分散式、可擴充套件、大資料的儲存。是為有數十億行和數百萬列的超大表設計的,是一種分散式資料庫,可以對大資料進行隨機性的實時讀取/寫入訪問。提供類似谷歌Bigtable的儲存能力,基於Hadoop和Hadoop分散式檔案系統(HDFS)而建。
11、Elasticsearch
是一個基於Lucene的搜尋伺服器。它提供了一個分散式、支援多使用者的全文搜尋引擎,基於RESTful web介面。Elasticsearch是用Java開發的,並作為Apache許可條款下的開放原始碼釋出,是當前流行的企業級搜尋引擎。設計用於雲端計算中,能夠達到實時搜尋、穩定、可靠、快速、安裝使用方便。
。。。。。。
以上的這些工具就是目前國內大資料開發環境中常用的一些工具。當然除此之後還有很多,包括Samza、Flink、Stinger、 Drill等等。掌握的技術當然是越多越好,尤其是網際網路行業,只有不斷的去學習,瞭解新的技術才不會被淘汰。
個人見解,歡迎大家踴躍發言並且推薦目前大資料常用的工具還有哪些