Spark習題彙總

你这过氧化氢掺水了發表於2024-11-21

目錄
  • 單選
  • 多選

單選

網路中很多資料是以圖的形式呈現的,比如社交網路、交通事故,現場證據採集等,為了解決大型圖的分散式計算問題,最適合採用以下哪種計算框架:

Spark Core

Storm

Pregel (答案)

Dremel


Hadoop的生態系統元件之一Sqoop的功能是?

負責叢集資源排程管理的元件

用來在Hadoop和關聯式資料庫之間的交換資料,改進資料的互操作性 (答案)

用來儲存非結構化和半結構化的鬆散資料

提供高可靠性、高可用、分散式的海量日誌採集


MapReduce的一個基本設計思想是?

提高資料的冗餘度

資料向計算靠攏

計算向資料靠攏 (答案)

提高資料的序列計算速度


經過多年的發展,Hadoop生態系統不斷完善和成熟,目前已經包含多個子專案,其中YARN的主要功能是?

分散式海量日誌採集、聚合和傳輸系統

分散式並行程式設計模型

負責叢集資源排程管理的元件 (答案)

資料倉儲工具


大資料計算模式有以下四種,對電子商務網站購物平臺資料的實時分析處理過程屬於哪一種?

查詢分析計算

批處理計算

圖計算

流計算 (答案)


以下哪個不是Spark的元件?

Spark Streaming

Flink (答案)

GraphX

MLlib


Task是Executor上的工作單元,執行於下面哪個元件上?

Spark Master

Driver Program

Cluster Manager

Worker Node (答案)


在Spark中,為應用構建起基本的執行環境,即由Driver建立一個( ),進行資源的申請、任務的分配和監控

RDD

DAGScheduler

SparkContext (答案)

TaseSet


下面哪個操作肯定是寬依賴?

union

reduceByKey (答案)

filter

map


下面哪個不是 RDD 的特點 ?

可持久化

可修改 (答案)

可序列化

可分割槽


假設有一個RDD的名稱為words,包含9個元素,分別是:(”Hadoop”,1),(”is”,1),(”good”,1),(”Spark”,1),(”is”,1),(”fast”,1),(”Spark”,1),(”is”,1),(”better”,1)。則語句words.groupByKey()的執行結果得到的新的RDD中,所包含的元素是

(”good”,(1,1)),(”Spark”,(1,1,1)),(”is”,1),(”fast”,1)

(”Hadoop”,1),(”is”,1),(”good”,1),(”Spark”,1),(”is”,1)

(”good”,1),(”Spark”,1),(”is”,1),(”fast”,1)

(”Hadoop”,1),(”is”,(1,1,1)),(”good”,1),(”Spark”,(1,1)),(”fast”,1),(”better”,1) (答案)


val words = Array("one", "two", "two", "three", "three", "three")**
val wordPairsRDD = sc.parallelize(words).map(word => (word, 1))
val wordCountsWithGroup = wordPairsRDD. groupByKey().map(t => (t._1, t._2.sum))
**上述語句的執行結果wordCountsWithGroup中包含的元素是

(“one”,1),(“two”,2),(“three”,3) (答案)

(“one”,3),(“two”,2),(“three”,1)

(“one”,1),(“two”,1),(“three”,1)

(“one”,1),(“two”,2),(“three”,1)


下面哪個方法是用來從檔案系統中載入資料建立RDD的

textFile() (答案)

textfile()

parallelize()

txtFile()


下面哪個運算元是行動運算元

reduceByKey()

count() (答案)

makeRDD()

map()


val words = Array("one", "two", "two", "three", "three", "three")**
val wordPairsRDD = sc.parallelize(words).map(word => (word, 1))
wordCountsWithReduce = wordPairsRDD.reduceByKey(+)
**上述語句的執行結果wordCountsWithReduce中包含的元素是

(“one”,1),(“two”,2),(“three”,2)

(“one”,3),(“two”,2),(“three”,1)

(“one”,1),(“two”,2),(“three”,1)

(“one”,1),(“two”,2),(“three”,3) (答案)


下面關於Spark SQL架構的描述錯誤的是:

Spark SQL在Hive相容層面僅依賴HiveQL解析和Hive後設資料

Spark SQL執行計劃生成和最佳化需要依賴Hive來完成 (答案)

在Shark原有的架構上重寫了邏輯執行計劃的最佳化部分,解決了Shark存在的問題

Spark SQL執行計劃生成和最佳化都由Catalyst(函式式關係查詢最佳化框架)負責


以下操作中,哪個不是DataFrame的常用操作:

filter()

