總算是有人把Java,架構(gòu),大數(shù)據(jù),人工智能講明白了

2021-02-08    分類(lèi): 網(wǎng)站建設(shè)


大數(shù)據(jù)核心技術(shù)主要涉及三大塊:大數(shù)據(jù)采集處理,大數(shù)據(jù)分析,大數(shù)據(jù)存儲(chǔ)、組織、管理。


數(shù)據(jù)倉(cāng)庫(kù)VS大數(shù)據(jù)


大數(shù)據(jù)分析你必須掌握的6個(gè)核心技術(shù)



目前,大數(shù)據(jù)領(lǐng)域每年都會(huì)涌現(xiàn)出大量新的技術(shù),成為大數(shù)據(jù)獲取、存儲(chǔ)、處理分析或可視化的有效手段。大數(shù)據(jù)技術(shù)能夠?qū)⒋笠?guī)模數(shù)據(jù)中隱藏的信息和知識(shí)挖掘出來(lái),為人類(lèi)社會(huì)經(jīng)濟(jì)活動(dòng)提供依據(jù),提高各個(gè)領(lǐng)域的運(yùn)行效率,甚至整個(gè)社會(huì)經(jīng)濟(jì)的集約化程度。

1、大數(shù)據(jù)生命周期


圖1展示了一個(gè)典型的大數(shù)據(jù)技術(shù)棧。底層是基礎(chǔ)設(shè)施,涵蓋計(jì)算資源、內(nèi)存與存儲(chǔ)和網(wǎng)絡(luò)互聯(lián),具體表現(xiàn)為計(jì)算節(jié)點(diǎn)、集群、機(jī)柜和數(shù)據(jù)中心。在此之上是數(shù)據(jù)存儲(chǔ)和管理,包括文件系統(tǒng)、數(shù)據(jù)庫(kù)和類(lèi)似YARN的資源管理系統(tǒng)。然后是計(jì)算處理層,如hadoop、MapReduce和Spark,以及在此之上的各種不同計(jì)算范式,如批處理、流處理和圖計(jì)算等,包括衍生出編程模型的計(jì)算模型,如BSP、GAS 等。數(shù)據(jù)分析和可視化基于計(jì)算處理層。分析包括簡(jiǎn)單的查詢(xún)分析、流分析以及更復(fù)雜的分析(如機(jī)器學(xué)習(xí)、圖計(jì)算等)。查詢(xún)分析多基于表結(jié)構(gòu)和關(guān)系函數(shù),流分析基于數(shù)據(jù)、事件流以及簡(jiǎn)單的統(tǒng)計(jì)分析,而復(fù)雜分析則基于更復(fù)雜的數(shù)據(jù)結(jié)構(gòu)與方法,如圖、矩陣、迭代計(jì)算和線(xiàn)性代數(shù)。一般意義的可視化是對(duì)分析結(jié)果的展示。但是通過(guò)交互式可視化,還可以探索性地提問(wèn),使分析獲得新的線(xiàn)索,形成迭代的分析和可視化?;诖笠?guī)模數(shù)據(jù)的實(shí)時(shí)交互可視化分析以及在這個(gè)過(guò)程中引入自動(dòng)化的因素是目前研究的熱點(diǎn)。

有2個(gè)領(lǐng)域垂直打通了上述的各層,需要整體、協(xié)同地看待。一是編程和管理工具,方向是機(jī)器通過(guò)學(xué)習(xí)實(shí)現(xiàn)自動(dòng)最優(yōu)化、盡量無(wú)需編程、無(wú)需復(fù)雜的配置。另一個(gè)領(lǐng)域是數(shù)據(jù)安全,也是貫穿整個(gè)技術(shù)棧。除了這兩個(gè)領(lǐng)域垂直打通各層,還有一些技術(shù)方向是跨了多層的,例如“內(nèi)存計(jì)算”事實(shí)上覆蓋了整個(gè)技術(shù)棧。

2、大數(shù)據(jù)技術(shù)生態(tài)

大數(shù)據(jù)的基本處理流程與傳統(tǒng)數(shù)據(jù)處理流程并無(wú)太大差異,主要區(qū)別在于:由于大數(shù)據(jù)要處理大量、非結(jié)構(gòu)化的數(shù)據(jù),所以在各處理環(huán)節(jié)中都可以采用并行處理。目前,Hadoop、MapReduce和Spark等分布式處理方式已經(jīng)成為大數(shù)據(jù)處理各環(huán)節(jié)的通用處理方法。


