首頁 > 軟體

Mapreduce分散式並行程式設計

2022-08-05 14:00:22

1.什麼是平行計算

傳統平行計算:共用同一個資料,通過鎖來控制資料的讀寫,難度大,容易導致死鎖,拓展性差。但是是實時的,細顆粒度計算,計算密集型

Mapreduce:對機器的要求低,拓展性難,便宜,拓展性強,批次處理場景,非實時,資料密集型(傻大)

map:分配工作任務給不同的人,並讓其完成工作(工作相互獨立,不互相為上下環節)

reduce:把不同的結果集合並 再加上分散式

2.現在mapreduce能做什麼?

map:對映

1.如小寫字母變成大寫字母 map

2.把年齡小於16歲的都去掉 map

3.把美元變成人民幣 y=x∗6.3y=x * 6.3y=x∗6.3 map

4.地址庫的一個翻譯:省市縣 map

5.(只要是一些處理資料相關的,都應當是在map上)

reduce:做比較,工作整合,上下游

1.統計年薪最高的人 (一個組)key

2.按照男女計算平均年齡 (倆個組)key

3.排序 reduce

有些操作放在map、reduce裡面都可以

a-------->a----->A

map--------- reduce ×

前提:儘量要減少資料的流動,reduce階段資料越少越好,能在map做就在map做掉

資料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和female

reduce:按照key進行彙集 F(25,38,23),M(45,23)

reduce:avg

如:Select max(age),gender from people這裡和上面差不多,但是就沒有key了放在同一個地方

oss和hive的區別?

在檔案系統上

實驗部分:

1. 搭建各類環境

為了模擬真實情況,我這裡搭建了分散式的hadoop叢集,分別有三臺機器。一臺做master,一臺做slave。

2. 搭建、設定zookeeper

3. 啟動zookeeper

/usr/zookeeper/zookeeper-3.4.10/bin/zkServer.sh start

4. 安裝設定java

5. 主從節點格式化

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檢視已經啟動的

以上就是Mapreduce分散式並行程式設計的詳細內容,更多關於Mapreduce分散式的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com