mahout是hadoop的乙個機器學習庫,主要的程式設計模型是mapreduce;
每個企業的資料都是多樣的和特別針對他們需求的。然而, 在對那些資料的分析種類上卻沒多少多樣性。mahout專案是實施普通分析計算的乙個hadoop庫。用例包括使用者協同過濾、使用者建議、聚類和分類。
mllib 執行在spark上(乙個基於記憶體計算的框架),
mlib和mahout都執行在hadoop上,底層都是基於hdfs檔案系統;但mlib執行在spark上,主要基於記憶體計算。
mllib目前支援4種常見的機器學習問題:分類、回歸、聚類和協同過濾
mapreduce和spark的主要區別在於,mapreduce使用分布式檔案系統(hdfs)持久儲存,而spark使用彈性分布式資料集(rdds)。spark 在記憶體中處理資料,而 hadoop mapreduce 是通過 map 和 reduce 操作在磁碟中處理資料。
資料處理
mapreduce是一種批量處理引擎。mapreduce以順序步驟來操作,先從集群讀取資料,然後對資料執行操作,將結果寫回到集群,從集群讀 取更新後的資料,執行下乙個資料操作,將那些結果寫回到結果,依次類推。
spark執行類似的操作,不過是在記憶體中一步執行。它從集群讀取資料後,對資料 執行操作,然後寫回到集群。
spark下執行程式如果記憶體溢位怎麼辦?
1 加記憶體, 簡單粗暴
2 將rdd的資料寫入磁碟不要儲存在記憶體之中
3 如果是collect操作導致的記憶體溢位, 可以增大 driver的 memory 引數
簡答說一下hadoop的map-reduce程式設計模型
首先map task會從本地檔案系統讀取資料,轉換成key-value形式的鍵值對集合
使用的是hadoop內建的資料型別,比如longwritable、text等
之後會進行乙個partition分割槽操作,預設使用的是hashpartitioner,可以通過重寫hashpartitioner的getpartition方法來自定義分割槽規則
之後會對key進行進行sort排序,grouping分組操作將相同key的value合併分組輸出,在這裡可以使用自定義的資料型別,重寫writablecomparator的comparator方法來自定義排序規則,重寫rawcomparator的compara方法來自定義分組規則
之後進行乙個combiner歸約操作,其實就是乙個本地段的reduce預處理,以減小後面shufle和reducer的工作量
reduce task會通過網路將各個資料收集進行reduce處理,最後將資料儲存或者顯示,結束整個job
spark之所以快是因為它執行在記憶體之中
rdd:resilient distributed dataset,彈性分布式資料庫。
dataframe:可以從 結構化的資料檔案、hive中的表、外部的資料庫、已存在的rdd來建立。
分布式機器學習筆記1
分布式機器學習筆記 本人是電子資訊領域相關專業女研究生一枚,研究方向下一代移動通訊網路。本科時期玩心未泯 未深入接觸科研。現階段摸索進入科研狀態,有一定知識基礎,自學機器學習 分布式機器學習相關方法知識 比較看重知識的體系性與連貫度,以及自己的思維流等,將較為重要的概念內容記錄於此!分布式機器學習的...
分布式機器學習筆記3
分布式機器學習筆記 基本概述 1 機器學習的優化框架 正則化經驗風險最小化 模型在訓練資料上的平均損失函式值盡可能小 同時對模型複雜度進行懲罰 優化演算法的收斂速率 有效的優化演算法 隨著迭代的進行使輸出模型越來越接近於最優模型 收斂性 e t 趨近於0 收斂速率 一般使用log e t 的衰減速率...
分布式機器學習第3章 分布式機器學習框架
q 需要使用到分布式機器學習有哪三種情形?q 對於計算量太大時的分布式機器學習解決辦法 q 對於訓練資料太多時的分布式機器學習解決辦法 q 對於模型規模太大時的分布式機器學習解決辦法 q 目前分布式機器學習領域的主要矛盾是?q 分布式機器學習的主要組成模組有哪四個?q 分布式機器學習的資料劃分中,對...