Mapreduce分布式并行編程
1.什么是并行計(jì)算
傳統(tǒng)并行計(jì)算:共享同一個(gè)數(shù)據(jù),通過(guò)鎖來(lái)控制數(shù)據(jù)的讀寫,難度大,容易導(dǎo)致死鎖,拓展性差。但是是實(shí)時(shí)的,細(xì)顆粒度計(jì)算,計(jì)算密集型
Mapreduce:對(duì)機(jī)器的要求低,拓展性難,便宜,拓展性強(qiáng),批處理場(chǎng)景,非實(shí)時(shí),數(shù)據(jù)密集型(傻大)
map:分配工作任務(wù)給不同的人,并讓其完成工作(工作相互獨(dú)立,不互相為上下環(huán)節(jié))
reduce:把不同的結(jié)果集合并 再加上分布式
2.現(xiàn)在mapreduce能做什么?
map:映射
1.如小寫字母變成大寫字母 map
2.把年齡小于16歲的都去掉 map
3.把美元變成人民幣 y=x∗6.3y=x * 6.3y=x∗6.3 map
4.地址庫(kù)的一個(gè)翻譯:省市縣 map
5.(只要是一些處理數(shù)據(jù)相關(guān)的,都應(yīng)當(dāng)是在map上)
reduce:做比較,工作整合,上下游
1.統(tǒng)計(jì)年薪最高的人 (一個(gè)組)key
2.按照男女計(jì)算平均年齡 (倆個(gè)組)key
3.排序 reduce
有些操作放在map、reduce里面都可以
a-------->a----->A
map--------- reduce ×
前提:盡量要減少數(shù)據(jù)的流動(dòng),reduce階段數(shù)據(jù)越少越好,能在map做就在map做掉
數(shù)據(jù)SQL:
Select name ,age,gender from people where id =3
1.project(投射)map完成
Select name ,age,gender
2.filter(過(guò)濾)map完成
id=3
3.key(匯集)
如:Select avg(age),gender from peoplemap:age,gender ---project
key:gender(F,M) //分為man和femalereduce:按照key進(jìn)行匯集 F(25,38,23),M(45,23)
reduce:avg
如:Select max(age),gender from people這里和上面差不多,但是就沒(méi)有key了放在同一個(gè)地方
oss和hive的區(qū)別?
在文件系統(tǒng)上
實(shí)驗(yàn)部分:
1. 搭建各類環(huán)境
為了模擬真實(shí)情況,我這里搭建了分布式的hadoop集群,分別有三臺(tái)機(jī)器。一臺(tái)做master,一臺(tái)做slave。
2. 搭建、配置zookeeper
3. 啟動(dòng)zookeeper
/usr/zookeeper/zookeeper-3.4.10/bin/zkServer.sh start
4. 安裝配置java
5. 主從節(jié)點(diǎn)格式化
6. 啟動(dòng)集群
/usr/hadoop/hadoop-2.7.3/sbin/start-all.sh
7. 安裝Scala
8. 啟動(dòng)spark集群
/usr/spark/spark-2.4.0-bin-hadoop2.7/sbin/start-all.sh
9. jps查看已經(jīng)啟動(dòng)的
以上就是Mapreduce分布式并行編程的詳細(xì)內(nèi)容,更多關(guān)于Mapreduce分布式的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
一文學(xué)會(huì)處理SpringBoot統(tǒng)一返回格式
這篇文章主要介紹了一文學(xué)會(huì)處理SpringBoot統(tǒng)一返回格式,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-08-08springboot 整合EhCache實(shí)現(xiàn)單服務(wù)緩存的操作方法
這篇文章主要介紹了springboot 整合EhCache實(shí)現(xiàn)單服務(wù)緩存的操作方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07Java8之lambda最佳實(shí)踐_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
在8 里面Lambda是最火的主題,不僅僅是因?yàn)檎Z(yǔ)法的改變,更重要的是帶來(lái)了函數(shù)式編程的思想,我覺(jué)得優(yōu)秀的程序員,有必要學(xué)習(xí)一下函數(shù)式編程的思想以開(kāi)闊思路2017-06-06Spring Boot解決項(xiàng)目啟動(dòng)時(shí)初始化資源的方法
這篇文章主要給大家介紹了關(guān)于Spring Boot如何解決項(xiàng)目啟動(dòng)時(shí)初始化資源的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-05-05Java編程Post數(shù)據(jù)請(qǐng)求和接收代碼詳解
這篇文章主要介紹了Java編程Post數(shù)據(jù)請(qǐng)求和接收代碼詳解,涉及enctype的三種編碼,post與get等相關(guān)內(nèi)容,具有一定參考價(jià)值,需要的朋友可以了解下。2017-11-11java 從int數(shù)組中獲取最大數(shù)的方法
這篇文章主要介紹了java 從int數(shù)組中獲取最大數(shù)的方法,需要的朋友可以參考下2017-02-02Mybatis中特殊SQL的執(zhí)行的實(shí)現(xiàn)示例
本文主要介紹了Mybatis中特殊SQL的執(zhí)行的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07一文搞懂MyBatis多數(shù)據(jù)源Starter實(shí)現(xiàn)
本文將實(shí)現(xiàn)一個(gè)MyBatis的Springboot的Starter包,引用這個(gè)Starter包后,僅需要提供少量配置信息,就能夠完成MyBatis多數(shù)據(jù)源的初始化和使用,需要的小伙伴可以參考一下2023-04-04