Spark整合Mongodb的方法
Spark介紹
按照官方的定義,Spark 是一個(gè)通用,快速,適用于大規(guī)模數(shù)據(jù)的處理引擎。
通用性:我們可以使用Spark SQL來(lái)執(zhí)行常規(guī)分析, Spark Streaming 來(lái)流數(shù)據(jù)處理, 以及用Mlib來(lái)執(zhí)行機(jī)器學(xué)習(xí)等。Java,python,scala及R語(yǔ)言的支持也是其通用性的表現(xiàn)之一。
快速: 這個(gè)可能是Spark成功的最初原因之一,主要?dú)w功于其基于內(nèi)存的運(yùn)算方式。當(dāng)需要處理的數(shù)據(jù)需要反復(fù)迭代時(shí),Spark可以直接在內(nèi)存中暫存數(shù)據(jù),而無(wú)需像Map Reduce一樣需要把數(shù)據(jù)寫(xiě)回磁盤(pán)。官方的數(shù)據(jù)表明:它可以比傳統(tǒng)的Map Reduce快上100倍。
大規(guī)模:原生支持HDFS,并且其計(jì)算節(jié)點(diǎn)支持彈性擴(kuò)展,利用大量廉價(jià)計(jì)算資源并發(fā)的特點(diǎn)來(lái)支持大規(guī)模數(shù)據(jù)處理。
環(huán)境準(zhǔn)備
mongodb下載
解壓安裝
啟動(dòng)mongodb服務(wù)
$MONGODB_HOME/bin/mongod --fork --dbpath=/root/data/mongodb/ --logpath=/root/data/log/mongodb/mongodb.log
pom依賴(lài)
<dependency>
<groupId>org.mongodb.spark</groupId>
<artifactId>mongo-spark-connector_2.11</artifactId>
<version>${spark.version}</version>
</dependency>
實(shí)例代碼
object ConnAppTest {
def main(args: Array[String]): Unit = {
val spark = SparkSession.builder()
.master("local[2]")
.appName("ConnAppTest")
.config("spark.mongodb.input.uri", "mongodb://192.168.31.136/testDB.testCollection") // 指定mongodb輸入
.config("spark.mongodb.output.uri", "mongodb://192.168.31.136/testDB.testCollection") // 指定mongodb輸出
.getOrCreate()
// 生成測(cè)試數(shù)據(jù)
val documents = spark.sparkContext.parallelize((1 to 10).map(i => Document.parse(s"{test: $i}")))
// 存儲(chǔ)數(shù)據(jù)到mongodb
MongoSpark.save(documents)
// 加載數(shù)據(jù)
val rdd = MongoSpark.load(spark)
// 打印輸出
rdd.show
}
}
總結(jié)
以上所述是小編給大家介紹的Spark整合Mongodb的方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- linux環(huán)境不使用hadoop安裝單機(jī)版spark的方法
- 淺談七種常見(jiàn)的Hadoop和Spark項(xiàng)目案例
- Python搭建Spark分布式集群環(huán)境
- 使用docker快速搭建Spark集群的方法教程
- centOS7下Spark安裝配置教程詳解
- Spark學(xué)習(xí)筆記(一)Spark初識(shí)【特性、組成、應(yīng)用】
- 初識(shí)Spark入門(mén)
- 詳解Java編寫(xiě)并運(yùn)行spark應(yīng)用程序的方法
- java 中Spark中將對(duì)象序列化存儲(chǔ)到hdfs
- Spark學(xué)習(xí)筆記 (二)Spark2.3 HA集群的分布式安裝圖文詳解
相關(guān)文章
Mongodb 利用mongoshell進(jìn)行數(shù)據(jù)類(lèi)型轉(zhuǎn)換的實(shí)現(xiàn)方法
下面小編就為大家分享一篇Mongodb 利用mongoshell進(jìn)行數(shù)據(jù)類(lèi)型轉(zhuǎn)換的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-12-12
老生常談MongoDB數(shù)據(jù)庫(kù)基礎(chǔ)操作
下面小編就為大家?guī)?lái)一篇老生常談MongoDB數(shù)據(jù)庫(kù)基礎(chǔ)操作。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07
MongoDB數(shù)據(jù)庫(kù)的日志文件深入分析
這篇文章主要給大家介紹了關(guān)于MongoDB數(shù)據(jù)庫(kù)日志的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用MongoDB具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-09-09
MongoDB開(kāi)源數(shù)據(jù)庫(kù)開(kāi)發(fā)工具dbKoda
這篇文章主要介紹了MongoDB開(kāi)源數(shù)據(jù)庫(kù)開(kāi)發(fā)工具dbKoda的相關(guān)資料,需要的朋友可以參考下2017-09-09
MongoDB中文學(xué)習(xí)入門(mén)教程(包括安裝配置和增刪改查)
本文主要介紹了MongoDB的基本知識(shí)和操作,MongoDB是一種面向文檔的無(wú)結(jié)構(gòu)化數(shù)據(jù)庫(kù)系統(tǒng),具有靈活性、可擴(kuò)展性和高性能等優(yōu)點(diǎn),安裝和配置MongoDB也非常簡(jiǎn)單,使用MongoDB的API進(jìn)行操作也非常方便,在實(shí)際使用中,MongoDB可以作為常規(guī)數(shù)據(jù)存儲(chǔ)或NoSQL解決方案的替代品2024-01-01
mongodb root用戶(hù)創(chuàng)建數(shù)據(jù)庫(kù)提示not master的解決
這篇文章主要介紹了mongodb root用戶(hù)創(chuàng)建數(shù)據(jù)庫(kù)提示not master的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。2023-02-02
MongoDB 學(xué)習(xí)筆記(一)-MongoDB配置
MongoDB 是一個(gè)基于分布式文件存儲(chǔ)的數(shù)據(jù)庫(kù)。接下來(lái)通過(guò)本文給大家介紹MongoDB 學(xué)習(xí)筆記(一)MongoDB配置的相關(guān)資料,需要的朋友可以參考下2016-05-05
MongoDB系列教程(二):MongoDB簡(jiǎn)介
這篇文章主要介紹了MongoDB系列教程(二):MongoDB簡(jiǎn)介,本文講解了MongoDB介紹、MongoDB功能特性、mongoDB數(shù)據(jù)架構(gòu)等內(nèi)容,需要的朋友可以參考下2015-05-05