sendto() (答案)

select()

printSchema()


關於Shark,下面描述正確的是:

Shark提供了類似Pig的功能

Shark重用了Hive中的HiveQL解析、邏輯執行計劃翻譯、執行計劃最佳化等邏輯

Shark提供了類似Pig的功能

Shark把SQL語句轉換成MapReduce作業 (答案)


要把一個DataFrame儲存到people.json檔案中,下面語句哪個是正確的:

df.write.format("csv").save("people.json")

df.write.csv("people.json")

df.json("people.json")

df.write.json("people.json") (答案)


DataFrame是一種以( )為基礎的分散式資料集

String

Dstreaming

RDD (答案)

Text


( )實現了SQLContext及HiveContext所有功能

DStream

SparkSession (答案)

MR

SparkContext


下面關於Spark Streaming和Storm的描述正確的是:

Spark Streaming和Storm都可以實現毫秒級的流計算

Spark Streaming可以實現毫秒級的流計算,而Storm無法實現毫秒級響應

Spark Streaming和Storm都無法實現毫秒級的流計算

Spark Streaming無法實現毫秒級的流計算,而Storm可以實現毫秒級響應 (答案)


下面描述錯誤的是:

在RDD程式設計中需要生成一個SparkContext物件

執行一個Spark Streaming程式,就需要首先生成一個StreamingContext物件

在Spark SQL程式設計中需要生成一個StreamingContext物件 (答案)

在Spark SQL程式設計中需要生成一個SparkSession物件


下面不屬於Spark Streaming基本輸入源的是:

套接字流

檔案流

雙向資料流 (答案)

RDD佇列流


以下流計算框架中,哪個不是開源的:

Spark Streaming

Yahoo! S4

IBM StreamBase (答案)

Twitter Storm


下面關於Spark Streaming的描述錯誤的是:

Spark Streaming可整合多種輸入資料來源,如Kafka、Flume、HDFS,甚至是普通的TCP套接字

Spark Streaming的資料抽象是DataFrame (答案)

Spark Streaming的基本原理是將實時輸入資料流以時間片為單位進行拆分,然後採用Spark引擎以類似批處理的方式處理每個時間片資料

Spark Streaming最主要的抽象是DStream(Discretized Stream,離散化資料流),表示連續不斷的資料流


下面關於評估器(Estimator)的描述錯誤的是:

評估器實現了方法fit(),它接受一個DataFrame併產生一個轉換器

在機器學習流水線裡,評估器通常是被用來操作 DataFrame資料並生成一個轉換器

評估器是學習演算法或在訓練資料上的訓練方法的概念抽象

評估器實現了方法transfrom(),它接受一個DataFrame併產生一個轉換器 (答案)


下面關於轉換器(Transformer)的描述錯誤的是:

技術上,轉換器實現了一個方法transform(),它透過附加一個或多個列,將一個DataFrame轉換為另一個DataFrame

轉換器是一種可以將一個DataFrame轉換為另一個DataFrame的演算法

一個模型就是一個轉換器,它把一個不包含預測標籤的測試資料集DataFrame打上標籤,轉化成另一個包含預測標籤的 DataFrame

技術上,轉換器實現了一個方法fit(),它透過附加一個或多個列,將一個DataFrame轉換為另一個DataFrame (答案)


下面關於機器學習流水線(PipeLine)的描述,錯誤的是:

流水線構建好以後,就是一個轉換器(Transformer) (答案)

PipelineStage稱為工作流階段,包括轉換器和評估器,比如指標提取和轉換模型訓練等

要構建一個機器學習流水線,首先需要定義流水線中的各個PipelineStage

流水線將多個工作流階段(轉換器和評估器)連線在一起,形成機器學習的工作流,並獲得結果輸出




多選

Flink和Spark一樣,都是基於記憶體的計算框架,都支援流計算,在流式處理方面,以下選項是Flink的主要特點的有:

Flink是一行一行地處理資料 (答案)

Flink支援增量迭代,具有對迭代進行自動最佳化的功能 (答案)

Flink可以支援毫秒級的響應 (答案)

Flink只能支援秒級的響應


關於Hadoop生態系統中HBase與其它部分的關係,以下說法正確的有:

利用Pig和Hive為HBase提供了高層語言支援 (答案)

利用Zookeeper作為協同服務,實現穩定服務和失敗恢復 (答案)

使用HDFS作為高可靠的底層儲存,利用廉價叢集提供海量資料儲存能力 (答案)

使用Sqoop為HBase提供了高效便捷的RDBMS資料匯入功能 (答案)