Hadoop是一個(gè)能夠讓用戶(hù)輕松架構(gòu)和使用的分布式計(jì)算平臺(tái)。用戶(hù)可以輕松地在Hadoop上開(kāi)發(fā)和運(yùn)行處理海量數(shù)據(jù)的應(yīng)用程序。Hadoop 是一個(gè)數(shù)據(jù)管理系統(tǒng),作為數(shù)據(jù)分析的核心,匯集了結(jié)構(gòu)化和非結(jié)構(gòu)化的數(shù)據(jù),這些數(shù)據(jù)分布在傳統(tǒng)的企業(yè)數(shù)據(jù)棧的每一層。Hadoop也是一個(gè)大規(guī)模并行處理框架,擁有超級(jí)計(jì)算能力,定位于推動(dòng)企業(yè)級(jí)應(yīng)用的執(zhí)行。Hadoop又是一個(gè)開(kāi)源社區(qū),主要為解決大數(shù)據(jù)的問(wèn)題提供工具和軟件。雖然Hadoop提供了很多功能,但仍然應(yīng)該把它歸類(lèi)為多個(gè)組件組成的Hadoop生態(tài)圈,這些組件包括數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)集成、數(shù)據(jù)處理和其他進(jìn)行數(shù)據(jù)分析的專(zhuān)門(mén)工具。圖2 展示了Hadoop 的生態(tài)系統(tǒng),主要由HDFS、MapReduce、Hbase、Zookeeper、Oozie、Pig、Hive等核心組件構(gòu)成,另外還包括Sqoop、Flume等框架,用來(lái)與其他企業(yè)融合。同時(shí),Hadoop 生態(tài)系統(tǒng)也在不斷增長(zhǎng),新增Mahout、Ambari、Whirr、BigTop 等內(nèi)容,以提供更新功能。

低成本、高可靠、高擴(kuò)展、高有效、高容錯(cuò)等特性讓Hadoop成為最流行的大數(shù)據(jù)分析系統(tǒng),然而其賴(lài)以生存的HDFS 和MapReduce 組件卻讓其一度陷入困境——批處理的工作方式讓其只適用于離線(xiàn)數(shù)據(jù)處理,在要求實(shí)時(shí)性的場(chǎng)景下毫無(wú)用武之地。因此,各種基于Hadoop的工具應(yīng)運(yùn)而生。為了減少管理成本,提升資源的利用率,有當(dāng)下眾多的資源統(tǒng)一管理調(diào)度系統(tǒng),例如Twitter 的Apache Mesos、Apache 的YARN、Google 的Borg、騰訊搜搜的Torca、Facebook Corona(開(kāi)源)等。Apache Mesos是Apache孵化器中的一個(gè)開(kāi)源項(xiàng)目,使用ZooKeeper實(shí)現(xiàn)容錯(cuò)復(fù)制,使用Linux Containers 來(lái)隔離任務(wù),支持多種資源計(jì)劃分配(內(nèi)存和CPU)。提供高效、跨分布式應(yīng)用程序和框架的資源隔離和共享,支持Hadoop、MPI、Hypertable、Spark 等。YARN 又被稱(chēng)為MapReduce 2.0,借鑒Mesos,YARN 提出了資源隔離解決方案Container,提供Java 虛擬機(jī)內(nèi)存的隔離。對(duì)比MapReduce 1.0,開(kāi)發(fā)人員使用ResourceManager、ApplicationMaster與NodeManager代替了原框架中核心的JobTracker 和TaskTracker。在YARN平臺(tái)上可以運(yùn)行多個(gè)計(jì)算框架,如MR、Tez、Storm、Spark等。

基于業(yè)務(wù)對(duì)實(shí)時(shí)的需求,有支持在線(xiàn)處理的Storm、Cloudar Impala、支持迭代計(jì)算的Spark 及流處理框架S4。Storm是一個(gè)分布式的、容錯(cuò)的實(shí)時(shí)計(jì)算系統(tǒng),由BackType開(kāi)發(fā),后被Twitter捕獲。Storm屬于流處理平臺(tái),多用于實(shí)時(shí)計(jì)算并更新數(shù)據(jù)庫(kù)。Storm也可被用于“連續(xù)計(jì)算”(Continuous Computation),對(duì)數(shù)據(jù)流做連續(xù)查詢(xún),在計(jì)算時(shí)就將結(jié)果以流的形式輸出給用戶(hù)。它還可被用于“分布式RPC”,以并行的方式運(yùn)行昂貴的運(yùn)算。Cloudera Impala是由Cloudera開(kāi)發(fā),一個(gè)開(kāi)源的Massively Parallel Processing(MPP)查詢(xún)引擎。與Hive 相同的元數(shù)據(jù)、SQL語(yǔ)法、ODBC 驅(qū)動(dòng)程序和用戶(hù)接口(HueBeeswax),可以直接在HDFS 或HBase 上提供快速、交互式SQL 查詢(xún)。Impala是在Dremel的啟發(fā)下開(kāi)發(fā)的,不再使用緩慢的Hive+MapReduce 批處理,而是通過(guò)與商用并行關(guān)系數(shù)據(jù)庫(kù)中類(lèi)似的分布式查詢(xún)引擎(由Query Planner、Query Coordinator 和Query Exec Engine這3部分組成),可以直接從HDFS 或者HBase 中用SELECT、JOIN 和統(tǒng)計(jì)函數(shù)查詢(xún)數(shù)據(jù),從而大大降低了延遲。

