小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

總結(jié) | 最全的Spark基礎(chǔ)知識解答

 看風(fēng)景D人 2016-10-07

1Spark基礎(chǔ)知識

1.Spark是什么?

UCBerkeley AMPlab所開源的類HadoopMapReduce的通用的并行計算框架。

dfsSpark基于mapreduce算法實現(xiàn)的分布式計算,擁有HadoopMapReduce所具有的優(yōu)點;但不同于MapReduce的是Job中間輸出和結(jié)果可以保存在內(nèi)存中,從而不再需要讀寫HDFS,因此Spark能更好地適用于數(shù)據(jù)挖掘與機器學(xué)習(xí)等需要迭代的map reduce的算法。

2.Spark與Hadoop的對比(Spark的優(yōu)勢)

1、Spark的中間數(shù)據(jù)放到內(nèi)存中,對于迭代運算效率更高

2、Spark比Hadoop更通用

3、Spark提供了統(tǒng)一的編程接口

4、容錯性– 在分布式數(shù)據(jù)集計算時通過checkpoint來實現(xiàn)容錯

5、可用性– Spark通過提供豐富的Scala, Java,Python API及交互式Shell來提高可用性

3.Spark有那些組件

1、Spark Streaming:支持高吞吐量、支持容錯的實時流數(shù)據(jù)處理

2、Spark SQL, Data frames: 結(jié)構(gòu)化數(shù)據(jù)查詢


3、MLLib:Spark 生態(tài)系統(tǒng)里用來解決大數(shù)據(jù)機器學(xué)習(xí)問題的模塊

4、GraphX是構(gòu)建于Spark上的圖計算模型

5、SparkR是一個R語言包,它提供了輕量級的方式使得可以在R語言中使用 Spark

2DataFrame相關(guān)知識點

1.DataFrame是什么?

DataFrame是一種以RDD為基礎(chǔ)的分布式數(shù)據(jù)集,類似于傳統(tǒng)數(shù)據(jù)庫中的二維表格。

2.DataFrame與RDD的主要區(qū)別在于?

DataFrame帶有schema元信息,即DataFrame所表示的二維表數(shù)據(jù)集的每一列都帶有名稱和類型。這使得SparkSQL得以洞察更多的結(jié)構(gòu)信息,從而對藏于DataFrame背后的數(shù)據(jù)源以及作用于DataFrame之上的變換進行了針對性的優(yōu)化,最終達到大幅提升運行時效率的目標(biāo)。

反觀RDD,由于無從得知所存數(shù)據(jù)元素的具體內(nèi)部結(jié)構(gòu),Spark Core只能在stage層面進行簡單、通用的流水線優(yōu)化。

3.DataFrame 特性

1、支持從KB到PB級的數(shù)據(jù)量

2、支持多種數(shù)據(jù)格式和多種存儲系統(tǒng)

3、通過Catalyst優(yōu)化器進行先進的優(yōu)化生成代碼

4、通過Spark無縫集成主流大數(shù)據(jù)工具與基礎(chǔ)設(shè)施

5、API支持Python、Java、Scala和R語言

3RDD相關(guān)知識點

1.RDD,全稱為?

Resilient Distributed Datasets,意為容錯的、并行的數(shù)據(jù)結(jié)構(gòu),可以讓用戶顯式地將數(shù)據(jù)存儲到磁盤和內(nèi)存中,并能控制數(shù)據(jù)的分區(qū)。同時,RDD還提供了一組豐富的操作來操作這些數(shù)據(jù)。

2.RDD的特點?

  • 它是在集群節(jié)點上的不可變的、已分區(qū)的集合對象。

  • 通過并行轉(zhuǎn)換的方式來創(chuàng)建如(map, filter, join, etc)。

  • 失敗自動重建。

  • 可以控制存儲級別(內(nèi)存、磁盤等)來進行重用。

  • 必須是可序列化的。

  • 是靜態(tài)類型的。

3.RDD核心概念

Client:客戶端進程,負(fù)責(zé)提交作業(yè)到Master。

Master:Standalone模式中主控節(jié)點,負(fù)責(zé)接收Client提交的作業(yè),管理Worker,并命令Worker啟動分配Driver的資源和啟動Executor的資源。

