總結時間:2014-7html
總結人: 江中煉mysql
1.其實,我但願你們看了不是看完就算了,也不要謝謝個人總結,我但願的傳遞這種共享的精神就像,你拿到這個總結之後,你自私的整合了你的東西,後期你不與別人分享,之後就沒人與你來分享了,由於這種相信對於朋友,只有一次,若是受過傷,天然就不會繼續傳遞了web
2.但願咱們一塊兒傳遞正能力,傳遞開源和共享,作一個無私,並願意幫助別人並與別人分享的人。謝謝你們合做,我討厭自私的,更討厭那種用別人東西的人,還不與別人分享的人面試
我就講講咱們的項目吧:算法
談咱們最近的聯通郵箱項目吧sql
既然是項目,咱們確定是有目的的,咱們那麼的目的是幹嗎呢?數據庫
是盈利?不是,是提升用戶的親密度,作產品推廣,既然是產品推廣,那麼個人考慮的問題就是如何推廣apache
既然是作推廣,咱們就得分析咱們的用戶人羣勒緩存
第1:用戶數據量的問題網絡
第2:用戶使用狀況
第3:統計分析
第4:針對性的去活動刺激、或者產品優化、反正就是知足這幫人羣
第5:再進行分析統計,而後分析咱們最終的效果
那麼上億級別的數據量,咱們用傳統框架,明顯不靠譜,這個mysql徹底不行,oracle太貴,效率通常,咱們從開發成本考慮到了用大數據hadoop來解決這個大數據量的問題
(知道的能夠講講,不知道的直接忽略跳過)
那麼我據說大家公司打算作站內搜索,據我瞭解,我對nutch是比較瞭解的,對於這款軟件,我想說:對luence的完美封裝,那麼咱們的技術開發成本較低,而且hadoop是nutch裏面的分割出來一個子項目,也就是nutch對hadoop是完美支持的,咱們如今的問題就是整合,把兩款軟件整合好,利用好,後期就是一些優化的工做勒
至於前臺的查詢索引,咱們仍是可使用開源框架solr,這款框架最大的用戶就是創建索引,方便快速查詢展示,咱們使用該框架式徹底能夠對咱們的數據庫創建相應的索引,固然用戶量不過能夠用關係型數據庫(mysql,oracle),數據量超標之後,這個咱們徹底能夠考慮使用hbase,目前據我瞭解,這兩款框架是能夠完美整合的。
那麼存儲有hadoop,數據快速查詢有hbase<針對用戶>,數據爬取有nutch,創建索引有solr,我想前期這一塊整合好,是很是有優點的。
最後就是前臺的web頁面,我感受就簡單了,作就行
談到了hadoop,那麼他有什麼好處呢?
1. 容錯性 (hdfs 冗餘備份機制/mapreduce 心跳機制,維持job正常完成)
2. 高效性 分佈式文件系統,處理海量數據這也是他的優點
3. 擴展性 就是能夠利用多臺機器,進行分佈式文件存儲
4. 廉價性 下降開發成本,開源免費,硬件要求不高
(講完之後,你就能夠畫一畫mapreduce的底層計算的原理)
(這兩個框架的底層原理,調優,實際的案例)
Hbase架構:http://www.cnblogs.com/shitouer/archive/2012/06/04/2533518.html
Hbase調優:http://blog.csdn.net/dajuezhao/article/details/6887575
Hive架構:http://my.oschina.net/repine/blog/192692
Hive調優:http://my.oschina.net/repine/blog/193869
機器學習領域經典算法的實現,旨在幫助開發人員方便快捷地建立智能應用程序。
Mahout的主要目的是實現可伸縮的機器學習算法(就是算法的M-R化),但也不必定要求基於Hadoop平臺,核心庫中某些非分佈式的算法也具備很好的性能
目標是幫助開發人員快速創建具備機器智能的應用程序,目前比較成熟和活躍的主要包括:
1. 頻繁模式挖掘
a) Apriori算法
b) FP樹
c) FP-Growth算法
d) PFP算法
2. 聚類算法
a) K-means
b) Canopy聚類
c) 模糊K均值
3. 分類器
a) 貝葉斯
b) 隨機森林
c) 神經網絡
d) 決策樹(ID3,C4.5)
4. 推薦系統
a) kNN(k-nearest neighbor / Fix-size neighborhoods) 固定數量的鄰居
i. 基於用戶的協同過濾算法UserCF
ii. 基於物品的協同過濾算法ItemCF
b) Threshold-based neighborhoods基於類似度門檻的鄰居
i. 基於用戶的協同過濾算法UserCF
ii. 基於物品的協同過濾算法ItemCF
以UserCF的推薦算法爲例,官方建議咱們的開發過程:
模型à類似度à最近鄰à推薦算法
談到spark,如今mahout作數據挖掘,固然須要時時計算
因此apache mahout官網說:goodbye mapreduce
那麼spark究竟是一個什麼呢?
1. Spark是UC Berkeley AMP lab所開源的類Hadoop MapReduce的通用的並行計算框架
2. Spark基於map reduce算法實現的分佈式計算,擁有Hadoop MapReduce所具備的優勢;3. 但不一樣於MapReduce的是Job中間輸出和結果能夠保存在內存中,從而再也不須要讀寫
HDFS
4. 因爲RDD的特性,Spark不適用那種異步細粒度更新狀態的應用,例如web服務的存儲或者是增量的web爬蟲和索引。就是對於那種增量修改的應用模型不適合
(RDD是什麼呢?
Spark還引入了一個抽象概念,即彈性分佈式數據集RDD(resilient distributed datasets )。RDD是一個分佈在一組節點之間的只讀的對象集合。這些集合是彈性的,即可以在部分數據集丟失的狀況下重建。重建部分數據集的過程須要一種維護血統(lineage,即重建部分數據集所需的信息,說明數據是根據什麼過程產生的)的容錯機制支持。
一個RDD能夠是:(1)一個從文件建立的Scala對象,或(2)一個並行切片(分佈在各個節點之間),或(3)從其餘RDD轉換得來,或(4)改變已有RDD的持久性,如請求將已有RDD緩存在內存中。
)
總結:所以Spark能更好地適用於數據挖掘與機器學習等須要迭代的map reduce的算法。
Spark能夠直接對HDFS進行數據的讀寫,一樣支持Spark on YARN。
Spark能夠與MapReduce運行於同集羣中,共享存儲資源與計算,數據倉庫Spark實現上借用Hive,幾乎與Hive徹底兼容。
我總結的比較少:
1.面試了不少家企業吧,小公司,大公司,加起來將近15家左右,其實就像不少人想的同樣,去大公司,或者創業型公司(其餘公司就儘量不去考慮,都是爲了利益,因此請謹慎選擇)
2.我前期是以本科學歷去面試,基本上技術都過了,可是價格談不高,我也不知道爲何,總感受好像他們沒有意識到你的價值所在;或者說你的水平沒有體現出來,還有就是你對本身的人生規劃沒有規劃好,別人就不打算考慮你勒(
我想:我tm這麼小的孩子,能規劃好本身的人生,我tm還來你這個破地方幹嗎,我知道本身將來是什麼樣子,我早就去創業去了,我艹,這些人tm就閒的蛋疼!
不過這些人的存在仍是有必定道理的,就是判斷你是一個什麼樣的人,就像我能從你的話語中知道你將來的發展是什麼樣子的,因此那麼單純一點,要麼老成一點,不要太彆扭了,不知道就說不知道,不要吞吞吐吐的,人生的規劃是一個長期的想法,因此你臨時拼湊的話別人是看的出來的。
若是不知道就說:我如今只想好好的工做,盡本身的最大能力去完成並優化本身的工做,提高公司效率,其餘的我沒想過,就這麼簡單那,不要搞得太複雜了,有時候你回去,聽你本身的話,你都感受到可笑,更況且那些都是職場老手,見過的人,比你喝過的水都多,因此見機行事)
3.最後我想通了,作真誠的人,我就以高中學歷開始投,其實不少公司,特別是創業型公司,不會看重你的學歷,還有一些正在向上發展得上市公司,對學歷要求每那麼高,要的是能力,
對於百度,我只想說:人家看的不光是能力,還有學歷。以我這個水平,作ETL,我感受15k徹底能夠拿下,對於我來講,沒問題,我能作,可是我沒學歷。這是事實,因此更要讓本身牛逼,讓別人爲你破格。這都是後話
其實這並無錯,錯的是咱們之前沒有 努力的去學習,因此堅持學習,奮鬥,坦誠的作事,我相信會有結果的
4.大家會說:我運氣好,我找到工做,其實我也是這樣認爲的,我運氣還不錯;就像不少人說誠實在中國的確是一個奢侈品。就像無私分享在中國也是奢侈品同樣
5.不過對大家剛找工做的人來講,或者經驗機會沒有的人來講:你能夠包裝,其實這個你能力夠,你能夠作到的,甚至你的能力都超過了工做過幾年的人。
可是若是你想真誠的作事,心安理得:就投個實習生,而後寫出你會的公司,作過的項目,個人能力是能夠爲個人經驗少做支撐的,我相信,儘管這樣的公司不多(就像我如今一直堅持開源共享同樣,我沒有吹牛逼,我真的是這樣作,個人學歷都改了,都是真實的,項目固然這個事須要包裝的,這個跟你的經驗不要緊,跟你的靈活性有關了,若是你獨立的作一個項目出來,寫出項目,和流程,優化;別人願意培養的,你放心,可是仍是須要耐心)
對於這個面試必備的東西,沒有版權問題,隨便傳遞,可是請不要作一個自私的人。
記得咱們的口號:
開源共享
座右銘:
你在你擅長的領域牛逼,
並帶着一羣小白變牛逼,
別人會發自心裏的去尊重你的。
--請點擊加入咱們
如今算法這一塊仍是比較欠缺,我想找一個朋友幫忙完善一下博客
若是你們這樣願意分享交流的朋友,請及時推薦給我,謝謝
聯繫方式:(外號:小頭)
QQ:529815144 || QQ羣:214293307