Hadoop社區(qū)正努力擴(kuò)展現(xiàn)有的計(jì)算模式框架和平臺(tái),以便解決現(xiàn)有版本在計(jì)算性能、計(jì)算模式、系統(tǒng)構(gòu)架和處理能力上的諸多不足,這正是Hadoop2.0 版本“ YARN”的努力目標(biāo)。各種計(jì)算模式還可以與內(nèi)存計(jì)算模式混合,實(shí)現(xiàn)高實(shí)時(shí)性的大數(shù)據(jù)查詢(xún)和計(jì)算分析?;旌嫌?jì)算模式之集大成者當(dāng)屬UC Berkeley AMP Lab 開(kāi)發(fā)的Spark生態(tài)系統(tǒng),如圖3所示。Spark 是開(kāi)源的類(lèi)Hadoop MapReduce的通用的數(shù)據(jù)分析集群計(jì)算框架,用于構(gòu)建大規(guī)模、低延時(shí)的數(shù)據(jù)分析應(yīng)用,建立于HDFS之上。Spark提供強(qiáng)大的內(nèi)存計(jì)算引擎,幾乎涵蓋了所有典型的大數(shù)據(jù)計(jì)算模式,包括迭代計(jì)算、批處理計(jì)算、內(nèi)存計(jì)算、流式計(jì)算(Spark Streaming)、數(shù)據(jù)查詢(xún)分析計(jì)算(Shark)以及圖計(jì)算(GraphX)。Spark 使用Scala 作為應(yīng)用框架,采用基于內(nèi)存的分布式數(shù)據(jù)集,優(yōu)化了迭代式的工作負(fù)載以及交互式查詢(xún)。與Hadoop 不同的是,Spark 和Scala 緊密集成,Scala 像管理本地collective 對(duì)象那樣管理分布式數(shù)據(jù)集。Spark支持分布式數(shù)據(jù)集上的迭代式任務(wù),實(shí)際上可以在Hadoop文件系統(tǒng)上與Hadoop一起運(yùn)行(通過(guò)YARN、Mesos等實(shí)現(xiàn))。另外,基于性能、兼容性、數(shù)據(jù)類(lèi)型的研究,還有Shark、Phoenix、Apache Accumulo、Apache Drill、Apache Giraph、Apache Hama、Apache Tez、Apache Ambari 等其他開(kāi)源解決方案。預(yù)計(jì)未來(lái)相當(dāng)長(zhǎng)一段時(shí)間內(nèi),主流的Hadoop平臺(tái)改進(jìn)后將與各種新的計(jì)算模式和系統(tǒng)共存,并相互融合,形成新一代的大數(shù)據(jù)處理系統(tǒng)和平臺(tái)。


3、大數(shù)據(jù)采集與預(yù)處理

在大數(shù)據(jù)的生命周期中,數(shù)據(jù)采集處于第一個(gè)環(huán)節(jié)。根據(jù)MapReduce產(chǎn)生數(shù)據(jù)的應(yīng)用系統(tǒng)分類(lèi),大數(shù)據(jù)的采集主要有4種來(lái)源:管理信息系統(tǒng)、Web信息系統(tǒng)、物理信息系統(tǒng)、科學(xué)實(shí)驗(yàn)系統(tǒng)。對(duì)于不同的數(shù)據(jù)集,可能存在不同的結(jié)構(gòu)和模式,如文件、XML 樹(shù)、關(guān)系表等,表現(xiàn)為數(shù)據(jù)的異構(gòu)性。對(duì)多個(gè)異構(gòu)的數(shù)據(jù)集,需要做進(jìn)一步集成處理或整合處理,將來(lái)自不同數(shù)據(jù)集的數(shù)據(jù)收集、整理、清洗、轉(zhuǎn)換后,生成到一個(gè)新的數(shù)據(jù)集,為后續(xù)查詢(xún)和分析處理提供統(tǒng)一的數(shù)據(jù)視圖。針對(duì)管理信息系統(tǒng)中異構(gòu)數(shù)據(jù)庫(kù)集成技術(shù)、Web 信息系統(tǒng)中的實(shí)體識(shí)別技術(shù)和DeepWeb集成技術(shù)、傳感器網(wǎng)絡(luò)數(shù)據(jù)融合技術(shù)已經(jīng)有很多研究工作,取得了較大的進(jìn)展,已經(jīng)推出了多種數(shù)據(jù)清洗和質(zhì)量控制工具,例如,美國(guó)SAS公司的Data Flux、美國(guó)IBM 公司的Data Stage、美國(guó)Informatica 公司的Informatica Power Center。