Worker:Standalone模式中slave節(jié)點上的守護進程,負(fù)責(zé)管理本節(jié)點的資源,定期向Master匯報心跳,接收Master的命令,啟動Driver和Executor。

Driver: 一個Spark作業(yè)運行時包括一個Driver進程,也是作業(yè)的主進程,負(fù)責(zé)作業(yè)的解析、生成Stage并調(diào)度Task到Executor上。包括DAGScheduler,TaskScheduler。

Executor:即真正執(zhí)行作業(yè)的地方,一個集群一般包含多個Executor,每個Executor接收Driver的命令Launch Task,一個Executor可以執(zhí)行一到多個Task。

4.RDD常見術(shù)語

DAGScheduler: 實現(xiàn)將Spark作業(yè)分解成一到多個Stage,每個Stage根據(jù)RDD的Partition個數(shù)決定Task的個數(shù),然后生成相應(yīng)的Task set放到TaskScheduler中。

TaskScheduler:實現(xiàn)Task分配到Executor上執(zhí)行。

Task:運行在Executor上的工作單元

Job:SparkContext提交的具體Action操作,常和Action對應(yīng)

Stage:每個Job會被拆分很多組任務(wù)(task),每組任務(wù)被稱為Stage,也稱TaskSet

RDD:Resilient Distributed Datasets的簡稱,彈性分布式數(shù)據(jù)集,是Spark最核心的模塊和類

Transformation/Action:SparkAPI的兩種類型;Transformation返回值還是一個RDD,Action返回值不少一個RDD,而是一個Scala的集合;所有的Transformation都是采用的懶策略,如果只是將Transformation提交是不會執(zhí)行計算的,計算只有在Action被提交時才會被觸發(fā)。

DataFrame: 帶有Schema信息的RDD,主要是對結(jié)構(gòu)化數(shù)據(jù)的高度抽象。

DataSet:結(jié)合了DataFrame和RDD兩者的優(yōu)勢,既允許用戶很方便的操作領(lǐng)域?qū)ο?,又具有SQL執(zhí)行引擎的高效表現(xiàn)。

5.RDD提供了兩種類型的操作:

transformation和action

1,transformation是得到一個新的RDD,方式很多,比如從數(shù)據(jù)源生成一個新的RDD,從RDD生成一個新的RDD

2,action是得到一個值,或者一個結(jié)果(直接將RDD cache到內(nèi)存中)

3,所有的transformation都是采用的懶策略,就是如果只是將transformation提交是不會執(zhí)行計算的,計算只有在action被提交的時候才被觸發(fā)

6.RDD中關(guān)于轉(zhuǎn)換(transformation)與動作(action)的區(qū)別

transformation會生成新的RDD,而后者只是將RDD上某項操作的結(jié)果返回給程序,而不會生成新的RDD;無論執(zhí)行了多少次transformation操作,RDD都不會真正執(zhí)行運算(記錄lineage),只有當(dāng)action操作被執(zhí)行時,運算才會觸發(fā)。

7.RDD 與 DSM的最大不同是?

DSM(distributed shared memory)

RDD只能通過粗粒度轉(zhuǎn)換來創(chuàng)建,而DSM則允許對每個內(nèi)存位置上數(shù)據(jù)的讀和寫。在這種定義下,DSM不僅包括了傳統(tǒng)的共享內(nèi)存系統(tǒng),也包括了像提供了共享 DHT(distributed hash table) 的 Piccolo 以及分布式數(shù)據(jù)庫等。

8.RDD的優(yōu)勢?

1、高效的容錯機制

2、結(jié)點落后問題的緩和 (mitigate straggler)

3、批量操作

4、優(yōu)雅降級 (degrade gracefully)

9.如何獲取RDD?

1、從共享的文件系統(tǒng)獲取,(如:HDFS)

2、通過已存在的RDD轉(zhuǎn)換

3、將已存在scala集合(只要是Seq對象)并行化 ,通過調(diào)用SparkContext的parallelize方法實現(xiàn)

4、改變現(xiàn)有RDD的之久性;RDD是懶散,短暫的。

10.RDD都需要包含以下四個部分

a.源數(shù)據(jù)分割后的數(shù)據(jù)塊,源代碼中的splits變量

b.關(guān)于“血統(tǒng)”的信息,源碼中的dependencies變量

