大數據平臺常見開源工具集錦,看看你都知道哪些

2020-12-12 51CTO

 引言

大數據平臺是對海量結構化、非結構化、半機構化數據進行採集、存儲、計算、統計、分析處理的一系列技術平臺。大數據平臺處理的數據量通常是TB級,甚至是PB或EB級的數據,這是傳統數據倉庫工具無法處理完成的,其涉及的技術有分布式計算、高並發處理、高可用處理、集群、實時性計算等,匯集了當前IT領域熱門流行的各類技術。

本文整理了大數據平臺常見的一些開源工具,並且依據其主要功能進行分類,以便大數據學習者及應用者快速查找和參考。

大數據平臺常見的一些工具匯集 

大數據平臺常見開源工具集錦,看看你都知道哪些

主要包含:語言工具類、數據採集工具、ETL工具、數據存儲工具、分析計算、查詢應用及運維監控工具等。以下對各工具作為簡要的說明。

一、語言工具類

1.Java編程技術

Java編程技術是目前使用最為廣泛的網絡程式語言之一,是大數據學習的基礎。Java具有簡單性、面向對象、分布式、健壯性、安全性、平臺獨立與可移植性、多線程、動態性等特點,擁有極高的跨平臺能力,是一種強類型語言,可以編寫桌面應用程式、Web應用程式、分布式系統和嵌入式系統應用程式等,是大數據工程師最喜歡的編程工具,最重要的是,Hadoop以及其他大數據處理技術很多都是用Java,因此,想學好大數據,掌握Java基礎是必不可少的。

2.Linux命令

對於大數據開發通常是在Linux環境下進行的,相比Linux作業系統,Windows作業系統是封閉的作業系統,開源的大數據軟體很受限制,因此,想從事大數據開發相關工作,還需掌握Linux基礎操作命令。

3.Scala

Scala是一門多範式的程式語言,一方面吸收繼承了多種語言中的優秀特性,一方面又沒有拋棄 Java 這個強大的平臺,大數據開發重要框架Spark是採用Scala語言設計的,想要學好Spark框架,擁有Scala基礎是必不可少的,因此,大數據開發需掌握Scala編程基礎知識!

4.Python與數據分析

Python是面向對象的程式語言,擁有豐富的庫,使用簡單,應用廣泛,在大數據領域也有所應用,主要可用於數據採集、數據分析以及數據可視化等,因此,大數據開發需學習一定的Python知識。

二、數據採集類工具

  • Nutch是一個開源Java 實現的搜尋引擎。它提供了我們運行自己的搜尋引擎所需的全部工具,包括全文搜索和Web爬蟲。
  • Scrapy是一個為了爬取網站數據,提取結構性數據而編寫的應用框架,可以應用在數據挖掘,信息處理或存儲歷史數據等一系列的程序中。大數據的採集需要掌握Nutch與Scrapy爬蟲技術。

三、ETL工具

1.Sqoop

Sqoop是一個用於在Hadoop和關係資料庫伺服器之間傳輸數據的工具。它用於從關係資料庫(如MySQL,Oracle)導入數據到Hadoop HDFS,並從Hadoop文件系統導出到關係資料庫,學習使用Sqoop對關係型資料庫數據和Hadoop之間的導入有很大的幫助。

2.Kettle

Kettle是一個ETL工具集,它允許你管理來自不同資料庫的數據,通過提供一個圖形化的用戶環境來描述你想做什麼,而不是你想怎麼做。作為Pentaho的一個重要組成部分,現在在國內項目應用上逐漸增多。其數據抽取高效穩定。

四、數據存儲類工具

1.Hadoop分布式存儲與計算

Hadoop實現了一個分布式文件系統(Hadoop Distributed File System),簡稱HDFS。Hadoop的框架最核心的設計就是:HDFS和MapReduce。HDFS為海量的數據提供了存儲,MapReduce則為海量的數據提供了計算,因此,需要重點掌握,除此之外,還需要掌握Hadoop集群、Hadoop集群管理、YARN以及Hadoop高級管理等相關技術與操作!

2.Hive