4、大數(shù)據(jù)存儲(chǔ)與管理

傳統(tǒng)的數(shù)據(jù)存儲(chǔ)和管理以結(jié)構(gòu)化數(shù)據(jù)為主,因此關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)(RDBMS)可以一統(tǒng)天下滿(mǎn)足各類(lèi)應(yīng)用需求。大數(shù)據(jù)往往是半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)為主,結(jié)構(gòu)化數(shù)據(jù)為輔,而且各種大數(shù)據(jù)應(yīng)用通常是對(duì)不同類(lèi)型的數(shù)據(jù)內(nèi)容檢索、交叉比對(duì)、深度挖掘與綜合分析。面對(duì)這類(lèi)應(yīng)用需求,傳統(tǒng)數(shù)據(jù)庫(kù)無(wú)論在技術(shù)上還是功能上都難以為繼。因此,近幾年出現(xiàn)了oldSQL、NoSQL 與NewSQL 并存的局面??傮w上,按數(shù)據(jù)類(lèi)型的不同,大數(shù)據(jù)的存儲(chǔ)和管理采用不同的技術(shù)路線(xiàn),大致可以分為3類(lèi)。第1類(lèi)主要面對(duì)的是大規(guī)模的結(jié)構(gòu)化數(shù)據(jù)。針對(duì)這類(lèi)大數(shù)據(jù),通常采用新型數(shù)據(jù)庫(kù)集群。它們通過(guò)列存儲(chǔ)或行列混合存儲(chǔ)以及粗粒度索引等技術(shù),結(jié)合MPP(Massive Parallel Processing)架構(gòu)高效的分布式計(jì)算模式,實(shí)現(xiàn)對(duì)PB 量級(jí)數(shù)據(jù)的存儲(chǔ)和管理。這類(lèi)集群具有高性能和高擴(kuò)展性特點(diǎn),在企業(yè)分析類(lèi)應(yīng)用領(lǐng)域已獲得廣泛應(yīng)用;第2類(lèi)主要面對(duì)的是半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)。應(yīng)對(duì)這類(lèi)應(yīng)用場(chǎng)景,基于Hadoop開(kāi)源體系的系統(tǒng)平臺(tái)更為擅長(zhǎng)。它們通過(guò)對(duì)Hadoop生態(tài)體系的技術(shù)擴(kuò)展和封裝,實(shí)現(xiàn)對(duì)半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)和管理;第3類(lèi)面對(duì)的是結(jié)構(gòu)化和非結(jié)構(gòu)化混合的大數(shù)據(jù),因此采用MPP 并行數(shù)據(jù)庫(kù)集群與Hadoop 集群的混合來(lái)實(shí)現(xiàn)對(duì)百PB 量級(jí)、EB量級(jí)數(shù)據(jù)的存儲(chǔ)和管理。一方面,用MPP 來(lái)管理計(jì)算高質(zhì)量的結(jié)構(gòu)化數(shù)據(jù),提供強(qiáng)大的SQL和OLTP型服務(wù);另一方面,用Hadoop實(shí)現(xiàn)對(duì)半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)的處理,以支持諸如內(nèi)容檢索、深度挖掘與綜合分析等新型應(yīng)用。這類(lèi)混合模式將是大數(shù)據(jù)存儲(chǔ)和管理未來(lái)發(fā)展的趨勢(shì)。

5、大數(shù)據(jù)計(jì)算模式與系統(tǒng)

計(jì)算模式的出現(xiàn)有力推動(dòng)了大數(shù)據(jù)技術(shù)和應(yīng)用的發(fā)展,使其成為目前大數(shù)據(jù)處理最為成功、最廣為接受使用的主流大數(shù)據(jù)計(jì)算模式。然而,現(xiàn)實(shí)世界中的大數(shù)據(jù)處理問(wèn)題復(fù)雜多樣,難以有一種單一的計(jì)算模式能涵蓋所有不同的大數(shù)據(jù)計(jì)算需求。研究和實(shí)際應(yīng)用中發(fā)現(xiàn),由于MapReduce主要適合于進(jìn)行大數(shù)據(jù)線(xiàn)下批處理,在面向低延遲和具有復(fù)雜數(shù)據(jù)關(guān)系和復(fù)雜計(jì)算的大數(shù)據(jù)問(wèn)題時(shí)有很大的不適應(yīng)性。因此,近幾年來(lái)學(xué)術(shù)界和業(yè)界在不斷研究并推出多種不同的大數(shù)據(jù)計(jì)算模式。