c.一個計算函數(shù)(該RDD如何通過父RDD計算得到),源碼中的iterator(split)和compute函數(shù)

d.一些關(guān)于如何分塊和數(shù)據(jù)存放位置的元信息,如源碼中的partitioner和preferredLocations0

11.RDD中將依賴的兩種類型

窄依賴(narrowdependencies)和寬依賴(widedependencies)。

窄依賴是指父RDD的每個分區(qū)都只被子RDD的一個分區(qū)所使用。相應(yīng)的,那么寬依賴就是指父RDD的分區(qū)被多個子RDD的分區(qū)所依賴。例如,map就是一種窄依賴,而join則會導(dǎo)致寬依賴

依賴關(guān)系分類的特性:

第一,窄依賴可以在某個計算節(jié)點上直接通過計算父RDD的某塊數(shù)據(jù)計算得到子RDD對應(yīng)的某塊數(shù)據(jù);

第二,數(shù)據(jù)丟失時,對于窄依賴只需要重新計算丟失的那一塊數(shù)據(jù)來恢復(fù);

Spark Streaming相關(guān)知識點

1.Spark Streaming的基本原理

Spark Streaming的基本原理是將輸入數(shù)據(jù)流以時間片(秒級)為單位進行拆分,然后以類似批處理的方式處理每個時間片數(shù)據(jù)

RDD 基本操作

常見的聚合操作:

  1. count(*) 所有值不全為NULL時,加1操作

  2. count(1) 不管有沒有值,只要有這條記錄,值就加1

  3. count(col) col列里面的值為null,值不會加1,這個列里面的值不為NULL,才加1

sum求和

  1. sum(可轉(zhuǎn)成數(shù)字的值) 返回bigint

  2. avg求平均值

  3. avg(可轉(zhuǎn)成數(shù)字的值)返回double

  4. distinct不同值個數(shù)

  5. count(distinct col)

按照某些字段排序

select col1,other... from table where conditio order by col1,col2 [asc|desc]

Join表連接

join等值連接(內(nèi)連接),只有某個值在m和n中同時存在時。

left outer join 左外連接,左邊表中的值無論是否在b中存在時,都輸出;右邊表中的值,只有在左邊表中存在時才輸出。

right outer join 和 left outer join 相反。

Transformation具體內(nèi)容:

reduceByKey(func, [numTasks]) : 在一個(K,V)對的數(shù)據(jù)集上使用,返回一個(K,V)對的數(shù)據(jù)集,key相同的值,都被使用指定的reduce函數(shù)聚合到一起。和groupbykey類似,任務(wù)的個數(shù)是可以通過第二個可選參數(shù)來配置的。

join(otherDataset, [numTasks]) :在類型為(K,V)和(K,W)類型的數(shù)據(jù)集上調(diào)用,返回一個(K,(V,W))對,每個key中的所有元素都在一起的數(shù)據(jù)集

groupWith(otherDataset, [numTasks]) : 在類型為(K,V)和(K,W)類型的數(shù)據(jù)集上調(diào)用,返回一個數(shù)據(jù)集,組成元素為(K, Seq[V], Seq[W]) Tuples。這個操作在其它框架,稱為CoGroup

cartesian(otherDataset) : 笛卡爾積。但在數(shù)據(jù)集T和U上調(diào)用時,返回一個(T,U)對的數(shù)據(jù)集,所有元素交互進行笛卡爾積。

flatMap(func) :類似于map,但是每一個輸入元素,會被映射為0到多個輸出元素(因此,func函數(shù)的返回值是一個Seq,而不是單一元素)

Case 1將一個list乘方后輸出

val input = sc.parallelize(List(1,2,3,4))

val result = input.map(x => x*x)

println(result.collect().mkString(","))

Case 2 wordcount

val textFile = sc.textFile(args(1))

val result = textFile.flatMap(line => line.split("\\s+")).map(word => (word, 1)).reduceByKey(_ + _)

println(result.collect().mkString(","))

result.saveAsTextFile(args(2))

Case 3 打印rdd的元素

rdd.foreach(println) 或者 rdd.map(println).

rdd.collect().foreach(println)

rdd.take(100).foreach(println)

spark SQL

Spark Streaming優(yōu)劣

優(yōu)勢:

