2021-02-20 分類: 網(wǎng)站建設(shè)
引言
大數(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ù)倉(cāng)庫(kù)工具無(wú)法處理完成的,其涉及的技術(shù)有分布式計(jì)算、高并發(fā)處理、高可用處理、集群、實(shí)時(shí)性計(jì)算等,匯集了當(dāng)前IT領(lǐng)域熱門流行的各類技術(shù)。
本文整理了大數(shù)據(jù)平臺(tái)常見(jiàn)的一些開(kāi)源工具,并且依據(jù)其主要功能進(jìn)行分類,以便大數(shù)據(jù)學(xué)習(xí)者及應(yīng)用者快速查找和參考。
大數(shù)據(jù)平臺(tái)常見(jiàn)的一些工具匯集
主要包含:語(yǔ)言工具類、數(shù)據(jù)采集工具、ETL工具、數(shù)據(jù)存儲(chǔ)工具、分析計(jì)算、查詢應(yīng)用及運(yùn)維監(jiān)控工具等。以下對(duì)各工具作為簡(jiǎn)要的說(shuō)明。
一、語(yǔ)言工具類
1.Java編程技術(shù)
Java編程技術(shù)是目前使用最為廣泛的網(wǎng)絡(luò)編程語(yǔ)言之一,是大數(shù)據(jù)學(xué)習(xí)的基礎(chǔ)。Java具有簡(jiǎn)單性、面向?qū)ο?、分布式、健壯性、安全性、平臺(tái)獨(dú)立與可移植性、多線程、動(dòng)態(tài)性等特點(diǎn),擁有極高的跨平臺(tái)能力,是一種強(qiáng)類型語(yǔ)言,可以編寫桌面應(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ù)開(kāi)發(fā)通常是在Linux環(huán)境下進(jìn)行的,相比Linux操作系統(tǒng),Windows操作系統(tǒng)是封閉的操作系統(tǒng),開(kāi)源的大數(shù)據(jù)軟件很受限制,因此,想從事大數(shù)據(jù)開(kāi)發(fā)相關(guān)工作,還需掌握Linux基礎(chǔ)操作命令。
3.Scala
Scala是一門多范式的編程語(yǔ)言,一方面吸收繼承了多種語(yǔ)言中的優(yōu)秀特性,一方面又沒(méi)有拋棄 Java 這個(gè)強(qiáng)大的平臺(tái),大數(shù)據(jù)開(kāi)發(fā)重要框架Spark是采用Scala語(yǔ)言設(shè)計(jì)的,想要學(xué)好Spark框架,擁有Scala基礎(chǔ)是必不可少的,因此,大數(shù)據(jù)開(kāi)發(fā)需掌握Scala編程基礎(chǔ)知識(shí)!
4.Python與數(shù)據(jù)分析
Python是面向?qū)ο蟮木幊陶Z(yǔ)言,擁有豐富的庫(kù),使用簡(jiǎn)單,應(yīng)用廣泛,在大數(shù)據(jù)領(lǐng)域也有所應(yīng)用,主要可用于數(shù)據(jù)采集、數(shù)據(jù)分析以及數(shù)據(jù)可視化等,因此,大數(shù)據(jù)開(kāi)發(fā)需學(xué)習(xí)一定的Python知識(shí)。
二、數(shù)據(jù)采集類工具
三、ETL工具
1.Sqoop
Sqoop是一個(gè)用于在Hadoop和關(guān)系數(shù)據(jù)庫(kù)服務(wù)器之間傳輸數(shù)據(jù)的工具。它用于從關(guān)系數(shù)據(jù)庫(kù)(如MySQL,Oracle)導(dǎo)入數(shù)據(jù)到Hadoop HDFS,并從Hadoop文件系統(tǒng)導(dǎo)出到關(guān)系數(shù)據(jù)庫(kù),學(xué)習(xí)使用Sqoop對(duì)關(guān)系型數(shù)據(jù)庫(kù)數(shù)據(jù)和Hadoop之間的導(dǎo)入有很大的幫助。
2.Kettle
Kettle是一個(gè)ETL工具集,它允許你管理來(lái)自不同數(shù)據(jù)庫(kù)的數(shù)據(jù),通過(guò)提供一個(gè)圖形化的用戶環(huán)境來(lái)描述你想做什么,而不是你想怎么做。作為Pentaho的一個(gè)重要組成部分,現(xiàn)在在國(guó)內(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),簡(jiǎn)稱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ù)倉(cāng)庫(kù)工具,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫(kù)表,并提供簡(jiǎn)單的SQL查詢功能,可以將SQL語(yǔ)句轉(zhuǎn)換為MapReduce任務(wù)進(jìn)行運(yùn)行。相對(duì)于用Java代碼編寫MapReduce來(lái)說(shuō),Hive的優(yōu)勢(shì)明顯:快速開(kāi)發(fā),人員成本低,可擴(kuò)展性(自由擴(kuò)展集群規(guī)模),延展性(支持自定義函數(shù))。十分適合數(shù)據(jù)倉(cāng)庫(kù)的統(tǒng)計(jì)分析。對(duì)于Hive需掌握其安裝、應(yīng)用及高級(jí)操作等。
3.ZooKeeper
ZooKeeper 是一個(gè)開(kāi)源的分布式協(xié)調(diào)服務(wù),是Hadoop和HBase的重要組件,是一個(gè)為分布式應(yīng)用提供一致性服務(wù)的軟件,提供的功能包括:配置維護(hù)、域名服務(wù)、分布式同步、組件服務(wù)等,在大數(shù)據(jù)開(kāi)發(fā)中要掌握Z(yǔ)ooKeeper的常用命令及功能的實(shí)現(xiàn)方法。
4.HBase
HBase是一個(gè)分布式的、面向列的開(kāi)源數(shù)據(jù)庫(kù),它不同于一般的關(guān)系數(shù)據(jù)庫(kù),更適合于非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)庫(kù),是一個(gè)高可靠性、高性能、面向列、可伸縮的分布式存儲(chǔ)系統(tǒng),大數(shù)據(jù)開(kāi)發(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ù)庫(kù)起到很好的補(bǔ)充作用,它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客戶端,使用很方便,大數(shù)據(jù)開(kāi)發(fā)需掌握Redis的安裝、配置及相關(guān)使用方法。
6.Kafka
Kafka是一種高吞吐量的分布式發(fā)布訂閱消息系統(tǒng),其在大數(shù)據(jù)開(kāi)發(fā)應(yīng)用上的目的是通過(guò)Hadoop的并行加載機(jī)制來(lái)統(tǒng)一線上和離線的消息處理,也是為了通過(guò)集群來(lái)提供實(shí)時(shí)的消息。大數(shù)據(jù)開(kāi)發(fā)需掌握Kafka架構(gòu)原理及各組件的作用和使用方法及相關(guān)功能的實(shí)現(xiàn)。
7.Neo4j
Neo4j是一個(gè)高性能的,NoSQL圖形數(shù)據(jù)庫(kù),具有處理百萬(wàn)和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ì),越來(lái)越受到關(guān)注。
8.Cassandra
Cassandra是一個(gè)混合型的非關(guān)系的數(shù)據(jù)庫(kù),類似于Google的BigTable,其主要功能比Dynamo(分布式的Key-Value存儲(chǔ)系統(tǒng))更豐富。這種NoSQL數(shù)據(jù)庫(kù)最初由Facebook開(kāi)發(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è)開(kāi)源框架整合而成,常作為數(shù)據(jù)源較簡(jiǎn)單的Web項(xiàng)目的框架。大數(shù)據(jù)開(kāi)發(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ù)開(kāi)發(fā)需掌握Spark基礎(chǔ)、SparkJob、Spark RDD部署與資源分配、Spark Shuffle、Spark內(nèi)存管理、Spark廣播變量、Spark SQL、Spark Streaming以及Spark ML等相關(guān)知識(shí)。
2.Storm
Storm 是自由的開(kāi)源軟件,一個(gè)分布式的、容錯(cuò)的實(shí)時(shí)計(jì)算系統(tǒng),可以非??煽康奶幚睚嫶蟮臄?shù)據(jù)流,用于處理Hadoop的批量數(shù)據(jù)。Storm支持許多種編程語(yǔ)言,并且有許多應(yīng)用領(lǐng)域:實(shí)時(shí)分析、在線機(jī)器學(xué)習(xí)、不停頓的計(jì)算、分布式RPC(遠(yuǎn)過(guò)程調(diào)用協(xié)議,一種通過(guò)網(wǎng)路從遠(yuǎn)程計(jì)算機(jī)程序上請(qǐng)求服務(wù))、ETL等等。Storm的處理速度驚人:經(jīng)測(cè)試,每個(gè)節(jié)點(diǎn)每秒鐘可以處理100萬(wàn)個(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是世界上最流行的開(kāi)源商務(wù)智能軟件,以工作流為核心的、強(qiáng)調(diào)面向解決方案而非工具組件的、基于Java平臺(tái)的BI套件。包括一個(gè)Web Server平臺(tái)和幾個(gè)工具軟件:報(bào)表、分析、圖表、數(shù)據(jù)集成、數(shù)據(jù)挖掘等,可以說(shuō)包括了商務(wù)智能的方方面面。Pentaho的工具可以連接到NoSQL數(shù)據(jù)庫(kù)。大數(shù)據(jù)開(kāi)發(fā)需了解其使用方法。
六、查詢應(yīng)用類工具
1.Avro與Protobuf
Avro與Protobuf均是數(shù)據(jù)序列化系統(tǒng),可以提供豐富的數(shù)據(jù)結(jié)構(gòu)類型,十分適合做數(shù)據(jù)存儲(chǔ),還可進(jìn)行不同語(yǔ)言之間相互通信的數(shù)據(jù)交換格式,學(xué)習(xí)大數(shù)據(jù),需掌握其具體用法。
2.Phoenix
Phoenix是用Java編寫的基于JDBC API操作HBase的開(kāi)源SQL引擎,其具有動(dòng)態(tài)列、散列加載、查詢服務(wù)器、追蹤、事務(wù)、用戶自定義函數(shù)、二級(jí)索引、命名空間映射、數(shù)據(jù)收集、時(shí)間戳列、分頁(yè)查詢、跳躍查詢、視圖以及多租戶的特性,大數(shù)據(jù)開(kāi)發(fā)需掌握其原理和使用方法。
3.Kylin
Kylin是一個(gè)開(kāi)源的分布式分析引擎,提供了基于Hadoop的超大型數(shù)據(jù)集(TB/PB級(jí)別)的SQL接口以及多維度的OLAP分布式聯(lián)機(jī)分析。最初由eBay開(kāi)發(fā)并貢獻(xiàn)至開(kāi)源社區(qū)。它能在亞秒內(nèi)查詢巨大的Hive表。
4.Zeppelin
Zeppelin是一個(gè)提供交互數(shù)據(jù)分析且基于Web的筆記本。方便你做出可數(shù)據(jù)驅(qū)動(dòng)的、可交互且可協(xié)作的精美文檔,并且支持多種語(yǔ)言,包括 Scala(使用 Apache Spark)、Python(Apache Spark)、SparkSQL、 Hive、 Markdown、Shell等。
5.ElasticSearch
ElasticSearch是一個(gè)基于Lucene的搜索服務(wù)器。它提供了一個(gè)分布式、支持多用戶的全文搜索引擎,基于RESTful Web接口。ElasticSearch是用Java開(kāi)發(fā)的,并作為Apache許可條款下的開(kāi)放源碼發(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ù)開(kāi)發(fā)需了解其基本原理和使用方法。
七、數(shù)據(jù)管理類工具
1.Azkaban
Azkaban是由linked開(kāi)源的一個(gè)批量工作流任務(wù)調(diào)度器,它是由三個(gè)部分組成:Azkaban Web Server(管理服務(wù)器)、Azkaban Executor Server(執(zhí)行管理器)和MySQL(關(guān)系數(shù)據(jù)庫(kù)),可用于在一個(gè)工作流內(nèi)以一個(gè)特定的順序運(yùn)行一組工作和流程,可以利用Azkaban來(lái)完成大數(shù)據(jù)的任務(wù)調(diào)度,大數(shù)據(jù)開(kāi)發(fā)需掌握Azkaban的相關(guān)配置及語(yǔ)法規(guī)則。
2.Mesos
Mesos 是由加州大學(xué)伯克利分校的AMPLab首先開(kāi)發(fā)的一款開(kāi)源集群管理軟件,支持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è)開(kāi)源的實(shí)時(shí)錯(cuò)誤報(bào)告工具,支持 Web 前后端、移動(dòng)應(yīng)用以及游戲,支持 Python、OC、Java、Go、Node、Django、RoR 等主流編程語(yǔ)言和框架 ,還提供了 GitHub、Slack、Trello 等常見(jiàn)開(kāi)發(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)行簡(jiǎn)單處理,并寫到各種數(shù)據(jù)接受方(可定制)的能力。大數(shù)據(jù)開(kāi)發(fā)需掌握其安裝、配置以及相關(guān)使用方法。
文章標(biāo)題:大數(shù)據(jù)平臺(tái)常見(jiàn)開(kāi)源工具集錦,看看你都知道哪些
標(biāo)題路徑:http://jinyejixie.com/news/102040.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、電子商務(wù)、網(wǎng)站內(nèi)鏈、微信公眾號(hào)、外貿(mào)網(wǎng)站建設(shè)、虛擬主機(jī)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容