適宜讀者人群
正在使用Mongodb的開發者
傳統Spark生態系統 和 MongoDB在Spark生態的角色
傳統Spark生態系統
Spark生態系統
那麼Mongodb作為一個database, 可以擔任什麼樣的角色呢? 就是數據存儲這部分, 也就是圖中的黑色圈圈HDFS的部分, 如下圖
用MongoDB替換HDFS後的Spark生態系統
Spark+Mongodb生態系統
為什麼要用MongoDB替換HDFS
存儲方式上, HDFS以文件為單位,每個文件64MB~128MB不等, 而MongoDB作為文檔數據庫則表現得更加細顆粒化
MongoDB支持HDFS所沒有的索引的概念, 所以在讀取上更加快
MongoDB支持的增刪改功能比HDFS更加易於修改寫入後的數據
HDFS的響應級別為分鐘, 而MongoDB通常是毫秒級別
如果現有數據庫已經是MongoDB的話, 那就不用再轉存一份到HDFS上了
可以利用MongoDB強大的Aggregate做數據的篩選或預處理
MongoDB Spark Connector介紹
支持讀取和寫入,即可以將計算後的結果寫入MongoDB
將查詢拆分為n個子任務, 如Connector會將一次match,拆分為多個子任務交給spark來處理, 減少數據的全量讀取
MongoDB Spark 示例代碼
計算用類型Type=1的message字符數並按userid進行分組
開發Maven dependency配置
這裡用的是mongo-spark-connector_2.11 的2.0.0版本和spark的spark-core_2.11的2.0.2版本
<dependency>
示例代碼
import com.mongodb.spark._ import org.apache.spark.{SparkConf, SparkContext} import org.bson._ val conf = new SparkConf()
相關推薦
'mongodb索引--1億條記錄的查詢從55.7秒到毫秒級別'
"從頭開始,驗證mongodb的索引的好處。(window7環境下)1 下載mongodb服務器,並解壓到d盤,並使用以下命令啟動 mongod --dbpath D:\\mongodb\\data2 mongo客戶端Robo 3T 去官網下載,安裝3 準備數據,條數為1億...
'Spark內存管理之三:UnifiedMemoryManager分析'
"acquireExecutionMemory方法UnifiedMemoryManager中的accquireExecutionMemory方法:當前的任務嘗試從executor中獲取numBytes這麼大的內存該方法直接向ExecutionMemoryPool索要所需內存...
Spark
2019-08-09
'Linux環境Spark安裝配置及使用(三)'
"7. Spark RDD的高級算子(1) mapPartitionsWithIndex把每個partition中的分區號和對應的值拿出來def mapPartitionsWithIndex[U](f: (Int, Iterator[T]) ⇒ Iterator[U], p...
'Spark大數據處理框架入門-包括生態系統、運行流程以及部署方式'
"Spark 大數據處理框架簡介Apache Spark 是專為大規模數據處理而設計的快速通用的計算引擎。Spark是UC Berkeley AMP lab (加州大學伯克利分校的AMP實驗室)所開源的類Hadoop MapReduce的通用並行框架。Spark,擁有Had...
推薦中...