1、統(tǒng)一的開發(fā)接口

2、吞吐和容錯

3、多種開發(fā)范式混用,Streaming + SQL, Streaming +MLlib

4、利用Spark內(nèi)存pipeline計算

劣勢:

微批處理模式,準(zhǔn)實時

Storm結(jié)構(gòu):

DStream

1.將流式計算分解成一系列確定并且較小的批處理作業(yè)

2.將失敗或者執(zhí)行較慢的任務(wù)在其它節(jié)點上并行執(zhí)行,執(zhí)行的最小單元為RDD的partition

3.較強的容錯能力

spark stream example code

4日志系統(tǒng)

1.Flume

Flume是一個分布式的日志收集系統(tǒng),具有高可靠、高可用、事務(wù)管理、失敗重啟等功能。數(shù)據(jù)處理速度快,完全可以用于生產(chǎn)環(huán)境。

Flume的核心是agent。

Agent是一個java進程,運行在日志收集端,通過agent接收日志,然后暫存起來,再發(fā)送到目的地。

Agent里面包含3個核心組件:source、channel、sink。

Source組件是專用于收集日志的,可以處理各種類型各種格式的日志數(shù)據(jù),包括avro、thrift、exec、jms、spoolingdirectory、netcat、sequencegenerator、syslog、http、legacy、自定義。source組件把數(shù)據(jù)收集來以后,臨時存放在channel中。

Channel組件是在agent中專用于臨時存儲數(shù)據(jù)的,可以存放在memory、jdbc、file、自定義。channel中的數(shù)據(jù)只有在sink發(fā)送成功之后才會被刪除。

Sink組件是用于把數(shù)據(jù)發(fā)送到目的地的組件,目的地包括hdfs、logger、avro、thrift、ipc、file、null、hbase、solr、自定義。

Apache Kafka是分布式發(fā)布-訂閱消息系統(tǒng)。

它最初由LinkedIn公司開發(fā),之后成為Apache項目的一部分。Kafka是一種快速、可擴展的、設(shè)計內(nèi)在就是分布式的,分區(qū)的和可復(fù)制的提交日志服務(wù)。

Apache Kafka與傳統(tǒng)消息系統(tǒng)相比,有以下不同:

1、它被設(shè)計為一個分布式系統(tǒng),易于向外擴展;

2、它同時為發(fā)布和訂閱提供高吞吐量;

3、它支持多訂閱者,當(dāng)失敗時能自動平衡消費者;

4、它將消息持久化到磁盤,因此可用于批量消費

5分布式搜索

搜索引擎是什么?

搜索引擎是指根據(jù)一定的策略、運用特定的計算機程序從互聯(lián)網(wǎng)上搜集信息,在對信息進行組織和處理后,為用戶提供檢索服務(wù),將用戶檢索相關(guān)的信息展示給用戶的系統(tǒng)。搜索引擎包括全文索引、目錄索引、元搜索引擎、垂直搜索引擎、集合式搜索引擎、門戶搜索引擎與免費鏈接列表等。

Lucene是什么?

Lucene一個高性能、可伸縮的信息搜索庫,即它不是一個完整的全文檢索引擎,而是一個全檢索引擎的架構(gòu),提供了完整的查詢引擎和索引引擎,部分文本分析引擎。

Elasticsearch是什么?

Elasticsearch一個高可擴展的開源的全文本搜索和分析工具。

它允許你以近實時的方式快速存儲、搜索、分析大容量的數(shù)據(jù)。Elasticsearch是一個基于ApacheLucene(TM)的開源搜索引擎。無論在開源還是專有領(lǐng)域,Lucene可以被認(rèn)為是迄今為止最先進、性能最好的、功能最全的搜索引擎庫。

ElasticSearch 有4中方式來構(gòu)建數(shù)據(jù)庫

最簡單的方法是使用indexAPI,將一個Document發(fā)送到特定的index,一般通過curltools實現(xiàn)。

第二第三種方法是通過bulkAPI和UDPbulkAPI。兩者的區(qū)別僅在于連接方式。

第四種方式是通過一個插件-river。river運行在ElasticSearch上,并且可以從外部數(shù)據(jù)庫導(dǎo)入數(shù)據(jù)到ES中。需要注意的是,數(shù)據(jù)構(gòu)建僅在分片上進行,而不能在副本上進行。

