大數(shù)據(jù)全系技術(shù)概覽
什么是大數(shù)據(jù)?
大數(shù)據(jù)(big data),指無(wú)法在一定時(shí)間范圍內(nèi)用常規(guī)軟件工具進(jìn)行捕捉、管理和處理的數(shù)據(jù)集合,是需要新處理模式才能具有更強(qiáng)的決策力、洞察發(fā)現(xiàn)力和流程優(yōu)化能力的海量、高增長(zhǎng)率和多樣化的信息資產(chǎn)。
在維克托·邁爾-舍恩伯格及肯尼斯·庫(kù)克耶編寫的《大數(shù)據(jù)時(shí)代》中大數(shù)據(jù)指不用隨機(jī)分析法(抽樣調(diào)查)這樣捷徑,而采用所有數(shù)據(jù)進(jìn)行分析處理。大數(shù)據(jù)的5V特點(diǎn)(IBM提出):Volume(大量)、Velocity(高速)、Variety(多樣)、Value(低價(jià)值密度)、Veracity(真實(shí)性)。
大數(shù)據(jù)應(yīng)用現(xiàn)狀
大數(shù)據(jù)技術(shù)共性
業(yè)界主流大數(shù)據(jù)技術(shù)框架
- 磁盤存儲(chǔ)HDFS、HBASE、S3、Cassandra、MongoDB、Redis
- 內(nèi)存存儲(chǔ)Alluxio 、Redis
- 數(shù)據(jù)分析Spark(SQL、Streaming、MLlib、GraphX)、Storm、MapReduce、Mahout、Hive、Pig
- 分步式協(xié)調(diào)服務(wù)ZooKeeper
- 集群系統(tǒng)監(jiān)控CDH-CMS, Metrics, Grafana、Ambari
- 消息總線kafka、ActiveMQ、Apollo、 Redis
- 索引系統(tǒng)Solr、Lucene、ElasticSearch
大數(shù)據(jù)組件應(yīng)用分類
- 數(shù)據(jù)采集flume、kafka connector、sqoop、socket、sftp、mina
- 實(shí)時(shí)處理Spark Streaming、Kafka Streams、Storm、Samza、Flink
- 數(shù)據(jù)存儲(chǔ)HDFS、HBASE、S3、Cassandra、MongoDB、Redis、Solr、ElasticSearch
- 離線處理Spark SQL、Hive、Map Reduce、Pig、Impala
- 交互式查詢Drill、PresTO、Kylin
- 數(shù)據(jù)展現(xiàn)Echarts、Tableau、d3js
大數(shù)據(jù)組件簡(jiǎn)介
1、Hadoop是Apache開(kāi)源組織的一個(gè)分布式計(jì)算框架,提供了一個(gè)分布式文件系統(tǒng) (HDFS)、MapReduce分布式計(jì)算及統(tǒng)一資源管理框架(Yarn)的軟件架構(gòu)。
- 為大規(guī)模數(shù)據(jù)的存儲(chǔ)提供解決方案(HDFS);
- 解決大規(guī)模分步式計(jì)算( MapReduce );
- 作為其周邊軟件Hbase、Hive、Pig、Mahout等的基礎(chǔ)平臺(tái)。
2、HBase是一個(gè)高可靠性、高性能、面向列、可伸縮的分布式存儲(chǔ)系統(tǒng),利用HBase技術(shù)可在廉價(jià)PC Server上搭建起大規(guī)模結(jié)構(gòu)化存儲(chǔ)集群。
- 解決海量數(shù)據(jù)的存儲(chǔ);
- 解決隨機(jī)、實(shí)時(shí)讀寫大數(shù)據(jù);
- 提供簡(jiǎn)化訪問(wèn)HDFS的編程接口。
3、kafka是Apache旗下的一個(gè)高性能,高吞吐量的分步式消息總線系統(tǒng)。
- 分布式系統(tǒng)相互通信;
- 數(shù)據(jù)復(fù)制、同步;
- 日志同步;
- Delay Queue;
- 廣播通知。
4、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)行。 其優(yōu)點(diǎn)是學(xué)習(xí)成本低,可以通過(guò)類SQL語(yǔ)句快速實(shí)現(xiàn)簡(jiǎn)單的MapReduce統(tǒng)計(jì),不必開(kāi)發(fā)專門的MapReduce應(yīng)用,十分適合數(shù)據(jù)倉(cāng)庫(kù)的統(tǒng)計(jì)分析。
- 解決海量數(shù)據(jù)的存儲(chǔ);
- 解決大規(guī)模數(shù)據(jù)的分析:SQL。
5、MongoDB 是一個(gè)高性能,開(kāi)源,無(wú)模式的文檔型數(shù)據(jù)庫(kù),它在許多場(chǎng)景下可用于替代傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)或鍵/值存儲(chǔ)方式。MongoDB不支持SQL,但有自己功能強(qiáng)大的查詢語(yǔ)法。MongoDB使用BSON作為數(shù)據(jù)存儲(chǔ)和傳輸?shù)母袷?。BSON是一種類似JSON的二進(jìn)制序列化文檔,支持嵌套對(duì)象和數(shù)組。
- 解決海量數(shù)據(jù)在線存儲(chǔ);
- 許多情況下可以代替?zhèn)鹘y(tǒng)關(guān)系數(shù)據(jù)庫(kù);
- 代替鍵/值存儲(chǔ)方式。
6、Redis是一個(gè)開(kāi)源的使用ANSI C語(yǔ)言編寫、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value數(shù)據(jù)庫(kù),并提供多種語(yǔ)言的API。從2010年3月15日起,Redis的開(kāi)發(fā)工作由VMware主持。從2013年5月開(kāi)始,Redis的開(kāi)發(fā)由Pivotal贊助。
7、Apache Spark 是專為大規(guī)模數(shù)據(jù)處理而設(shè)計(jì)的快速通用的計(jì)算引擎。Spark是UC Berkeley AMP lab (加州大學(xué)伯克利分校的AMP實(shí)驗(yàn)室)所開(kāi)源的類Hadoop MapReduce的通用并行框架,Spark,擁有Hadoop MapReduce所具有的優(yōu)點(diǎn);但不同于MapReduce的是——Job中間輸出結(jié)果可以保存在內(nèi)存中,從而不再需要讀寫HDFS,因此Spark能更好地適用于數(shù)據(jù)挖掘與機(jī)器學(xué)習(xí)等需要迭代的MapReduce的算法。
Spark 是一種與 Hadoop 相似的開(kāi)源集群計(jì)算環(huán)境,但是兩者之間還存在一些不同之處,這些有用的不同之處使 Spark 在某些工作負(fù)載方面表現(xiàn)得更加優(yōu)越,換句話說(shuō),Spark 啟用了內(nèi)存分布數(shù)據(jù)集,除了能夠提供交互式查詢外,它還可以優(yōu)化迭代工作負(fù)載。
Spark 是在 Scala 語(yǔ)言中實(shí)現(xiàn)的,它將 Scala 用作其應(yīng)用程序框架。與 Hadoop 不同,Spark 和 Scala 能夠緊密集成,其中的 Scala 可以像操作本地集合對(duì)象一樣輕松地操作分布式數(shù)據(jù)集。
8、Storm是一個(gè)分布式的、容錯(cuò)的實(shí)時(shí)計(jì)算系統(tǒng)。使用Storm進(jìn)行實(shí)時(shí)大數(shù)據(jù)分析。
9、Flink 是可擴(kuò)展的批處理和流式數(shù)據(jù)處理的數(shù)據(jù)處理平臺(tái),設(shè)計(jì)思想主要來(lái)源于Hadoop、MPP數(shù)據(jù)庫(kù)、流式計(jì)算系統(tǒng)等,支持增量迭代計(jì)算。
10、Alluxio A memory speed virtual distributed storage. Alluxio是一個(gè)高容錯(cuò)的內(nèi)存分布式文件系統(tǒng),允許文件以內(nèi)存的速度在集群框架中進(jìn)行可靠的共享。典型特點(diǎn)就是加速讀寫數(shù)據(jù)的速度。
11、ElasticSearch是一個(gè)基于Lucene的搜索服務(wù)器。它提供了一個(gè)分布式多用戶能力的全文搜索引擎,基于RESTful web接口。其典型特點(diǎn)是全文快速檢索。