溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

大數(shù)據(jù)平臺最常用的30款開源工具

發(fā)布時間:2020-07-06 08:12:00 來源:網(wǎng)絡(luò) 閱讀:2031 作者:a大數(shù)據(jù) 欄目:大數(shù)據(jù)

大數(shù)據(jù)平臺是對海量結(jié)構(gòu)化、非結(jié)構(gòu)化、半機構(gòu)化數(shù)據(jù)進行采集、存儲、計算、統(tǒng)計、分析處理的一系列技術(shù)平臺。大數(shù)據(jù)平臺處理的數(shù)據(jù)量通常是TB級,甚至是PB或EB級的數(shù)據(jù),這是傳統(tǒng)數(shù)據(jù)倉庫工具無法處理完成的,其涉及的技術(shù)有分布式計算、高并發(fā)處理、高可用處理、集群、實時性計算等,匯集了當前IT領(lǐng)域熱門流行的各類技術(shù)。

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

▲ 大數(shù)據(jù)平臺常見的一些工具匯集

主要包含:語言工具類、數(shù)據(jù)采集工具、ETL工具、數(shù)據(jù)存儲工具、分析計算、查詢應(yīng)用及運維監(jiān)控工具等。以下對各工具作為簡要的說明。

一、語言工具類

1、Java編程技術(shù)

Java編程技術(shù)是目前使用最為廣泛的網(wǎng)絡(luò)編程語言之一,是大數(shù)據(jù)學習的基礎(chǔ)。

Java具有簡單性、面向?qū)ο?、分布式、健壯性、安全性、平臺獨立與可移植性、多線程、動態(tài)性等特點,擁有極高的跨平臺能力,是一種強類型語言??梢跃帉懽烂鎽?yīng)用程序、Web應(yīng)用程序、分布式系統(tǒng)和嵌入式系統(tǒng)應(yīng)用程序等,是大數(shù)據(jù)工程師最喜歡的編程工具。

最重要的是,Hadoop以及其他大數(shù)據(jù)處理技術(shù)很多都是用Java。因此,想學好大數(shù)據(jù),掌握Java基礎(chǔ)是必不可少的。

在這里還是要推薦下我自己建的大數(shù)據(jù)學習交流群:251956502,群里都是學大數(shù)據(jù)開發(fā)的,如果你正在學習大數(shù)據(jù) ,小編歡迎你加入,大家都是軟件開發(fā)黨,不定期分享干貨(只有大數(shù)據(jù)軟件開發(fā)相關(guān)的),包括我自己整理的一份最新的大數(shù)據(jù)進階資料和高級開發(fā)教程,歡迎進階中和進想深入大數(shù)據(jù)的小伙伴加入。

2、Linux命令

許多大數(shù)據(jù)開發(fā)通常是在Linux環(huán)境下進行的,相比Linux操作系統(tǒng),Windows操作系統(tǒng)是封閉的操作系統(tǒng),開源的大數(shù)據(jù)軟件很受限制。因此,想從事大數(shù)據(jù)開發(fā)相關(guān)工作,還需掌握Linux基礎(chǔ)操作命令。

3、Scala

Scala是一門多范式的編程語言,一方面繼承了多種語言中的優(yōu)秀特性,一方面又沒有拋棄 Java 這個強大的平臺。大數(shù)據(jù)開發(fā)重要框架Spark就是采用Scala語言設(shè)計的,想要學好Spark框架,擁有Scala基礎(chǔ)是必不可少的。因此,大數(shù)據(jù)開發(fā)需掌握Scala編程基礎(chǔ)知識!

4、Python與數(shù)據(jù)分析

Python是面向?qū)ο蟮木幊陶Z言,擁有豐富的庫,使用簡單,應(yīng)用廣泛,在大數(shù)據(jù)領(lǐng)域也有所應(yīng)用,主要可用于數(shù)據(jù)采集、數(shù)據(jù)分析以及數(shù)據(jù)可視化等。因此,大數(shù)據(jù)開發(fā)需學習一定的Python知識。

二、 數(shù)據(jù)采集類工具

1、Nutch