ELK是一套常用的開源日志監(jiān)控和分析系統(tǒng)

包括一個分布式索引與搜索服務(wù)Elasticsearch,一個管理日志和事件的工具logstash,和一個數(shù)據(jù)可視化服務(wù)Kibana,logstash 負(fù)責(zé)日志的收集,處理和儲存,elasticsearch 負(fù)責(zé)日志檢索和分析,Kibana 負(fù)責(zé)日志的可視化。

6分布式數(shù)據(jù)庫

1.Hive是什么?

Hive是基于Hadoop的一個數(shù)據(jù)倉庫工具,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表,并提供類SQL查詢功能。本質(zhì)是將HQL轉(zhuǎn)換為MapReduce程序

2.Hive的設(shè)計目標(biāo)?

1、Hive的設(shè)計目標(biāo)是使Hadoop上的數(shù)據(jù)操作與傳統(tǒng)SQL相結(jié)合,讓熟悉SQL編程開發(fā)人員能夠輕松向Hadoop平臺遷移

2、Hive提供類似SQL的查詢語言HQL,HQL在底層被轉(zhuǎn)換為相應(yīng)的MapReduce操作

3、Hive在HDFS上構(gòu)建數(shù)據(jù)倉庫來存儲結(jié)構(gòu)化的數(shù)據(jù),這些數(shù)據(jù)一般來源與HDFS上的原始數(shù)據(jù),使用Hive可以對這些數(shù)據(jù)執(zhí)行查詢、分析等操作。

3.Hive的數(shù)據(jù)模型

  • Hive數(shù)據(jù)庫

  • 內(nèi)部表

  • 外部表

  • 分區(qū)

  • Hive的視圖

Hive在創(chuàng)建內(nèi)部表時,會將數(shù)據(jù)移動到數(shù)據(jù)倉庫指向的路徑,若創(chuàng)建外部表,僅記錄數(shù)據(jù)所在的路徑,不對數(shù)據(jù)位置做任何改變,在刪除表的時候,內(nèi)部表的元數(shù)據(jù)和數(shù)據(jù)會被一起刪除,外部表只會刪除元數(shù)據(jù),不刪除數(shù)據(jù)。這樣來說,外部表要比內(nèi)部表安全,數(shù)據(jù)組織液更加靈活,方便共享源數(shù)據(jù)。

4.Hive的調(diào)用方式

1、Hive Shell

2、Thrift

3、JDBC

4、ODBC

5.Hive的運行機制

1、將sql轉(zhuǎn)換成抽象語法樹

2、將抽象語法樹轉(zhuǎn)化成查詢塊

3、將查詢塊轉(zhuǎn)換成邏輯查詢計劃(操作符樹)

4、將邏輯計劃轉(zhuǎn)換成物理計劃(M\Rjobs)

6.Hive的優(yōu)勢

1、并行計算

2、充分利用集群的CPU計算資源、存儲資源

3、處理大規(guī)模數(shù)據(jù)集

4、使用SQL,學(xué)習(xí)成本低

7.Hive應(yīng)用場景

1、海量數(shù)據(jù)處理

2、數(shù)據(jù)挖掘

3、數(shù)據(jù)分析

4、SQL是商務(wù)智能工具的通用語言,Hive有條件和這些BI產(chǎn)品進行集成

8.Hive不適用場景

1、復(fù)雜的科學(xué)計算

2、不能做到交互式的實時查詢

9.Hive和數(shù)據(jù)庫(RDBMS)的區(qū)別

1、數(shù)據(jù)存儲位置。Hive是建立在Hadoop之上的,所有的Hive的數(shù)據(jù)都是存儲在HDFS中的。而數(shù)據(jù)庫則可以將數(shù)據(jù)保存在塊設(shè)備或本地文件系統(tǒng)中。

2、數(shù)據(jù)格式。Hive中沒有定義專門的數(shù)據(jù)格式,由用戶指定,需要指定三個屬性:列分隔符,行分隔符,以及讀取文件數(shù)據(jù)的方法。數(shù)據(jù)庫中,存儲引擎定義了自己的數(shù)據(jù)格式。所有數(shù)據(jù)都會按照一定的組織存儲。