所謂大數(shù)據(jù)計(jì)算模式,即根據(jù)大數(shù)據(jù)的不同數(shù)據(jù)特征和計(jì)算特征,從多樣性的大數(shù)據(jù)計(jì)算問(wèn)題和需求中提煉并建立的各種高層抽象(abstraction)或模型(model)。例如,MapReduce 是一個(gè)并行計(jì)算抽象,加州大學(xué)伯克利分校著名的Spark系統(tǒng)中的“分布內(nèi)存抽象RDD”,CMU 著名的圖計(jì)算系統(tǒng)GraphLab 中的“圖并行抽象”(Graph Parallel Abstraction)等。傳統(tǒng)的并行計(jì)算方法,主要從體系結(jié)構(gòu)和編程語(yǔ)言的層面定義了一些較為底層的并行計(jì)算抽象和模型,但由于大數(shù)據(jù)處理問(wèn)題具有很多高層的數(shù)據(jù)特征和計(jì)算特征,因此大數(shù)據(jù)處理需要更多地結(jié)合這些高層特征考慮更為高層的計(jì)算模式。

根據(jù)大數(shù)據(jù)處理多樣性的需求和以上不同的特征維度,目前出現(xiàn)了多種典型和重要的大數(shù)據(jù)計(jì)算模式。與這些計(jì)算模式相適應(yīng),出現(xiàn)了很多對(duì)應(yīng)的大數(shù)據(jù)計(jì)算系統(tǒng)和工具。由于單純描述計(jì)算模式比較抽象和空洞,因此在描述不同計(jì)算模式時(shí),將同時(shí)給出相應(yīng)的典型計(jì)算系統(tǒng)和工具,如表1所示,這將有助于對(duì)計(jì)算模式的理解以及對(duì)技術(shù)發(fā)展現(xiàn)狀的把握,并進(jìn)一步有利于在實(shí)際大數(shù)據(jù)處理應(yīng)用中對(duì)合適的計(jì)算技術(shù)和系統(tǒng)工具的選擇使用。


6、大數(shù)據(jù)分析與可視化

在大數(shù)據(jù)時(shí)代,人們迫切希望在由普通機(jī)器組成的大規(guī)模集群上實(shí)現(xiàn)高性能的以機(jī)器學(xué)習(xí)算法為核心的數(shù)據(jù)分析,為實(shí)際業(yè)務(wù)提供服務(wù)和指導(dǎo),進(jìn)而實(shí)現(xiàn)數(shù)據(jù)的最終變現(xiàn)。與傳統(tǒng)的在線(xiàn)聯(lián)機(jī)分析處理OLAP不同,對(duì)大數(shù)據(jù)的深度分析主要基于大規(guī)模的機(jī)器學(xué)習(xí)技術(shù),一般而言,機(jī)器學(xué)習(xí)模型的訓(xùn)練過(guò)程可以歸結(jié)為最優(yōu)化定義于大規(guī)模訓(xùn)練數(shù)據(jù)上的目標(biāo)函數(shù)并且通過(guò)一個(gè)循環(huán)迭代的算法實(shí)現(xiàn),如圖4所示。因而與傳統(tǒng)的OLAP相比較,基于機(jī)器學(xué)習(xí)的大數(shù)據(jù)分析具有自己獨(dú)特的特點(diǎn)。


(1)迭代性:由于用于優(yōu)化問(wèn)題通常沒(méi)有閉式解,因而對(duì)模型參數(shù)確定并非一次能夠完成,需要循環(huán)迭代多次逐步逼近最優(yōu)值點(diǎn)。

(2)容錯(cuò)性:機(jī)器學(xué)習(xí)的算法設(shè)計(jì)和模型評(píng)價(jià)容忍非最優(yōu)值點(diǎn)的存在,同時(shí)多次迭代的特性也允許在循環(huán)的過(guò)程中產(chǎn)生一些錯(cuò)誤,模型的最終收斂不受影響。

(3)參數(shù)收斂的非均勻性:模型中一些參數(shù)經(jīng)過(guò)少數(shù)幾輪迭代后便不再改變,而有些參數(shù)則需要很長(zhǎng)時(shí)間才能達(dá)到收斂。

