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