3、數(shù)據(jù)更新。Hive的內(nèi)容是讀多寫少的,因此,不支持對數(shù)據(jù)的改寫和刪除,數(shù)據(jù)都在加載的時候中確定好的。數(shù)據(jù)庫中的數(shù)據(jù)通常是需要經(jīng)常進行修改。

4、執(zhí)行延遲。Hive在查詢數(shù)據(jù)的時候,需要掃描整個表(或分區(qū)),因此延遲較高,只有在處理大數(shù)據(jù)是才有優(yōu)勢。數(shù)據(jù)庫在處理小數(shù)據(jù)是執(zhí)行延遲較低。

5、索引。Hive沒有,數(shù)據(jù)庫有

6、執(zhí)行。Hive是MapReduce,數(shù)據(jù)庫是Executor

7、可擴展性。Hive高,數(shù)據(jù)庫低

8、數(shù)據(jù)規(guī)模。Hive大,數(shù)據(jù)庫小

hive代碼簡單例子:

創(chuàng)建一個名為”test“的table

create table students (name string,age int,city string,class string) row format delimited fields terminated by ',';

load data local inpath "/opt/students.txt" into table students;

create EXTERNAL table IF NOT EXISTS studentX (name string,age int,city string,class string) partitioned by (grade string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';

alter table studentX add partition (grade='excellent') location '/testM/excellent/';

alter table studentX add partition (grade='good') location '/testM/good/';

alter table studentX add partition (grade='moderate') location '/testM/moderate/';

#加載數(shù)據(jù)

load data inpath "/testtry/studentsm.txt" into table studentX partition (grade='excellent');

load data inpath "/testtry/students.txt" into table studentX partition (grade='good');

show partitions studentX;

select * from studentX where grade='excellent';

表刪除操作:drop table students;

創(chuàng)建一個名為”test“的table

create table students (name string,age int,city string,class string) row format delimited fields terminated by ',';

load data local inpath "/bin/students.txt" into table students;

###

練習(xí):創(chuàng)建外部表,指定數(shù)據(jù)存放位置

create EXTERNAL table IF NOT EXISTS studentX (name string,age int,city string,class string) partitioned by (class string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';

alter table test add partition () location '/testmore/one';

對表進行查詢

Select * from students;

分區(qū)表操作

hive>create table students (name string,age int,city string,class string) partitioned by (class string) row format delimited fields terminated by ',';

hive>load data local inpath "students.txt" into table students partition ();

hive>show partitions students;

hive>select * from students where grade='two';

查詢操作

group by、 order by、 join 、 distribute by、 sort by、 clusrer by、 union all

hive常見操作

Hbase 的模塊:

原子性(是指不會被線程調(diào)度機制打斷的操作,這種操作一旦開始,就一直運行到結(jié)束,中間不會有任何contextswitch(切換到領(lǐng)一個線程)),一致性,隔離性,持久性

Region- Region用于存放表中的行數(shù)據(jù)

Region Server

Master

Zookeeper

HDFS

API

列式存儲格式 Parquet

Parquet 是面向分析型業(yè)務(wù)的列式存儲格式,由 Twitter 和 Cloudera 合作開發(fā), 2015 年 5 月從 Apache 的孵化器里畢業(yè)成為 Apache 頂級項目,最新的版本是 1.8.0 。

列式存儲和行式存儲相比的優(yōu)勢 :

  • 可以跳過不符合條件的數(shù)據(jù),只讀取需要的數(shù)據(jù),降低 IO 數(shù)據(jù)量。

  • 壓縮編碼可以降低磁盤存儲空間。由于同一列的數(shù)據(jù)類型是一樣的,可以使用更高效的壓縮編碼(例如 Run Length Encoding 和 DeltaEncoding )進一步節(jié)約存儲空間。

  • 只讀取需要的列,支持向量運算,能夠獲取更好的掃描性能。

Hive操作

Hive

7其他知識點

MLlib是spark的可以擴展的機器學(xué)習(xí)庫,由以下部分組成:通用的學(xué)習(xí)算法和工具類,包括分類,回歸,聚類,協(xié)同過濾,降維。

數(shù)據(jù)分析常見模式:

1、Iterative Algorithms,

2、Relational Queries,

3、MapReduce,

4、Stream Processing

Scala的好處:

1、面向?qū)ο蠛秃瘮?shù)式編程理念加入到靜態(tài)類型語言中的混合體