Hive是基於Hadoop的一個數據倉庫工具,可以將結構化的數據文件映射為一張資料庫表,並提供簡單的SQL查詢功能,可以將SQL語句轉換為MapReduce任務進行運行。相對於用Java代碼編寫MapReduce來說,Hive的優勢明顯:快速開發,人員成本低,可擴展性(自由擴展集群規模),延展性(支持自定義函數)。十分適合數據倉庫的統計分析。對於Hive需掌握其安裝、應用及高級操作等。

3.ZooKeeper

ZooKeeper 是一個開源的分布式協調服務,是Hadoop和HBase的重要組件,是一個為分布式應用提供一致性服務的軟體,提供的功能包括:配置維護、域名服務、分布式同步、組件服務等,在大數據開發中要掌握ZooKeeper的常用命令及功能的實現方法。

4.HBase

HBase是一個分布式的、面向列的開源資料庫,它不同於一般的關係資料庫,更適合於非結構化數據存儲的資料庫,是一個高可靠性、高性能、面向列、可伸縮的分布式存儲系統,大數據開發需掌握HBase基礎知識、應用、架構以及高級用法等。

5.Redis

Redis是一個Key-Value存儲系統,其出現很大程度補償了Memcached這類Key/Value存儲的不足,在部分場合可以對關係資料庫起到很好的補充作用,它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客戶端,使用很方便,大數據開發需掌握Redis的安裝、配置及相關使用方法。

6.Kafka

Kafka是一種高吞吐量的分布式發布訂閱消息系統,其在大數據開發應用上的目的是通過Hadoop的並行加載機制來統一線上和離線的消息處理,也是為了通過集群來提供實時的消息。大數據開發需掌握Kafka架構原理及各組件的作用和使用方法及相關功能的實現。

7.Neo4j

Neo4j是一個高性能的,NoSQL圖形資料庫,具有處理百萬和T級節點和邊的大尺度處理網絡分析能力。它是一個嵌入式的、基於磁碟的、具備完全的事務特性的Java持久化引擎,但是它將結構化數據存儲在網絡(從數學角度叫做圖)上而不是表中。Neo4j因其嵌入式、高性能、輕量級等優勢,越來越受到關注。

8.Cassandra

Cassandra是一個混合型的非關係的資料庫,類似於Google的BigTable,其主要功能比Dynamo(分布式的Key-Value存儲系統)更豐富。這種NoSQL資料庫最初由Facebook開發,現已被1500多家企業組織使用,包括蘋果、歐洲原子核研究組織(CERN)、康卡斯特、電子港灣、GitHub、GoDaddy、Hulu、Instagram、Intuit、Netflix、Reddit等。是一種流行的分布式結構化數據存儲方案。

9.SSM

SSM框架是由Spring、Spring MVC、MyBatis三個開源框架整合而成,常作為數據源較簡單的Web項目的框架。大數據開發需分別掌握Spring、Spring MVC、MyBatis三種框架的同時,再使用SSM進行整合操作。

五、分析計算類工具

1.Spark

Spark是專為大規模數據處理而設計的快速通用的計算引擎,其提供了一個全面、統一的框架用於管理各種不同性質的數據集和數據源的大數據處理的需求,大數據開發需掌握Spark基礎、SparkJob、Spark RDD部署與資源分配、Spark Shuffle、Spark內存管理、Spark廣播變量、Spark SQL、Spark Streaming以及Spark ML等相關知識。

2.Storm

Storm 是自由的開源軟體,一個分布式的、容錯的實時計算系統,可以非常可靠的處理龐大的數據流,用於處理Hadoop的批量數據。Storm支持許多種程式語言,並且有許多應用領域:實時分析、在線機器學習、不停頓的計算、分布式RPC(遠過程調用協議,一種通過網路從遠程電腦程式上請求服務)、ETL等等。Storm的處理速度驚人:經測試,每個節點每秒鐘可以處理100萬個數據元組。

3.Mahout