Nutch是一個開源Java實現(xiàn)的搜索引擎。它提供了我們運行自己的搜索引擎所需的全部工具,包括全文搜索和Web爬蟲。

2、Scrapy

Scrapy是一個為了爬取網(wǎng)站數(shù)據(jù)、提取結(jié)構(gòu)性數(shù)據(jù)而編寫的應(yīng)用框架,可以應(yīng)用在數(shù)據(jù)挖掘,信息處理或存儲歷史數(shù)據(jù)等一系列的程序中。大數(shù)據(jù)的采集需要掌握Nutch與Scrapy爬蟲技術(shù)。

三、 ETL工具

1、Sqoop

Sqoop是一個用于在Hadoop和關(guān)系數(shù)據(jù)庫服務(wù)器之間傳輸數(shù)據(jù)的工具。它用于從關(guān)系數(shù)據(jù)庫(如MySQL,Oracle)導入數(shù)據(jù)到Hadoop HDFS,并從Hadoop文件系統(tǒng)導出到關(guān)系數(shù)據(jù)庫,學習使用Sqoop對關(guān)系型數(shù)據(jù)庫數(shù)據(jù)和Hadoop之間的導入有很大的幫助。

2、Kettle

Kettle是一個ETL工具集,它允許你管理來自不同數(shù)據(jù)庫的數(shù)據(jù),通過提供一個圖形化的用戶環(huán)境來描述你想做什么,而不是你想怎么做。作為Pentaho的一個重要組成部分,現(xiàn)在在國內(nèi)項目應(yīng)用上逐漸增多,其數(shù)據(jù)抽取高效穩(wěn)定。

四、 數(shù)據(jù)存儲類工具

1、Hadoop分布式存儲與計算

Hadoop實現(xiàn)了一個分布式文件系統(tǒng)(Hadoop Distributed File System),簡稱HDFS。Hadoop的框架最核心的設(shè)計就是:HDFS和MapReduce。HDFS為海量的數(shù)據(jù)提供了存儲,MapReduce則為海量的數(shù)據(jù)提供了計算,因此,需要重點掌握。

除此之外,還需要掌握Hadoop集群、Hadoop集群管理、YARN以及Hadoop高級管理等相關(guān)技術(shù)與操作!

2、Hive

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

3、ZooKeeper

ZooKeeper是一個開源的分布式協(xié)調(diào)服務(wù),是Hadoop和HBase的重要組件,是一個為分布式應(yīng)用提供一致性服務(wù)的軟件,提供的功能包括:配置維護、域名服務(wù)、分布式同步、組件服務(wù)等。在大數(shù)據(jù)開發(fā)中要掌握ZooKeeper的常用命令及功能的實現(xiàn)方法。

4、HBase

HBase是一個分布式的、面向列的開源數(shù)據(jù)庫,它不同于一般的關(guān)系數(shù)據(jù)庫,更適合于非結(jié)構(gòu)化數(shù)據(jù)存儲的數(shù)據(jù)庫,是一個高可靠性、高性能、面向列、可伸縮的分布式存儲系統(tǒng),大數(shù)據(jù)開發(fā)需掌握HBase基礎(chǔ)知識、應(yīng)用、架構(gòu)以及高級用法等。

5、Redis

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

6、Kafka

Kafka是一種高吞吐量的分布式發(fā)布訂閱消息系統(tǒng),其在大數(shù)據(jù)開發(fā)應(yīng)用上的目的是通過Hadoop的并行加載機制來統(tǒng)一線上和離線的消息處理,也是為了通過集群來提供實時的消息。大數(shù)據(jù)開發(fā)需掌握Kafka架構(gòu)原理及各組件的作用和使用方法及相關(guān)功能的實現(xiàn)。

7、Neo4j

Neo4j是一個高性能的NoSQL圖形數(shù)據(jù)庫,具有處理百萬和T級節(jié)點和邊的大尺度處理網(wǎng)絡(luò)分析能力。它是一個嵌入式的、基于磁盤的、具備完全的事務(wù)特性的Java持久化引擎,但是它將結(jié)構(gòu)化數(shù)據(jù)存儲在網(wǎng)絡(luò)(從數(shù)學角度叫做圖)上而不是表中。Neo4j因其嵌入式、高性能、輕量級等優(yōu)勢,越來越受到關(guān)注。