這些特點(diǎn)決定了理想的大數(shù)據(jù)分析系統(tǒng)的設(shè)計(jì)和其他計(jì)算系統(tǒng)的設(shè)計(jì)有很大不同,直接應(yīng)用傳統(tǒng)的分布式計(jì)算系統(tǒng)應(yīng)用于大數(shù)據(jù)分析,很大比例的資源都浪費(fèi)在通信、等待、協(xié)調(diào)等非有效的計(jì)算上。

傳統(tǒng)的分布式計(jì)算框架MPI(message passing interface,信息傳遞接口)雖然編程接口靈活功能強(qiáng)大,但由于編程接口復(fù)雜且對(duì)容錯(cuò)性支持不高,無(wú)法支撐在大規(guī)模數(shù)據(jù)上的復(fù)雜操作,研究人員轉(zhuǎn)而開(kāi)發(fā)了一系列接口簡(jiǎn)單容錯(cuò)性強(qiáng)的分布式計(jì)算框架服務(wù)于大數(shù)據(jù)分析算法,以MapReduce、Spark和參數(shù)服務(wù)器ParameterServer等為代表。

分布式計(jì)算框架MapReduce將對(duì)數(shù)據(jù)的處理歸結(jié)為Map和Reduce兩大類(lèi)操作,從而簡(jiǎn)化了編程接口并且提高了系統(tǒng)的容錯(cuò)性。但是MapReduce受制于過(guò)于簡(jiǎn)化的數(shù)據(jù)操作抽象,而且不支持循環(huán)迭代,因而對(duì)復(fù)雜的機(jī)器學(xué)習(xí)算法支持較差,基于MapReduce的分布式機(jī)器學(xué)習(xí)庫(kù)Mahout需要將迭代運(yùn)算分解為多個(gè)連續(xù)的Map 和Reduce 操作,通過(guò)讀寫(xiě)HDFS文件方式將上一輪次循環(huán)的運(yùn)算結(jié)果傳入下一輪完成數(shù)據(jù)交換。在此過(guò)程中,大量的訓(xùn)練時(shí)間被用于磁盤(pán)的讀寫(xiě)操作,訓(xùn)練效率非常低效。為了解決MapReduce上述問(wèn)題,Spark 基于RDD 定義了包括Map 和Reduce在內(nèi)的更加豐富的數(shù)據(jù)操作接口。不同于MapReduce 的是Job 中間輸出和結(jié)果可以保存在內(nèi)存中,從而不再需要讀寫(xiě)HDFS,這些特性使得Spark能更好地適用于數(shù)據(jù)挖掘與機(jī)器學(xué)習(xí)等需要迭代的大數(shù)據(jù)分析算法。基于Spark實(shí)現(xiàn)的機(jī)器學(xué)習(xí)算法庫(kù)MLLIB已經(jīng)顯示出了其相對(duì)于Mahout 的優(yōu)勢(shì),在實(shí)際應(yīng)用系統(tǒng)中得到了廣泛的使用。

近年來(lái),隨著待分析數(shù)據(jù)規(guī)模的迅速擴(kuò)張,分析模型參數(shù)也快速增長(zhǎng),對(duì)已有的大數(shù)據(jù)分析模式提出了挑戰(zhàn)。例如在大規(guī)模話(huà)題模型LDA 中,人們期望訓(xùn)練得到百萬(wàn)個(gè)以上的話(huà)題,因而在訓(xùn)練過(guò)程中可能需要對(duì)上百億甚至千億的模型參數(shù)進(jìn)行更新,其規(guī)模遠(yuǎn)遠(yuǎn)超出了單個(gè)節(jié)點(diǎn)的處理能力。為了解決上述問(wèn)題,研究人員提出了參數(shù)服務(wù)器(Parameter Server)的概念,如圖5所示。在參數(shù)服務(wù)器系統(tǒng)中,大規(guī)模的模型參數(shù)被集中存儲(chǔ)在一個(gè)分布式的服務(wù)器集群中,大規(guī)模的訓(xùn)練數(shù)據(jù)則分布在不同的工作節(jié)點(diǎn)(worker)上,這樣每個(gè)工作節(jié)點(diǎn)只需要保存它計(jì)算時(shí)所依賴(lài)的少部分參數(shù)即可,從而有效解決了超大規(guī)模大數(shù)據(jù)分析模型的訓(xùn)練問(wèn)題。目前參數(shù)服務(wù)器的實(shí)現(xiàn)主要有卡內(nèi)基梅隆大學(xué)的Petuum、PSLit等。