Mahout目的是"為快速創建可擴展、高性能的機器學習應用程式而打造一個環境",主要特點是為可伸縮的算法提供可擴展環境、面向Scala/Spark/H2O/Flink的新穎算法、Samsara(類似R的矢量數學環境),它還包括了用於在MapReduce上進行數據挖掘的眾多算法。

4.Pentaho

Pentaho是世界上最流行的開源商務智能軟體,以工作流為核心的、強調面向解決方案而非工具組件的、基於Java平臺的BI套件。包括一個Web Server平臺和幾個工具軟體:報表、分析、圖表、數據集成、數據挖掘等,可以說包括了商務智能的方方面面。Pentaho的工具可以連接到NoSQL資料庫。大數據開發需了解其使用方法。

六、查詢應用類工具

1.Avro與Protobuf

Avro與Protobuf均是數據序列化系統,可以提供豐富的數據結構類型,十分適合做數據存儲,還可進行不同語言之間相互通信的數據交換格式,學習大數據,需掌握其具體用法。

2.Phoenix

Phoenix是用Java編寫的基於JDBC API操作HBase的開源SQL引擎,其具有動態列、散列加載、查詢伺服器、追蹤、事務、用戶自定義函數、二級索引、命名空間映射、數據收集、時間戳列、分頁查詢、跳躍查詢、視圖以及多租戶的特性,大數據開發需掌握其原理和使用方法。

3.Kylin

Kylin是一個開源的分布式分析引擎,提供了基於Hadoop的超大型數據集(TB/PB級別)的SQL接口以及多維度的OLAP分布式聯機分析。最初由eBay開發並貢獻至開源社區。它能在亞秒內查詢巨大的Hive表。

4.Zeppelin

Zeppelin是一個提供交互數據分析且基於Web的筆記本。方便你做出可數據驅動的、可交互且可協作的精美文檔,並且支持多種語言,包括 Scala(使用 Apache Spark)、Python(Apache Spark)、SparkSQL、 Hive、 Markdown、Shell等。

5.ElasticSearch

ElasticSearch是一個基於Lucene的搜索伺服器。它提供了一個分布式、支持多用戶的全文搜尋引擎,基於RESTful Web接口。ElasticSearch是用Java開發的,並作為Apache許可條款下的開放源碼發布,是當前流行的企業級搜尋引擎。設計用於雲計算中,能夠達到實時搜索、穩定、可靠、快速、安裝使用方便。

6.Solr

Solr基於Apache Lucene,是一種高度可靠、高度擴展的企業搜索平臺, 是一款非常優秀的全文搜尋引擎。知名用戶包括eHarmony、西爾斯、StubHub、Zappos、百思買、AT&T、Instagram、Netflix、彭博社和Travelocity。大數據開發需了解其基本原理和使用方法。

七、數據管理類工具

1.Azkaban

Azkaban是由linked開源的一個批量工作流任務調度器,它是由三個部分組成:Azkaban Web Server(管理伺服器)、Azkaban Executor Server(執行管理器)和MySQL(關係資料庫),可用於在一個工作流內以一個特定的順序運行一組工作和流程,可以利用Azkaban來完成大數據的任務調度,大數據開發需掌握Azkaban的相關配置及語法規則。

2.Mesos

Mesos 是由加州大學伯克利分校的AMPLab首先開發的一款開源集群管理軟體,支持Hadoop、ElasticSearch、Spark、Storm 和Kafka等架構。對數據中心而言它就像一個單一的資源池,從物理或虛擬機器中抽離了CPU、內存、存儲以及其它計算資源,很容易建立和有效運行具備容錯性和彈性的分布式系統。

3.Sentry

Sentry 是一個開源的實時錯誤報告工具,支持 Web 前後端、移動應用以及遊戲,支持 Python、OC、Java、Go、Node、Django、RoR 等主流程式語言和框架 ,還提供了 GitHub、Slack、Trello 等常見開發工具的集成。使用Sentry對數據安全管理很有幫助。

八、運維監控類工具

Flume是一款高可用、高可靠、分布式的海量日誌採集、聚合和傳輸的系統,Flume支持在日誌系統中定製各類數據發送方,用於收集數據;同時,Flume提供對數據進行簡單處理,並寫到各種數據接受方(可定製)的能力。大數據開發需掌握其安裝、配置以及相關使用方法。