8、Cassandra

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

9、SSM

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

五、 分析計算類工具

1、Spark

Spark是專為大規(guī)模數(shù)據(jù)處理而設(shè)計的快速通用的計算引擎,其提供了一個全面、統(tǒng)一的框架用于管理各種不同性質(zhì)的數(shù)據(jù)集和數(shù)據(jù)源的大數(shù)據(jù)處理的需求,大數(shù)據(jù)開發(fā)需掌握Spark基礎(chǔ)、SparkJob、Spark RDD部署與資源分配、Spark Shuffle、Spark內(nèi)存管理、Spark廣播變量、Spark SQL、Spark Streaming以及Spark ML等相關(guān)知識。

2、Storm

Storm 是自由的開源軟件,一個分布式的、容錯的實時計算系統(tǒng),可以非??煽康奶幚睚嫶蟮臄?shù)據(jù)流,用于處理Hadoop的批量數(shù)據(jù)。Storm支持許多種編程語言,并且有許多應(yīng)用領(lǐng)域:實時分析、在線機器學習、不停頓的計算、分布式RPC(遠過程調(diào)用協(xié)議,一種通過網(wǎng)路從遠程計算機程序上請求服務(wù))、ETL等等。

Storm的處理速度驚人:經(jīng)測試,每個節(jié)點每秒鐘可以處理100萬個數(shù)據(jù)元組。

3、Mahout

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

4、Pentaho

Pentaho是世界上最流行的開源商務(wù)智能軟件,以工作流為核心的、強調(diào)面向解決方案而非工具組件的、基于Java平臺的BI套件。包括一個Web Server平臺和幾個工具軟件:報表、分析、圖表、數(shù)據(jù)集成、數(shù)據(jù)挖掘等,可以說包括了商務(wù)智能的方方面面。

Pentaho的工具可以連接到NoSQL數(shù)據(jù)庫。大數(shù)據(jù)開發(fā)需了解其使用方法。

六、 查詢應(yīng)用類工具

1、Avro與Protobuf

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

2、Phoenix

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

3、Kylin

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

4、Zeppelin

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

5、ElasticSearch

ElasticSearch是一個基于Lucene的搜索服務(wù)器。它提供了一個分布式、支持多用戶的全文搜索引擎,基于RESTful Web接口。ElasticSearch是用Java開發(fā)的,并作為Apache許可條款下的開放源碼發(fā)布,是當前流行的企業(yè)級搜索引擎。設(shè)計用于云計算中,能夠達到實時搜索、穩(wěn)定、可靠、快速、安裝使用方便。

6、Solr

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

七、 數(shù)據(jù)管理類工具

1、Azkaban

Azkaban是由linked開源的一個批量工作流任務(wù)調(diào)度器,它是由三個部分組成:Azkaban Web Server(管理服務(wù)器)、Azkaban Executor Server(執(zhí)行管理器)和MySQL(關(guān)系數(shù)據(jù)庫),可用于在一個工作流內(nèi)以一個特定的順序運行一組工作和流程,可以利用Azkaban來完成大數(shù)據(jù)的任務(wù)調(diào)度,大數(shù)據(jù)開發(fā)需掌握Azkaban的相關(guān)配置及語法規(guī)則。

2、Mesos

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

3、Sentry

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

八、 運維監(jiān)控類工具

Flume是一款高可用、高可靠、分布式的海量日志采集、聚合和傳輸?shù)南到y(tǒng),F(xiàn)lume支持在日志系統(tǒng)中定制各類數(shù)據(jù)發(fā)送方,用于收集數(shù)據(jù);同時,F(xiàn)lume提供對數(shù)據(jù)進行簡單處理,并寫到各種數(shù)據(jù)接受方(可定制)的能力。大數(shù)據(jù)開發(fā)需掌握其安裝、配置以及相關(guān)使用方法。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI