大數(shù)據(jù)平臺(tái)常見開源工具集錦(強(qiáng)烈推薦收藏)
微笑數(shù)據(jù)工程師
昨天 09:51
引言
大數(shù)據(jù)平臺(tái)是對(duì)海量結(jié)構(gòu)化嘁酿、非結(jié)構(gòu)化即碗、半機(jī)構(gòu)化數(shù)據(jù)進(jìn)行采集、存儲(chǔ)搞疗、計(jì)算嗓蘑、統(tǒng)計(jì)、分析處理的一系列技術(shù)平臺(tái)匿乃。大數(shù)據(jù)平臺(tái)處理的數(shù)據(jù)量通常是TB級(jí)桩皿,甚至是PB或EB級(jí)的數(shù)據(jù),這是傳統(tǒng)數(shù)據(jù)倉庫工具無法處理完成的幢炸,其涉及的技術(shù)有分布式計(jì)算业簿、高并發(fā)處理、高可用處理阳懂、集群、實(shí)時(shí)性計(jì)算等柜思,匯集了當(dāng)前IT領(lǐng)域熱門流行的各類技術(shù)岩调。
此片文章整理出了大數(shù)據(jù)平臺(tái)常見的一些開源工具,并且依據(jù)其主要功能進(jìn)行分類赡盘,以便大數(shù)據(jù)學(xué)習(xí)者及應(yīng)用者快速查找和參考号枕。
在這里我還是要推薦下我自己建的大數(shù)據(jù)學(xué)習(xí)交流qq裙: 957205962, 裙 里都是學(xué)大數(shù)據(jù)開發(fā)的陨享,如果你正在學(xué)習(xí)大數(shù)據(jù) 葱淳,小編歡迎你加入,大家都是軟件開發(fā)黨抛姑,不定期分享干貨(只有大數(shù)據(jù)開發(fā)相關(guān)的)赞厕,包括我自己整理的一份2018最新的大數(shù)據(jù)進(jìn)階資料和高級(jí)開發(fā)教程,歡迎進(jìn)階中和進(jìn)想深入大數(shù)據(jù)的小伙伴
大數(shù)據(jù)平臺(tái)常見的一些工具匯集
?
主要包含:語言工具類定硝、數(shù)據(jù)采集工具皿桑、ETL工具、數(shù)據(jù)存儲(chǔ)工具、分析計(jì)算诲侮、查詢應(yīng)用及運(yùn)維監(jiān)控工具等镀虐。以下對(duì)各工具作為簡要的說明。
一語言工具類
1
Java編程技術(shù)
Java編程技術(shù)是目前使用最為廣泛的網(wǎng)絡(luò)編程語言之一,是大數(shù)據(jù)學(xué)習(xí)的基礎(chǔ)沟绪。Java具有簡單性刮便、面向?qū)ο蟆⒎植际秸来取⒔研院藓怠踩浴⑵脚_(tái)獨(dú)立與可移植性久信、多線程窖杀、動(dòng)態(tài)性等特點(diǎn),擁有極高的跨平臺(tái)能力裙士,是一種強(qiáng)類型語言入客,可以編寫桌面應(yīng)用程序、Web應(yīng)用程序腿椎、分布式系統(tǒng)和嵌入式系統(tǒng)應(yīng)用程序等桌硫,是大數(shù)據(jù)工程師最喜歡的編程工具,最重要的是啃炸,Hadoop以及其他大數(shù)據(jù)處理技術(shù)很多都是用Java铆隘,因此,想學(xué)好大數(shù)據(jù)南用,掌握J(rèn)ava基礎(chǔ)是必不可少的膀钠。
2
Linux命令
對(duì)于大數(shù)據(jù)開發(fā)通常是在Linux環(huán)境下進(jìn)行的,相比Linux操作系統(tǒng)裹虫,Windows操作系統(tǒng)是封閉的操作系統(tǒng)肿嘲,開源的大數(shù)據(jù)軟件很受限制,因此筑公,想從事大數(shù)據(jù)開發(fā)相關(guān)工作雳窟,還需掌握Linux基礎(chǔ)操作命令。
3
Scala
Scala是一門多范式的編程語言匣屡,一方面吸收繼承了多種語言中的優(yōu)秀特性封救,一方面又沒有拋棄 Java 這個(gè)強(qiáng)大的平臺(tái),大數(shù)據(jù)開發(fā)重要框架Spark是采用Scala語言設(shè)計(jì)的捣作,想要學(xué)好Spark框架誉结,擁有Scala基礎(chǔ)是必不可少的,因此虾宇,大數(shù)據(jù)開發(fā)需掌握Scala編程基礎(chǔ)知識(shí)!
4
Python與數(shù)據(jù)分析
Python是面向?qū)ο蟮木幊陶Z言搓彻,擁有豐富的庫如绸,使用簡單,應(yīng)用廣泛旭贬,在大數(shù)據(jù)領(lǐng)域也有所應(yīng)用怔接,主要可用于數(shù)據(jù)采集、數(shù)據(jù)分析以及數(shù)據(jù)可視化等稀轨,因此扼脐,大數(shù)據(jù)開發(fā)需學(xué)習(xí)一定的Python知識(shí)。
二數(shù)據(jù)采集類工具
1)Nutch是一個(gè)開源Java 實(shí)現(xiàn)的搜索引擎奋刽。它提供了我們運(yùn)行自己的搜索引擎所需的全部工具瓦侮,包括全文搜索和Web爬蟲。
2)Scrapy是一個(gè)為了爬取網(wǎng)站數(shù)據(jù)佣谐,提取結(jié)構(gòu)性數(shù)據(jù)而編寫的應(yīng)用框架肚吏,可以應(yīng)用在數(shù)據(jù)挖掘,信息處理或存儲(chǔ)歷史數(shù)據(jù)等一系列的程序中狭魂。大數(shù)據(jù)的采集需要掌握Nutch與Scrapy爬蟲技術(shù)罚攀。
三ETL工具
1
Sqoop
Sqoop是一個(gè)用于在Hadoop和關(guān)系數(shù)據(jù)庫服務(wù)器之間傳輸數(shù)據(jù)的工具。它用于從關(guān)系數(shù)據(jù)庫(如MySQL雌澄,Oracle)導(dǎo)入數(shù)據(jù)到Hadoop HDFS斋泄,并從Hadoop文件系統(tǒng)導(dǎo)出到關(guān)系數(shù)據(jù)庫,學(xué)習(xí)使用Sqoop對(duì)關(guān)系型數(shù)據(jù)庫數(shù)據(jù)和Hadoop之間的導(dǎo)入有很大的幫助。
2
Kettle
Kettle是一個(gè)ETL工具集镐牺,它允許你管理來自不同數(shù)據(jù)庫的數(shù)據(jù)炫掐,通過提供一個(gè)圖形化的用戶環(huán)境來描述你想做什么,而不是你想怎么做睬涧。作為Pentaho的一個(gè)重要組成部分募胃,現(xiàn)在在國內(nèi)項(xiàng)目應(yīng)用上逐漸增多。其數(shù)據(jù)抽取高效穩(wěn)定畦浓。
四數(shù)據(jù)存儲(chǔ)類工具
1
Hadoop分布式存儲(chǔ)與計(jì)算
Hadoop實(shí)現(xiàn)了一個(gè)分布式文件系統(tǒng)(Hadoop Distributed File System)摔认,簡稱HDFS。Hadoop的框架最核心的設(shè)計(jì)就是:HDFS和MapReduce宅粥。HDFS為海量的數(shù)據(jù)提供了存儲(chǔ),MapReduce則為海量的數(shù)據(jù)提供了計(jì)算电谣,因此秽梅,需要重點(diǎn)掌握,除此之外剿牺,還需要掌握Hadoop集群企垦、Hadoop集群管理、YARN以及Hadoop高級(jí)管理等相關(guān)技術(shù)與操作!
2
Hive
Hive是基于Hadoop的一個(gè)數(shù)據(jù)倉庫工具晒来,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表钞诡,并提供簡單的SQL查詢功能,可以將SQL語句轉(zhuǎn)換為MapReduce任務(wù)進(jìn)行運(yùn)行。相對(duì)于用Java代碼編寫MapReduce來說荧降,Hive的優(yōu)勢(shì)明顯:快速開發(fā)接箫,人員成本低,可擴(kuò)展性(自由擴(kuò)展集群規(guī)模)朵诫,延展性(支持自定義函數(shù))辛友。十分適合數(shù)據(jù)倉庫的統(tǒng)計(jì)分析。對(duì)于Hive需掌握其安裝剪返、應(yīng)用及高級(jí)操作等废累。
3
ZooKeeper
ZooKeeper 是一個(gè)開源的分布式協(xié)調(diào)服務(wù),是Hadoop和HBase的重要組件脱盲,是一個(gè)為分布式應(yīng)用提供一致性服務(wù)的軟件邑滨,提供的功能包括:配置維護(hù)、域名服務(wù)钱反、分布式同步掖看、組件服務(wù)等,在大數(shù)據(jù)開發(fā)中要掌握ZooKeeper的常用命令及功能的實(shí)現(xiàn)方法诈铛。
4
HBase
HBase是一個(gè)分布式的乙各、面向列的開源數(shù)據(jù)庫纯续,它不同于一般的關(guān)系數(shù)據(jù)庫梆暖,更適合于非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)庫,是一個(gè)高可靠性窜司、高性能焕毫、面向列蹲坷、可伸縮的分布式存儲(chǔ)系統(tǒng),大數(shù)據(jù)開發(fā)需掌握HBase基礎(chǔ)知識(shí)邑飒、應(yīng)用循签、架構(gòu)以及高級(jí)用法等。
5
Redis
Redis是一個(gè)Key-Value存儲(chǔ)系統(tǒng)疙咸,其出現(xiàn)很大程度補(bǔ)償了Memcached這類Key/Value存儲(chǔ)的不足县匠,在部分場(chǎng)合可以對(duì)關(guān)系數(shù)據(jù)庫起到很好的補(bǔ)充作用,它提供了Java撒轮,C/C++乞旦,C#,PHP题山,JavaScript兰粉,Perl,Object-C顶瞳,Python玖姑,Ruby愕秫,Erlang等客戶端,使用很方便焰络,大數(shù)據(jù)開發(fā)需掌握Redis的安裝戴甩、配置及相關(guān)使用方法。
6
Kafka
Kafka是一種高吞吐量的分布式發(fā)布訂閱消息系統(tǒng)舔琅,其在大數(shù)據(jù)開發(fā)應(yīng)用上的目的是通過Hadoop的并行加載機(jī)制來統(tǒng)一線上和離線的消息處理等恐,也是為了通過集群來提供實(shí)時(shí)的消息。大數(shù)據(jù)開發(fā)需掌握Kafka架構(gòu)原理及各組件的作用和使用方法及相關(guān)功能的實(shí)現(xiàn)备蚓。
7
Neo4j
Neo4j是一個(gè)高性能的,NoSQL圖形數(shù)據(jù)庫课蔬,具有處理百萬和T級(jí)節(jié)點(diǎn)和邊的大尺度處理網(wǎng)絡(luò)分析能力。它是一個(gè)嵌入式的郊尝、基于磁盤的二跋、具備完全的事務(wù)特性的Java持久化引擎,但是它將結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)在網(wǎng)絡(luò)(從數(shù)學(xué)角度叫做圖)上而不是表中流昏。Neo4j因其嵌入式扎即、高性能、輕量級(jí)等優(yōu)勢(shì)况凉,越來越受到關(guān)注谚鄙。
8
Cassandra
在這里我還是要推薦下我自己建的大數(shù)據(jù)學(xué)習(xí)交流qq裙: 957205962, 裙 里都是學(xué)大數(shù)據(jù)開發(fā)的刁绒,如果你正在學(xué)習(xí)大數(shù)據(jù) 闷营,小編歡迎你加入,大家都是軟件開發(fā)黨知市,不定期分享干貨(只有大數(shù)據(jù)開發(fā)相關(guān)的)傻盟,包括我自己整理的一份2018最新的大數(shù)據(jù)進(jìn)階資料和高級(jí)開發(fā)教程,歡迎進(jìn)階中和進(jìn)想深入大數(shù)據(jù)的小伙伴
Cassandra是一個(gè)混合型的非關(guān)系的數(shù)據(jù)庫嫂丙,類似于Google的BigTable娘赴,其主要功能比Dynamo(分布式的Key-Value存儲(chǔ)系統(tǒng))更豐富。這種NoSQL數(shù)據(jù)庫最初由Facebook開發(fā)跟啤,現(xiàn)已被1500多家企業(yè)組織使用诽表,包括蘋果、歐洲原子核研究組織(CERN)隅肥、康卡斯特关顷、電子港灣、GitHub武福、GoDaddy、Hulu痘番、Instagram捉片、Intuit平痰、Netflix、Reddit等伍纫。是一種流行的分布式結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)方案宗雇。
9
SSM
SSM框架是由Spring、Spring MVC莹规、MyBatis三個(gè)開源框架整合而成赔蒲,常作為數(shù)據(jù)源較簡單的Web項(xiàng)目的框架。大數(shù)據(jù)開發(fā)需分別掌握Spring良漱、Spring MVC舞虱、MyBatis三種框架的同時(shí),再使用SSM進(jìn)行整合操作母市。
五分析計(jì)算類工具
1
Spark
Spark是專為大規(guī)模數(shù)據(jù)處理而設(shè)計(jì)的快速通用的計(jì)算引擎矾兜,其提供了一個(gè)全面、統(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)知識(shí)。
2
Storm
Storm 是自由的開源軟件嫉髓,一個(gè)分布式的观腊、容錯(cuò)的實(shí)時(shí)計(jì)算系統(tǒng),可以非乘阈校可靠的處理龐大的數(shù)據(jù)流梧油,用于處理Hadoop的批量數(shù)據(jù)。Storm支持許多種編程語言州邢,并且有許多應(yīng)用領(lǐng)域:實(shí)時(shí)分析儡陨、在線機(jī)器學(xué)習(xí)、不停頓的計(jì)算量淌、分布式RPC(遠(yuǎn)過程調(diào)用協(xié)議骗村,一種通過網(wǎng)路從遠(yuǎn)程計(jì)算機(jī)程序上請(qǐng)求服務(wù))、ETL等等呀枢。Storm的處理速度驚人:經(jīng)測(cè)試胚股,每個(gè)節(jié)點(diǎn)每秒鐘可以處理100萬個(gè)數(shù)據(jù)元組。
3
Mahout
Mahout目的是“為快速創(chuàng)建可擴(kuò)展裙秋、高性能的機(jī)器學(xué)習(xí)應(yīng)用程序而打造一個(gè)環(huán)境”琅拌,主要特點(diǎn)是為可伸縮的算法提供可擴(kuò)展環(huán)境缨伊、面向Scala/Spark/H2O/Flink的新穎算法、Samsara(類似R的矢量數(shù)學(xué)環(huán)境)进宝,它還包括了用于在MapReduce上進(jìn)行數(shù)據(jù)挖掘的眾多算法刻坊。
4
Pentaho
Pentaho是世界上最流行的開源商務(wù)智能軟件,以工作流為核心的党晋、強(qiáng)調(diào)面向解決方案而非工具組件的谭胚、基于Java平臺(tái)的BI套件。包括一個(gè)Web Server平臺(tái)和幾個(gè)工具軟件:報(bào)表未玻、分析灾而、圖表、數(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ù)存儲(chǔ)余爆,還可進(jìn)行不同語言之間相互通信的數(shù)據(jù)交換格式,學(xué)習(xí)大數(shù)據(jù)夸盟,需掌握其具體用法蛾方。
2
Phoenix
Phoenix是用Java編寫的基于JDBC API操作HBase的開源SQL引擎,其具有動(dòng)態(tài)列上陕、散列加載桩砰、查詢服務(wù)器、追蹤释簿、事務(wù)亚隅、用戶自定義函數(shù)、二級(jí)索引庶溶、命名空間映射煮纵、數(shù)據(jù)收集、時(shí)間戳列偏螺、分頁查詢行疏、跳躍查詢、視圖以及多租戶的特性套像,大數(shù)據(jù)開發(fā)需掌握其原理和使用方法酿联。
3
Kylin
Kylin是一個(gè)開源的分布式分析引擎,提供了基于Hadoop的超大型數(shù)據(jù)集(TB/PB級(jí)別)的SQL接口以及多維度的OLAP分布式聯(lián)機(jī)分析。最初由eBay開發(fā)并貢獻(xiàn)至開源社區(qū)贞让。它能在亞秒內(nèi)查詢巨大的Hive表采幌。
4
Zeppelin
Zeppelin是一個(gè)提供交互數(shù)據(jù)分析且基于Web的筆記本。方便你做出可數(shù)據(jù)驅(qū)動(dòng)的震桶、可交互且可協(xié)作的精美文檔,并且支持多種語言征绎,包括 Scala(使用 Apache Spark)蹲姐、Python(Apache Spark)、SparkSQL人柿、 Hive柴墩、 Markdown、Shell等凫岖。
5
ElasticSearch
ElasticSearch是一個(gè)基于Lucene的搜索服務(wù)器江咳。它提供了一個(gè)分布式、支持多用戶的全文搜索引擎哥放,基于RESTful Web接口歼指。ElasticSearch是用Java開發(fā)的,并作為Apache許可條款下的開放源碼發(fā)布甥雕,是當(dāng)前流行的企業(yè)級(jí)搜索引擎踩身。設(shè)計(jì)用于云計(jì)算中,能夠達(dá)到實(shí)時(shí)搜索社露、穩(wěn)定挟阻、可靠、快速峭弟、安裝使用方便附鸽。
6
Solr
Solr基于Apache Lucene,是一種高度可靠瞒瘸、高度擴(kuò)展的企業(yè)搜索平臺(tái), 是一款非常優(yōu)秀的全文搜索引擎坷备。知名用戶包括eHarmony、西爾斯挨务、StubHub击你、Zappos、百思買谎柄、AT&T丁侄、Instagram、Netflix朝巫、彭博社和Travelocity鸿摇。大數(shù)據(jù)開發(fā)需了解其基本原理和使用方法。
七數(shù)據(jù)管理類工具
1
Azkaban
Azkaban是由linked開源的一個(gè)批量工作流任務(wù)調(diào)度器劈猿,它是由三個(gè)部分組成:Azkaban Web Server(管理服務(wù)器)拙吉、Azkaban Executor Server(執(zhí)行管理器)和MySQL(關(guān)系數(shù)據(jù)庫)潮孽,可用于在一個(gè)工作流內(nèi)以一個(gè)特定的順序運(yùn)行一組工作和流程,可以利用Azkaban來完成大數(shù)據(jù)的任務(wù)調(diào)度筷黔,大數(shù)據(jù)開發(fā)需掌握Azkaban的相關(guān)配置及語法規(guī)則往史。
2
Mesos
Mesos 是由加州大學(xué)伯克利分校的AMPLab首先開發(fā)的一款開源集群管理軟件,支持Hadoop佛舱、ElasticSearch椎例、Spark、Storm 和Kafka等架構(gòu)请祖。對(duì)數(shù)據(jù)中心而言它就像一個(gè)單一的資源池订歪,從物理或虛擬機(jī)器中抽離了CPU、內(nèi)存肆捕、存儲(chǔ)以及其它計(jì)算資源刷晋,很容易建立和有效運(yùn)行具備容錯(cuò)性和彈性的分布式系統(tǒng)。
3
Sentry
Sentry 是一個(gè)開源的實(shí)時(shí)錯(cuò)誤報(bào)告工具慎陵,支持 Web 前后端眼虱、移動(dòng)應(yīng)用以及游戲,支持 Python荆姆、OC蒙幻、Java、Go胆筒、Node邮破、Django、RoR 等主流編程語言和框架 仆救,還提供了 GitHub抒和、Slack、Trello 等常見開發(fā)工具的集成彤蔽。使用Sentry對(duì)數(shù)據(jù)安全管理很有幫助摧莽。
八運(yùn)維監(jiān)控類工具
Flume是一款高可用、高可靠顿痪、分布式的海量日志采集镊辕、聚合和傳輸?shù)南到y(tǒng),F(xiàn)lume支持在日志系統(tǒng)中定制各類數(shù)據(jù)發(fā)送方蚁袭,用于收集數(shù)據(jù);同時(shí)征懈,F(xiàn)lume提供對(duì)數(shù)據(jù)進(jìn)行簡單處理,并寫到各種數(shù)據(jù)接受方(可定制)的能力揩悄。大數(shù)據(jù)開發(fā)需掌握其安裝卖哎、配置以及相關(guān)使用方法。
關(guān)注微信公眾號(hào):程序員交流互動(dòng)平臺(tái)!獲取資料學(xué)習(xí)亏娜!
相關(guān)搜索
大數(shù)據(jù)是什么意思
慘烈車禍集錦動(dòng)圖
大數(shù)據(jù)分析
大數(shù)據(jù)建模
大數(shù)據(jù)技術(shù)
電焊怎么看鐵水