Hadoop兩大核心組成部分是什麼?

分散式計算框架MapReduce (答案)

資源排程管理框架YARN

分散式協作服務Zookeeper

分散式檔案系統HDFS (答案)


目前學術界和業界比較認可的關於大資料的四個特點是?

資料型別多 (答案)

價值密度低 (答案)

資料量大 (答案)

處理速度快 (答案)


大資料處理的基本流程有以下哪四個步驟?

結果呈現 (答案)

資料採集 (答案)

儲存管理 (答案)

處理分析 (答案)


以下是Spark的主要特點的有?

執行速度快 (答案)

執行模式多樣 (答案)

容易使用,簡潔的API設計有助於使用者輕鬆構建並行程式 (答案)

通用性,Spark提供了完整而強大的技術棧 (答案)


目前的大資料處理典型應用場景可分為哪幾個型別?

複雜的批次資料處理 (答案)

基於實時資料流的資料處理 (答案)

大資料的分散式計算

基於歷史資料的互動式查詢 (答案)


Spark的執行架構包括哪些?

執行程序(Executor) (答案)

任務控制節點Driver Program (答案)

Worker Node (答案)

叢集資源管理器(Cluster Manager) (答案)


以下選項中哪些是Spark的優點?

可以將中間結果持久化到記憶體 (答案)

利用程序模型

表達能力有限

具有高效的容錯性 (答案)


Spark可以採用幾種不同的部署方式,以下正確的部署方式有?

Standalone (答案)

Spark on Mesos (答案)

Spark on YARN (答案)

Local (答案)


Spark部署模式有哪幾種?

YARN模式 (答案)

Standalone模式 (答案)

Local模式(單機模式) (答案)

Mesos模式 (答案)


spark-shell在啟動時,採用yarn-client模式時,以下說法正確的是?

當使用者提交了作業之後,不能關掉Client (答案)

該模式不適合執行互動型別的作業

該模式適合執行互動型別的作業 (答案)

當使用者提交了作業之後,就可以關掉Client


下面描述正確的是:

Spark和Hadoop是競爭關係,二者不能組合使用

Hadoop和Spark不能部署在同一個叢集中

Hadoop只包含了儲存元件,不包含計算元件

Spark是一個分散式計算框架,可以和Hadoop組合使用 (答案)


spark-shell在啟動時,採用yarn-cluster模式時,以下說法正確的是?

該模式不適合執行互動型別的作業 (答案)

該模式適合執行互動型別的作業

當使用者提交了作業之後,就可以關掉Client (答案)

當使用者提交了作業之後,不能關掉Client


HDFS若啟動成功,系統會列出以下哪些程序?

DataNode (答案)

SecondaryNameNode (答案)

HDFS

NameNode (答案)


叢集上執行Spark應用程式的方法步驟有哪些?

檢視叢集資訊以獲得應用程式執行的相關資訊 (答案)

啟動Spark的Master節點和所有Slave節點 (答案)

啟動Hadoop叢集 (答案)

在叢集中執行應用程式JAR包 (答案)


關於Hadoop和Spark的相互關係,以下說法正確的是?

Spark要操作Hadoop中的資料,需要先啟動HDFS (答案)

Spark負責資料的計算 (答案)

Hadoop負責資料的儲存和管理 (答案)

Hadoop和Spark可以相互協作 (答案)


spark-shell在啟動時,採用local[*]時,它的含義是?

使用任意個執行緒來本地化執行Spark

使用與邏輯CPU個數相同數量的程序來本地化執行Spark

使用單個執行緒來本地化執行Spark

使用與邏輯CPU個數相同數量的執行緒來本地化執行Spark (答案)


開發Spark獨立應用程式的基本步驟通常有哪些?

透過spark-submit執行程式 (答案)

編譯打包 (答案)

編寫Spark應用程式程式碼 (答案)

安裝編譯打包工具,如sbt,Maven (答案)


判斷HDFS是否啟動成功,可以透過哪個命令?

spark

start-dfs

jps (答案)

hdfs


以下操作中,哪些是轉換(Transformation)操作

count()

reduceByKey(func) (答案)

filter() (答案)

first()


關於RDD分割槽的作用,下面描述正確的是

增加並行度 (答案)

減少通訊開銷 (答案)

減少並行度

增加時間開銷


RDD操作包括哪兩種型別

分組(GroupBy)

行動(Action) (答案)

連線(Join)

轉換(Transformation) (答案)


以下關於RDD的持久化的描述,正確的是

使用cache()方法時,會呼叫persist(MEMORY_ONLY) (答案)