2、Scala的兼容性—-能夠與Java庫無縫的交互

3、Scala的簡潔性—-高效,更不容易犯錯

4、Scala的高級抽象

5、Scala是靜態(tài)類型—-類型推斷

6、Scala是可擴展的語言

ElasticSearch 基礎(chǔ)代碼:

8基礎(chǔ)問答題



Q:你理解的Hive和傳統(tǒng)數(shù)據(jù)庫有什么不同?各有什么試用場景。

A:1、數(shù)據(jù)存儲位置。Hive是建立在Hadoop之上的,所有的Hive的數(shù)據(jù)都是存儲在HDFS中的。而數(shù)據(jù)庫則可以將數(shù)據(jù)保存在塊設(shè)備或本地文件系統(tǒng)中。

2、數(shù)據(jù)格式。Hive中沒有定義專門的數(shù)據(jù)格式,由用戶指定,需要指定三個屬性:列分隔符,行分隔符,以及讀取文件數(shù)據(jù)的方法。數(shù)據(jù)庫中,存儲引擎定義了自己的數(shù)據(jù)格式。所有數(shù)據(jù)都會按照一定的組織存儲。

3、數(shù)據(jù)更新。Hive的內(nèi)容是讀多寫少的,因此,不支持對數(shù)據(jù)的改寫和刪除,數(shù)據(jù)都在加載的時候中確定好的。數(shù)據(jù)庫中的數(shù)據(jù)通常是需要經(jīng)常進行修改。

4、執(zhí)行延遲。Hive在查詢數(shù)據(jù)的時候,需要掃描整個表(或分區(qū)),因此延遲較高,只有在處理大數(shù)據(jù)是才有優(yōu)勢。數(shù)據(jù)庫在處理小數(shù)據(jù)是執(zhí)行延遲較低。

5、索引。Hive沒有,數(shù)據(jù)庫有

6、執(zhí)行。Hive是MapReduce,數(shù)據(jù)庫是Executor

7、可擴展性。Hive高,數(shù)據(jù)庫低

8、數(shù)據(jù)規(guī)模。Hive大,數(shù)據(jù)庫小

Q:Hive的實用場景

A:1、Data Ingestion (數(shù)據(jù)攝取)

2、Data Discovery(數(shù)據(jù)發(fā)現(xiàn))

3、Data analytics(數(shù)據(jù)分析)

4、Data Visualization & Collaboration(數(shù)據(jù)可視化和協(xié)同開發(fā))

Q:大數(shù)據(jù)分析與挖掘方法論被稱為CRISP-DM方法是以數(shù)據(jù)為中心迭代循環(huán)進行的六步活動

A:它們分別是:商業(yè)理解、數(shù)據(jù)理解、數(shù)據(jù)準(zhǔn)備、建立模型_、模型評估、結(jié)果部署_。

Q:數(shù)據(jù)分析挖掘方法大致包含 ( ):

A:1.分類 Classification

2.估計Estimation

3.預(yù)測Prediction

4. 關(guān)聯(lián)規(guī)則Association Rules

5. 聚類Cluster

6. 描述與可視化Description and Visualization

Q:在數(shù)據(jù)分析與挖掘中對數(shù)據(jù)的訪問性要求包括?

A:交互性訪問、批處理訪問_、迭代計算、數(shù)據(jù)查詢,HADOOP僅僅支持了其中批處理訪問,而Spark則支持所有4種方式。

Q:Spark作為計算框架的優(yōu)勢是什么?

A:1、Spark的中間數(shù)據(jù)放到內(nèi)存中,對于迭代運算效率更高

2、Spark比Hadoop更通用

3、Spark提供了統(tǒng)一的編程接口

4、容錯性– 在分布式數(shù)據(jù)集計算時通過checkpoint來實現(xiàn)容錯

5、可用性– Spark通過提供豐富的Scala, Java,Python API及交互式Shell來提高可用性

End.

來源:36大數(shù)據(jù)

投稿請發(fā)送郵箱至 info@i#cn,并注明您的個人信息(姓名、個人介紹、聯(lián)系方式)

更多精彩,長按下方圖片中的二維碼,下載APP查看。




    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多