【責任編輯:

華軒

TEL:(010)68476606】

點讚 0

相關焦點

  • Top 7大開源數據可視化分析工具!
    Top 7大開源數據可視化分析工具! Top 7大開源數據可視化分析工具!關鍵詞: 開源 數據   目前,我們可以在市場上找到很多用於網絡分析和數據可視化的開源工具,例如NetworkX,R和Gephi中的iGraph包等。
  • 1小時搞定BI數據可視化——Metabase開源大數據BI工具簡介
    任何一個企業,其都少不了數據報表,而很多企業都是以Excel的形式存儲企業的數據,很多時候企業發生的問題便這樣沉默在了數據的海洋之中
  • 大數據分析BI工具有哪些?
    隨著網絡技術的進步,數據分析逐漸成為了一個重要的工具,同時也是一個對數據進行詳細研究和概括總結的過程。下面給大家推薦幾款主流的大數據分析BI工具,幫助用戶分析生活、工作中遇到的問題!一、TableauTableau是目前市面上較為成功的BI工具。產品既有針對性,又有普適性。拖放式界面,操作簡單。
  • 好用的數據可視化工具都有哪些?
    大數據、數據分析的興起和火爆,也帶動了數據可視化的廣泛應用。說起數據分析和可視化的關係,就好比你為一堆散亂的拼圖寫了一份說明,告訴他這個數據是什麼樣子,代表什麼。可以說,數據可視化雖然不是必不可少的,但卻是可以加快效率,為報告錦上添花的。
  • 21 個必須知道的機器學習開源工具!
    譯者 | 劉靜,責編 | 郭芮出品 | CSDN(ID:CSDNnews)以下為譯文:你肯定已經了解流行的開源工具
  • 20大數據可視化工具測評,一定有你不知道的「寶藏」工具
    PLoB | 來源如今學習應用數據可視化的渠道有很多,你可以跟蹤一些專家博客,但更重要的一點是實踐/實操,你必須對目前可用的數據可視化工具有個大致了解。以下是Netmagzine列舉的二十大數據可視化工具,無論你是準備製作簡單的圖表還是複雜的圖譜或者信息圖,這些工具都能滿足你的需要。
  • 有哪些大數據處理工具?
    這裡面大部分是商業軟體,而對於絕大多數網際網路公司,中間綠色的開源產品可能大家接觸的更多一些,而這些產品裡,絕大多數都屬於Apache基金會。Kylin提供了前端平臺,使用者可以在該平臺上去定義自己的數據維度,Kylin會定時完整分析所需數據的預計算,形成多個Cube,並將之保存在HBase中,所以部署Kylin的時候需要HBase環境的支持。在數據與計算的時候,對其所在設備的資源消耗也比較大。
  • 8個用於數據挖掘的優秀開源工具
    8個用於數據挖掘的優秀開源工具 很多的數據科學家和機器學習工程師都有其熟悉的數據挖掘工具,但市場上也不乏許多開源的數據挖掘工具。數據挖掘是從大量數據中提取隱藏的或未知,但可能有用信息的過程。這些數據最終會被加上標籤,用於模型的訓練。很多的數據科學家和機器學習工程師都有其熟悉的數據挖掘工具,但市場上也不乏許多開源的數據挖掘工具。Apache MahoutApache Mahout是流行的分布式線性代數框架。
  • 20個免費和開源數據可視化工具
    1.Candela如果您了解JavaScript,那麼您可以使用此開源工具進行豐富的數據可視化。Candela是一個開源的可互操作網絡可視化組件。6.LeafletLeaflet是一個開源的JavaScript庫,允許您製作適合行動裝置的交互式地圖。該工具有很多插件可用於添加功能,並可在各種桌面和移動平臺上正常運行。7.
  • 開源數據可視化工具資源整合
  • 一網打盡13款開源Java大數據工具,從理論到實踐的剖析
    大數據幾乎已成為所有商業領域共有的最新趨勢,然而大數據究竟是什麼?是噱頭、泡沫,又或是真如傳言一樣的重要。事實上,大數據是個非常簡單的術語——就像它所說的一樣,是非常大的數據集。那麼究竟有大多?真實的答案就是「如你所想的那麼大」!那麼為什麼會產生如此之大的數據集?
  • 8個用於數據挖掘的最佳開源工具
    這些數據最終會被加上標籤,用於模型的訓練。很多的數據科學家和機器學習工程師都有其熟悉的數據挖掘工具,但市場上也不乏許多開源的數據挖掘工具。Apache MahoutApache Mahout是流行的分布式線性代數框架。該框架是具有數學表達能力的Scala DSL,能夠讓統計學家和數據科學家以更快的方式實現其算法。
  • 55 個實用的大數據可視化分析工具
    一款好的工具可以讓你事半功倍,尤其是在大數據時代,更需要強有力的工具通過使數據有意義的方式實現數據可視化,還有數據的可交互性;我們還需要跨學科的團隊,而不是單個數據科學家、設計師或數據分析員;我們更需要重新思考我們所知道的數據可視化,圖表和圖形還只能在一個或兩個維度上傳遞信息, 那麼他們怎樣才能與其他維度融合到一起深入挖掘大數據呢?此時就需要倚仗大數據可視化(BDV)工具。
  • 大數據分析工具大匯總
    它可以收集和處理來自不同數據源的數據,允許開發者編寫可處理實時信息的應用程式,來源網站click-streams、營銷和財務信息、製造工具和社交媒體,和操作日誌和計量數據。DataTorrent:DataTorrent是實時流媒體平臺,可使企業執行數據處理或轉換結構化與非結構化數據、實時數據流到數據中心。該產品主要利用Hadoop2.0和YARN技術。
  • 25 個常見的數據工具整理
    ;企業家在推介風投和銷售產品時都傾向於講「大故事」;這種理解誤區對試圖集中精力的工具製造者很不利,對試圖評估市場的投資者不利,尤其對於試圖利用最佳新工具來構建具有生產力的數據堆棧的數據科學家和工程師而言,尤其不利。
  • 學習數據分析,這些超好用的數據分析工具你必須知道!
    這款工具常由新一代數據科學家使用,因為其屬於一款業務開發平臺且能夠快速完成大規模數據的理解與分析。 Rapidminer 作為另一款大數據處理必要工具,Rapidminer屬於一套開源數據科學平臺,且通過可視化編程機制發揮作用。
  • 八款卓越開源工具幫你搞定數據可視化難題
    八款卓越開源工具幫你搞定數據可視化難題 數據可視化是指將表格或者空間數據轉化為人類友好且直觀可視形式的處理機制。目前市面上的多款開源工具能夠幫助大家創建出實用且信息豐富的圖形成果。在今天的文章中,我們將一同了解其中八種開源數據可視化工具。
  • Java開發人員使用哪些大數據工具?
    你可以試著從幾大方面了解MongoDB,如實時監控MongoDB工具、內存使用量和頁面錯誤、連接數、資料庫操作、複製集等。2、Elasticsearch ——為雲構建的分布式RESTful搜尋引擎。ElasticSearch是基於Lucene的搜索伺服器。它提供了分布式多用戶能力的全文搜尋引擎,基於RESTful web接口。
  • 21個必知的機器學習開源工具,涵蓋5大領域
    · 每個開源工具都為數據科學家處理資料庫提供了不同角度。· 本文將重點介紹五種機器學習的工具——面向非程式設計師的工具(Ludwig、Orange、KNIME)、模型部署(CoreML、Tensorflow.js)、大數據(Hadoop、Spark)、計算機視覺(SimpleCV)、NLP(StanfordNLP)、音頻和強化學習(OpenAI Gym)。
  • 數據工匠 工欲善其事必先利其器(大數據分析工具集)
    如果你是大數據的新手,資料庫可能不是最好的開始。它們相對複雜,並且需要一定量的編碼知識來操作(與下面提到的許多其他工具不同)。然而,如果你真的想在大數據中工作,那麼知道資料庫的基礎知識並且能夠智能地談論它們是必須的。