persist(MEMORY_ONLY):表示將RDD作為反序列化的物件儲存於JVM中,如果記憶體不足,就要按照LRU原則替換快取中的內容 (答案)

透過持久化(快取)機制可以避免重複計算的開銷 (答案)

persist(MEMORY_AND_DISK):表示將RDD作為反序列化的物件儲存在JVM中,如果記憶體不足,超出的分割槽將會被存放在硬碟上 (答案)


以下操作中,哪些是行動(Action)操作

map()

collect() (答案)

reduce() (答案)

groupByKey()


要讀取people.json檔案生成DataFrame,可以使用下面哪些命令:

spark.read.json("people.json") (答案)

spark.read.parquet("people.json")

spark.read.format("csv").load("people.json")

spark.read.format("json").load("people.json") (答案)


下面關於DataFrame的描述正確的是:

Spark能夠輕鬆實現從MySQL到DataFrame的轉化,並且支援SQL查詢 (答案)

DataFrame比原有的RDD轉化方式更加簡單易用,而且獲得了更高的計算效能 (答案)

DataFrame是一種以RDD為基礎的分散式資料集,提供了詳細的結構資訊 (答案)

DataFrame的推出,讓Spark具備了處理大規模結構化資料的能力 (答案)


Shark的設計導致了兩個問題:

Spark是執行緒級並行,而MapReduce是程序級並行,因此,Spark在相容Hive的實現上存線上程安全問題,導致Shark不得不使用另外一套獨立維護的、打了補丁的Hive原始碼分支 (答案)

執行計劃最佳化不依賴於Hive,方便新增新的最佳化策略

執行計劃最佳化完全依賴於Hive,不方便新增新的最佳化策略 (答案)

Spark是程序級並行,而MapReduce是執行緒級並行,因此,Spark在相容Hive的實現上存線上程安全問題,導致Shark不得不使用另外一套獨立維護的、打了補丁的Hive原始碼分支


下面關於為什麼推出Spark SQL的原因的描述正確的是:

可以支援大量的資料來源和資料分析演算法,組合使用Spark SQL和Spark MLlib,可以融合傳統關聯式資料庫的結構化資料管理能力和機器學習演算法的資料處理能力 (答案)

Spark SQL無法對各種不同的資料來源進行整合

Spark SQL無法融合結構化資料管理能力和機器學習演算法的資料處理能力

Spark SQL可以提供DataFrame API,可以對內部和外部各種資料來源執行各種關係操作 (答案)


以下關於流資料特徵的描述,哪些是正確的:

資料順序顛倒,或者不完整,系統無法控制將要處理的新到達的資料元素的順序 (答案)

資料來源眾多,格式複雜 (答案)

資料量大,但是不十分關注儲存,一旦流資料中的某個元素經過處理,要麼被丟棄,要麼被歸檔儲存 (答案)

資料快速持續到達,潛在大小也許是無窮無盡的 (答案)


流計算處理流程一般包括哪三個階段:

資料實時計算 (答案)

實時查詢服務 (答案)

資料實時採集 (答案)

資料彙總分析


以下產品哪些屬於日誌採集元件:

Flume (答案)

MySQL

Scribe (答案)

GraphX


編寫Spark Streaming程式的基本步驟包括:

呼叫StreamingContext物件的start()方法來開始接收資料和處理流程 (答案)

透過建立輸入DStream(Input Dstream)來定義輸入源 (答案)

透過對DStream應用轉換操作和輸出操作來定義流計算 (答案)

透過呼叫StreamingContext物件的awaitTermination()方法來等待流計算程序結束 (答案)


流處理系統與傳統的資料處理系統的不同之處在於:

流處理系統無需使用者主動發出查詢,實時查詢服務可以主動將實時結果推送給使用者 (答案)

流處理系統處理的是歷史的資料,而傳統的資料處理系統處理的是實時的資料

使用者透過流處理系統獲取的是實時結果,而透過傳統的資料處理系統獲取的是過去某一時刻的結果 (答案)

流處理系統處理的是實時的資料,而傳統的資料處理系統處理的是預先儲存好的靜態資料 (答案)


MLlib目前支援的常見的機器學習問題有哪些?

聚類 (答案)

迴歸 (答案)

協同過濾 (答案)

分類 (答案)


下面關於Spark MLlib庫的描述正確的是:

MLlib庫從1.2版本以後分為兩個包:spark.mllib和spark.ml (答案)

spark.mllib包含基於RDD的原始演算法API (答案)

spark.ml則提供了基於RDD的、高層次的API

spark.mllib包含基於DataFrame的原始演算法API


相關文章