在大數(shù)據(jù)分析的應(yīng)用過(guò)程中,可視化通過(guò)交互式視覺(jué)表現(xiàn)的方式來(lái)幫助人們探索和理解復(fù)雜的數(shù)據(jù)??梢暬c可視分析能夠迅速和有效地簡(jiǎn)化與提煉數(shù)據(jù)流,幫助用戶(hù)交互篩選大量的數(shù)據(jù),有助于使用者更快更好地從復(fù)雜數(shù)據(jù)中得到新的發(fā)現(xiàn),成為用戶(hù)了解復(fù)雜數(shù)據(jù)、開(kāi)展深入分析不可或缺的手段。大規(guī)模數(shù)據(jù)的可視化主要是基于并行算法設(shè)計(jì)的技術(shù),合理利用有限的計(jì)算資源,高效地處理和分析特定數(shù)據(jù)集的特性。通常情況下,大規(guī)模數(shù)據(jù)可視化的技術(shù)會(huì)結(jié)合多分辨率表示等方法,以獲得足夠的互動(dòng)性能。在科學(xué)大規(guī)模數(shù)據(jù)的并行可視化工作中,主要涉及數(shù)據(jù)流線(xiàn)化、任務(wù)并行化、管道并行化和數(shù)據(jù)并行化4 種基本技術(shù)。微軟公司在其云計(jì)算平臺(tái)Azure 上開(kāi)發(fā)了大規(guī)模機(jī)器學(xué)習(xí)可視化平臺(tái)(Azure Machine Learning),將大數(shù)據(jù)分析任務(wù)形式為有向無(wú)環(huán)圖并以數(shù)據(jù)流圖的方式向用戶(hù)展示,取得了比較好的效果。在國(guó)內(nèi),阿里巴巴旗下的大數(shù)據(jù)分析平臺(tái)御膳房也采用了類(lèi)似的方式,為業(yè)務(wù)人員提供的互動(dòng)式大數(shù)據(jù)分析平臺(tái)。


人工智能

人工智能的定義可以分為兩部分,即“ 人工”和“ 智能”?!叭斯ぁ北容^好理解,爭(zhēng)議性也不大。有時(shí)我們會(huì)要考慮什么是人力所能及制造的,或者人自身的智能程度有沒(méi)有高到可以創(chuàng)造人工智能的地步,等等。但總的來(lái)說(shuō),“人工系統(tǒng)”就是通常意義下的人工系統(tǒng)。

關(guān)于什么是“智能”,就問(wèn)題多多了。這涉及到其它諸如 意識(shí)(CONSCIOUSNESS)、 自我(SELF)、 思維(MIND)(包括無(wú)意識(shí)的思維(UNCONSCIOUS_MIND))等等問(wèn)題。人唯一了解的智能是人本身的智能,這是普遍認(rèn)同的觀點(diǎn)。但是我們對(duì)我們自身智能的理解都非常有限,對(duì)構(gòu)成人的智能的必要 元素也了解有限,所以就很難定義什么是“人工”制造的“智能”了。因此人工智能的研究往往涉及對(duì)人的智能本身的研究。其它關(guān)于動(dòng)物或其它人造系統(tǒng)的智能也普遍被認(rèn)為是人工智能相關(guān)的研究 課題。

人工智能在 計(jì)算機(jī)領(lǐng)域內(nèi),得到了愈加廣泛的重視。并在機(jī)器人,經(jīng)濟(jì)政治決策,控制系統(tǒng),仿真系統(tǒng)中得到應(yīng)用。

著名的美國(guó) 斯坦福大學(xué)人工智能研究中心尼爾遜教授對(duì) 人工智能下了這樣一個(gè)定義:“人工智能是關(guān)于知識(shí)的學(xué)科――怎樣表示知識(shí)以及怎樣獲得知識(shí)并使用知識(shí)的科學(xué)?!倍硪粋€(gè) 美國(guó)麻省理工學(xué)院的 溫斯頓教授認(rèn)為:“人工智能就是研究如何使計(jì)算機(jī)去做過(guò)去只有人才能做的智能工作?!边@些說(shuō)法反映了人工智能學(xué)科的基本思想和基本內(nèi)容。即人工智能是研究人類(lèi)智能活動(dòng)的規(guī)律,構(gòu)造具有一定智能的人工系統(tǒng),研究如何讓計(jì)算機(jī)去完成以往需要人的 智力才能勝任的工作,也就是研究如何應(yīng)用計(jì)算機(jī)的軟 硬件來(lái)模擬人類(lèi)某些智能行為的基本理論、方法和技術(shù)。

人工智能是 計(jì)算機(jī)學(xué)科的一個(gè)分支,二十世紀(jì)七十年代以來(lái)被稱(chēng)為世界三大尖端技術(shù)之一( 空間技術(shù)、 能源技術(shù)、 人工智能)。也被認(rèn)為是二十一世紀(jì)三大尖端技術(shù)( 基因工程、 納米科學(xué)、 人工智能)之一。這是因?yàn)榻陙?lái)它獲得了迅速的發(fā)展,在很多學(xué)科領(lǐng)域都獲得了廣泛應(yīng)用,并取得了豐碩的成果,人工智能已逐步成為一個(gè)獨(dú)立的分支,無(wú)論在理論和實(shí)踐上都已自成一個(gè)系統(tǒng)。

人工智能是研究使計(jì)算機(jī)來(lái)模擬人的某些思維過(guò)程和智能行為(如學(xué)習(xí)、推理、思考、規(guī)劃等)的學(xué)科,主要包括計(jì)算機(jī)實(shí)現(xiàn)智能的原理、制造類(lèi)似于人腦智能的計(jì)算機(jī),使計(jì)算機(jī)能實(shí)現(xiàn)更高層次的應(yīng)用。人工智能將涉及到計(jì)算機(jī)科學(xué)、心理學(xué)、哲學(xué)和語(yǔ)言學(xué)等學(xué)科。可以說(shuō)幾乎是自然科學(xué)和社會(huì)科學(xué)的所有學(xué)科,其范圍已遠(yuǎn)遠(yuǎn)超出了計(jì)算機(jī)科學(xué)的范疇,人工智能與 思維科學(xué)的關(guān)系是實(shí)踐和理論的關(guān)系,人工智能是處于思維科學(xué)的技術(shù)應(yīng)用層次,是它的一個(gè)應(yīng)用分支。從思維觀點(diǎn)看,人工智能不僅限于邏輯思維,要考慮形象思維、靈感思維才能促進(jìn)人工智能的突破性的發(fā)展,數(shù)學(xué)常被認(rèn)為是多種學(xué)科的基礎(chǔ)科學(xué),數(shù)學(xué)也進(jìn)入語(yǔ)言、思維領(lǐng)域,人工智能學(xué)科也必須借用數(shù)學(xué)工具,數(shù)學(xué)不僅在標(biāo)準(zhǔn)邏輯、 模糊數(shù)學(xué)等范圍發(fā)揮作用,數(shù)學(xué)進(jìn)入人工智能學(xué)科,它們將互相促進(jìn)而更快地發(fā)展。

2.技術(shù)研究

用來(lái)研究人工智能的主要物質(zhì)基礎(chǔ)以及能夠?qū)崿F(xiàn)人工智能技術(shù)平臺(tái)的機(jī)器就是計(jì)算機(jī),人工智能的發(fā)展歷史是和計(jì)算機(jī) 科學(xué)技術(shù)的發(fā)展史聯(lián)系在一起的。除了 計(jì)算機(jī)科學(xué)以外,人工智能還涉及 信息論、 控制論、 自動(dòng)化、 仿生學(xué)、 生物學(xué)、 心理學(xué)、 數(shù)理邏輯、 語(yǔ)言學(xué)、 醫(yī)學(xué)和 哲學(xué)等多門(mén)學(xué)科。人工智能學(xué)科研究的主要內(nèi)容包括: 知識(shí)表示、自動(dòng)推理和搜索方法、機(jī)器學(xué)習(xí)和知識(shí)獲取、知識(shí)處理系統(tǒng)、 自然語(yǔ)言理解、 計(jì)算機(jī)視覺(jué)、 智能機(jī)器人、 自動(dòng)程序設(shè)計(jì)等方面。


那么,介紹了這么多,對(duì)Java,架構(gòu),大數(shù)據(jù),人工智能有沒(méi)有一個(gè)大致的了解呢?

不了解的話(huà),也沒(méi)有關(guān)系,小編這里有一套視頻教程可以很完整的把他們給詮釋出來(lái),就不知道你們能不能學(xué)會(huì)了,加油! 小編認(rèn)為你們是可以的。




感覺(jué)怎么樣?是不是很全面?俗話(huà)說(shuō),師傅領(lǐng)進(jìn)門(mén),修行在個(gè)人。還是得不停的磨練自己,修煉自己的內(nèi)功,讓自己變得更加強(qiáng)大!

當(dāng)前標(biāo)題:總算是有人把Java,架構(gòu),大數(shù)據(jù),人工智能講明白了
網(wǎng)頁(yè)鏈接:http://www.muchs.cn/news1/99801.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站服務(wù)器托管、網(wǎng)站收錄、網(wǎng)頁(yè)設(shè)計(jì)公司、小程序開(kāi)發(fā)網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)