AI工程師職業規劃和學習路線完整版

AI工程師職業規劃和學習路線完整版

如何成為一名機器學習算法工程師

成為一名合格的開發工程師不是一件簡單的事情,需要掌握從開發到調試到優化等一系列能 力,這些能力中的每一項掌握起來都需要足夠的努力和經驗。而要成為一名合格的機器學習算法工程師(以下簡稱算法工程師)更是難上加難,因為在掌握工程師的通用技能以外,還需要掌握一張不算小的機器學習算法知識網絡。下面我們就將成為一名合格的算法工程師所需的技能進行拆分,一起來看一下究竟需要掌握哪些技能才能算是一名合格的算法工程師。

?

AI工程師職業規劃和學習路線完整版

基礎開發能力

所謂算法工程師,首先需要是一名工程師,那么就要掌握所有開發工程師都需要掌握的一些能力。有些同學對于這一點存在一些誤解,認為所謂算法工程師就只需要思考和設計算法,不用在乎這些算法如何實現,而且會有人幫你來實現你想出來的算法方案。這種思想是錯誤的,在大多數企業的大多數職位中,算法工程師需要負責從算法設計到算法實現再到算法上線這一個全流程的工作。

小編曾經見過一些企業實行過算法設計與算法實現相分離的組織架構,但是在這種架構下,說不清楚誰該為算法效果負責,算法設計者和算法開發者都有一肚子的苦水,具體原因不在本文的討論范疇中,但希望大家記住的是,基礎的開發技能是所有算法工程師都需要掌握的。

基礎開發所涉及到的技能非常的多,在這里只挑選了兩個比較重要的點來做闡述。

AI工程師職業規劃和學習路線完整版

單元測試

在企業應用中,一個問題的完整解決方案通常包括很多的流程,這其中每個環節都需要反復迭代 優化調試,如何能夠將復雜任務進行模塊劃分,并且保證整體流程的正確性呢?最實用的方法就是單元測試。

單元測試并不只是簡單的一種測試技能,它首先是一種設計能力。并不是每份代碼都可以做單元測試,能做單元測試的前提是代碼首先是可以劃分為多個單元——也就是模塊的。在把項目拆解成可獨立開發和測試的模塊之后,再加上對每個模塊的獨立的、可重復的單元測試,就可以保證每個模塊的正確性,如果每個模塊的正確性都可以保證,那么整體流程的正確性就可以得到保證。

對于算法開發這種流程變動頻繁的開發活動來講,做好模塊設計和單元測試是不給自己和他人挖坑的重要保證。也是能讓自己放心地對代碼做各種改動優化的重要前提。

邏輯抽象復用

邏輯的抽象復用可以說是所有軟件開發活動中最為重要的一條原則,衡量一個程序員代碼水平的重要原則之一就是看他代碼中重復代碼和相似代碼的比例。大量重復代碼或相似代碼背后反映的是工程師思維的懶惰,因為他覺得復制粘貼或者直接照著抄是最省事的做法。這樣做不僅看上去非常的丑陋,而且也非常容易出錯,更不用提維護起來的難度。

算法開發的項目中經常會有很多類似邏輯的出現,例如對多個特征使用類似的處理方法,還有原始數據 ETL 中的很多類似處理方法。如果不對重復邏輯做好抽象,代碼看上去全是一行行的重復代碼,無論是閱讀起來還是維護起來都會非常麻煩。

AI工程師職業規劃和學習路線完整版

概率和統計基礎

概率和統計可以說是機器學習領域的基石之一,從某個角度來看,機器學習可以看做是建立在概率思維之上的一種對不確定世界的系統性思考和認知方式。學會用概率的視角看待問題,用概率的語言描述問題,是深入理解和熟練運用機器學習技術的最重要基礎之一。

概率論內容很多,但都是以具體的一個個分布為具體表現載體體現出來的,所以學好常用的概率分布及其各種性質對于學好概率非常重要。對于離散數據,伯努利分布、二項分布、多項分布、Beta 分布、狄里克萊分布以及泊松分布都是需要 理解掌握的內容;對于離線數據,高斯分布和指數分布族是比較重要的分布。這些分布貫穿著機器學習的各種模型之中,也存在于互聯網和真實世界的各種數據之中,理解了數據的分布,才能知道該對它們做什么樣的處理。

此外,假設檢驗的相關理論也需要掌握。在這個所謂的大數據時代,最能騙人的大概就是數據了,掌握了假設檢驗和置信區間等相關理論,才能具備分辨數據結論真偽的能力。例如兩組數據是否真的存在差異,上線一個策略之后指標是否真的有提升等等。這種問題在實際工作中非常常見,不掌握相關能力的話相當于就是大數據時代的睜眼瞎。

在統計方面,一些常用的參數估計方法也需要掌握,典型的如最大似然估計、最大后驗估計、EM 算法等。這些理論和最優化理論一樣,都是可以應用于所有模型的理論,是基礎中的基礎。

AI工程師職業規劃和學習路線完整版

機器學習理論

雖然現在開箱即用的開源工具包越來越多,但并不意味著算法工程師就可以忽略機器學習基礎理論的學習和掌握。這樣做主要有兩方面的意義:

掌握理論才能對各種工具、技巧靈活應用,而不是只會照搬套用。只有在這個基礎上才能夠真正具備搭建一套機器學習系統的能力,并對其進行持續優化。否則只能算是機器學習搬磚工人,算不得合格的工程師。出了問題也不會解決,更談不上對系統做優化。

學習機器學習的基礎理論的目的不僅僅是學會如何構建機器學習系統,更重要的是,這些基礎理論里面體現的是一套思想和思維模式,其內涵包括概率性思維、矩陣化思維、最優化思維等多個子領域,這一套思維模式對于在當今這個大數據時代做數據的處理、分析和建模是非常有幫助的。如果你腦子里沒有這套思維,面對大數據環境還在用老一套非概率的、標量式的思維去思考問題,那么思考的效率和深度都會非常受限。

機器學習的理論內涵和外延非常之廣,絕非一篇文章可以窮盡,所以在這里我列舉了一些比較核心,同時對于實際工作比較有幫助的內容進行介紹,大家可在掌握了這些基礎內容之后,再不斷探索學習。

AI工程師職業規劃和學習路線完整版

基礎理論

所謂基礎理論,指的是不涉及任何具體模型,而只關注“學習”這件事本身的一些理論。以下是一些比較有用的基礎概念:

VC 維。VC 維是一個很有趣的概念,它的主體是一類函數,描述的是這類函數能夠把多少個樣本 的所有組合都劃分開來。VC 維的意義在哪里呢? 它在于當你選定了一個模型以及它對應的特征之后,你是大概可以知道這組模型和特征的選擇能 夠對多大的數據集進行分類的。此外,一類函數的 VC 維的大小,還可以反應出這類函數過擬合的可能性。

信息論。從某種角度來講,機器學習和信息論是同一個問題的兩個側面,機器學習模型的優化過程同時也可以看作是最小化數據集中信息量的過程。對信息論中基本概念的了解,對于機器學習理論的學習是大有裨益的。例如決策樹中用來做分裂決策依據的信息增益,衡量數據信息量的信息熵等等,這些概念的理解對于機器學習問 題神本的理解都很有幫助。

正則化和 bias-variance tradeoff。如果說現階段我國的主要矛盾是“人民日益增長的美好生活需要和不平衡不充分的發展之間的矛盾”,那么機器學習中的主要矛盾就是模型要盡量擬合數據和模型不能過度擬合數據之間的矛盾。而化解這一矛盾的核心技術之一就是正則化。正則化的具體方法不在此討論,但需要理解的,是各種正則化方法背后透露出的思想:bias-variance tradoff。在不同利益點之間的平衡與取舍是各種算法之間的 重要差異,理解這一點對于理解不同算法之間的核心差異有著非常重要的作用。

最優化理論。絕大多數機器學習問題的解決,都可以劃分為兩個階段:建模和優化。所謂建模就是后面我們會提到的各種用模型來描述問題的方法,而優化就是建模完成之后求得模型的最優參數的過程。機器學習中常用的模型有很多, 但背后用到的優化方法卻并沒有那么多。換句話說,很多模型都是用的同一套優化方法,而同一個優化方法也可以用來優化很多不同模型。對各種常用優化方法的和思想有所有了解非常有必要,對于理解模型訓練的過程,以及解釋各種 情況下模型訓練的效果都很有幫助。這里面包括最大似然、最大后驗、梯度下降、擬牛頓法、L-BFGS 等。

機器學習的基礎理論還有很多,可以先從上面的概念學起,把它們當做學習的起點,在學習過程中 還會遇到其他需要學習的內容,就像一張網絡慢慢鋪開一樣,不斷積累自己的知識。這方面基礎理論的學習,

AI工程師職業規劃和學習路線完整版

有監督學習

在了解了機器學習的基本概念之后,就可以進入到一些具體模型的學習中了。在目前的工業實踐中,有監督學習的應用面仍然是最廣泛的,這是因為我們現實中遇到的很多問題都是希望對某個事物的某個屬性做出預測,而這些問題通過合理的抽象和變換,都可以轉化為有監督學習的問題。

在學習復雜模型之前,我建議大家都先學習幾個最簡單的模型,典型的如樸素貝葉斯。樸素貝葉斯有很強的假設,這個假設很多問題都不滿足,模型結構也很簡單,所以其優化效果并不是最好的。但也正是由于其簡單的形式,非常利于學習者深入理解整個模型在建模和優化過程中的每一步,這對于搞清楚機器學習是怎么一回事情是非常有用的。

同時,樸素貝葉斯的模型形式通過一番巧妙的變換之后,可以得到和邏輯回歸形式上非常統一的結果,這無疑提供了對邏輯回歸另外一個角度的解釋,對于更加深刻理解邏輯回歸這一最常用模型有著非常重要的作用。

在掌握了機器學習模型的基礎流程之后,需要學習兩種最基礎的模型形式:線性模型和樹形模型,分別對應著線性回歸/邏輯回歸和決策回歸/分類樹。現在常用的模型,無論是淺層模型還是深度學習的深層模型,都是基于這兩種基礎模型形式變幻而來。而學習這兩種模型的時候需要仔細思考的問題是:這兩種模型的本質差異是什么?為什么需要有這兩種模型?他們在訓練和預測的精度、效率、復雜度等方面有什么差異?了解清楚這些本質的差異之后,才可以做到根據問題和數據的具體情況對模型自如運用。

在掌握了線性模型和樹形模型這兩種基礎形式之后,下一步需要掌握的是這兩種基礎模型的復雜形式。其中線性模型的復雜形式就是多層線性模型,也就是神經網絡。樹模型的復雜形式包括以 GDBT 為代表的 boosting 組合,以及以隨機森林為代表的 bagging 組合。

這兩種組合模型的意義不僅在于模型本身,boosting 和 bagging 這兩種組合思 想本身也非常值得學習和理解,這代表了兩種一般性的強化方法:boosting 的思想是精益求精,不斷在之前的基礎上繼續優化;而 bagging 的思想是 “三個臭裨將頂一個諸葛亮”,是通過多個弱分類器的組合來得到一個強分類器。這兩種組合方法各有優劣,但都是在日常工作中可以借鑒的思想。例如在推薦系統中所我們經常會使用多個維度的數據做召回源,從某個角度來看就是一種bagging的思想:每個單獨召回源并不能給出最好表現,但是多個召回源組合之后,就可以得到比每個單獨召回源都要好的結果。所以說思想比模型本身更重要。

AI工程師職業規劃和學習路線完整版

無監督學習

有監督學習雖然目前占了機器學習應用的大多數場景,但是無監督學習無論從數據規模還是作用上來講也都非常的重要。無監督學習的一大類內容是在做聚類,做聚類的意義通常可以分為兩類:一類是將聚類結果本身當做最終的目標,另一類是將聚類的結果再作為特征用到有監督學習中。但這兩種意義并不是和某種聚類方法具體綁定,而只是聚類之后結果的不同使用方式,這需要在工作中不斷學習、積累和思考。而在入門學習階段需要掌握的,是不同聚類算法的核心差異在哪里。

例如最常用的聚類方法中,kmeans 和 DBSCAN 分別適合處理什么樣的問題?高斯混合模型有著什么樣的假設?LDA 中文檔、主題和詞之間是什么關系?這些模型最好能夠放到一起來學習,從而掌握它們之間的聯系和差異,而不是把他們當做一個個孤立的東西來看待。

除 了 聚 類 以 外 ,近 年 來 興 起 的 嵌 入 表 示( embedding representation )也是無監督學習的一種重要方法。這種方法和聚類的差異在于,聚 類的方法是使用已有特征對數據進行劃分,而嵌入表示則是創造新的特征,這種新的特征是對樣 本的一種全新的表示方式。這種新的表示方法提供了對數據全新的觀察視角,這種視角提供了數據處理的全新的可能性。此外,這種做法雖然是從 NLP 領域中興起,但卻具有很強的普適性,可用來處理多種多樣的數據,都可以得到不錯的結果,所以現在已經成為一種必備的技能。

機器學習理論方面的學習可以從《 An Introduction to Statistical Learning with Application in R 》開始,這本書對一些常用模型和理論基礎提供了很好的講解,同時也有適量的習題用來鞏固所學知識。進階學習可使用上面這本書的升級版《 Elements of Statistical Learning 》和著名的《 Pattern Recognition and Machine Learning 》。

開發語言和開發工具

掌握了足夠的理論知識,還需要足夠的工具來將這些理論落地,這部分我們介紹一些常用的語言和工具。

開發語言

近年來 Python 可以說是數據科學和算法領域最火的語言,主要原因是它使用門檻低,上手容易,同時具有著完備的工具生態圈,同時各種平臺對其支持也比較好。所以 Python 方面我就不再贅述。但是在學習 Python 以外,我建議大家可以再學習一下 R 語言,主要原因有以下幾點:

R 語言具有最完備的統計學工具鏈。我們在上面介紹了概率和統計的重要性,R 語言在這方面提供的支持是最全面的,日常的一些統計方面的需求,用 R 來做可能要比用Python 來做還要更快。 Python 的統計科學工具雖然也在不斷完善,但是 R 仍然是統計科學最大最活躍的社區。

向量化、矩陣化和表格化思維的培養。R 中的所有數據類型都是向量化的,一個整形的變量本質上是一個長度為一的一維向量。在此基礎上 R 語言構建了高效的矩陣和( DataFrame )數據類型,并且在上面支持了非常復雜而又直觀的操作方法。這套數據類型和思考方式也在被很多更現代化的語言和工具所采納,例如 Numpy 中的 ndarray,以 及 Spark 最新版本中引入的 DataFrame,可以說都是直接或間接從 R 語言得到的靈感,定義在上面的數據操作也和 R中對 DataFrame 和向量的操作如出一轍。就像學編程都要從 C 語言學起一樣,學數據科學和算法開發我建議大家都學一下 R,學的既是它的語言本身,更是它的內涵思想,對大家掌握和理解現代化工具都大有裨益。

除了 R 以外,Scala 也是一門值得學習的語言。原因在于它是目前將面向對象和函數式兩種編程范式結合得比較好的一種語言,因為它不強求你一定要用函數式去寫代碼,同時還能夠在能夠利用函數式的地方給予了足夠的支持。這使得它的使用門檻并不高,但是隨著經驗和知識的不斷積累,你可以用它寫出越來越高級、優雅的代碼。

開發工具

開發工具方面,Python 系的工具無疑是實用性最高的,具體來說,Numpy、Scipy、sklearn、pandas、Matplotlib 組成的套件可以滿足單機上絕大多數的分析和訓練工作。但是在模型訓練方面,有一些更加專注的工具可以給出更好的訓練精度和性能,典型的如 LibSVM、Liblinear、XGBoost 等。

大數據工具方面,目前離線計算的主流工具仍然是Hadoop和Spark,實時計算方面 Spark Streaming 和 Storm 也是比較主流的選擇。近年來興起的新平臺也比較多,例如 Flink 和 Tensorflow 都是值得關注的。值得一提的是,對于 Hadoop 和 Spark 的掌握,不僅要掌握其編碼技術,同時還要對其運行原理有一定理解,例如,Map-Reduce 的流程在 Hadoop 上是如何實現的,Spark 上什么操作比較耗時,aggregateByKey 和 groupByKey 在運 行原理上有什么差異,等等。只有掌握了這些,才能對這些大數據平臺運用自如,否則很容易出現程序耗時過長、跑不動、內存爆掉等等問題。

架構設計

最后我們花一些篇幅來談一下機器學習系統的架構設計。所謂機器學習系統的架構,指的是一套能夠支持機器學習訓練、預測、服務穩定高效運行的整體系統以及他們之間的關系。在業務規模和復雜度發展到一定程度的時候,機器學習一定會走向系統化、平臺化這個方向。這個時候就 需要根據業務特點以及機器學習本身的特點來設計一套整體架構,這里面包括上游數據倉庫和數據流的架構設計,以及模型訓練的架構,還有線上服務的架構等等。

這一套架構的學習就不像前面的內容那么簡單了,沒有太多現成教材可以學習,更多的是在大量實踐的基礎上進行抽象總結,對當前系統不斷進行演化和改進。但這無疑是算法工程師職業道路上最值得為之奮斗的工作。在這里能給的建議就是多實踐,多總結,多抽象,多迭代。

機器學習算法工程師領域現狀

現在可以說是機器學習算法工程師最好的時代,各行各業對這類人才的需求都非常旺盛。典型的包括以下一些細分行業:

推薦系統。推薦系統解決的是海量數據場景下信息高效匹配分發的問題,在這個過程中,無論是候選集召回,還是結果排序,以及用戶畫像等等方面,機器學習都起著重要的作用。

廣告系統。廣告系統和推薦系統有很多類似的地方,但也有著很顯著的差異,需要在考慮平臺和用戶之外同時考慮廣告主的利益,兩方變成了三方,使得一些問題變復雜了很多。它在對機器學習的利用方面也和推薦類似。

搜索系統。搜索系統的很多基礎建設和上層排序方面都大量使用了機器學習技術,而且在很多網站和 App 中,搜索都是非常重要的流量入口,機器學習對搜索系統的優化會直接影響到整個網站的效率。

風控系統。風控,尤其是互聯網金融風控是近年來興起的機器學習的又一重要戰場。不夸張地說,運用機器學習的能力可以很大程度上決定一家互聯網金融企業的風控能力,而風控能力本身又是這些企業業務保障的核心競爭力,這其中的關系大家可以感受一下。

但是所謂“工資越高,責任越大”,企業對于算法工程師的要求也在逐漸提高。整體來說,一名高級別的算法工程師應該能夠處理“數據獲取→數據分析→模型訓練調優→模型上線”這一完整流程,并對流程中的各種環節做不斷優化。一名工程師入門時可能會從上面流程中的某一個環節做起,不斷擴大自己的能力范圍。 除了上面列出的領域以外,還有很多傳統行業也在不斷挖掘機器學習解決傳統問題的能力,行業的未來可謂潛力巨大。

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/539669.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/539669.shtml
英文地址,請注明出處:http://en.pswp.cn/news/539669.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

oracle 多個with as

主要看多個with的格式 [sql] view plaincopy WITH T3 AS ( SELECT T1.ID, T1.CODE1, T2.DESCRIPTION FROM TB_DATA T1, TB_CODE T2 WHERE T1.CODE1 T2.CODE ), T4 AS ( SELECT T1.ID, T1.CODE2, T2.DESCRIPTION FROM TB_DATA T1, TB_CODE T2 WHERE T1.C…

mysql主鍵 命中率_mysql主鍵問題

MySQL主鍵一. MySQL主鍵設計原則MySQL主鍵應當是對用戶沒有意義的。MySQL主鍵應該是單列的,以便提高連接和篩選操作的效率(當然復合主鍵是可以的,只是不建議)永遠也不要更新MySQL主鍵MySQL主鍵不應包含動態變化的數據,如時間戳、創建時間列、…

Centos7常用命令[掛載文件系統]

Centos7常用命令[掛載文件系統]------------------------------------------------------------------------------# 掛載一個叫做hda2的盤-確定目錄/mnt/hda2已經存在[rootlocalhost ~]# mount /dev/hda2 /mnt/hda2# 卸載一個叫做hda2的盤-先從掛載點/mnt/hda2退出[rootlocalh…

hadoop SecondNamenode

一、定義 * The Secondary Namenode is a helper to the primary Namenode. * The Secondary is responsible for supporting periodic checkpoints * of the HDFS metadata. The current design allows only one Secondary * Namenode per HDFs cluster. * The Secondary Nam…

Tensorflow Python API 翻譯(sparse_ops)

作者:chen_h 微信號 & QQ:862251340 微信公眾號:coderpai 我的博客:請點擊這里計劃現將 tensorflow 中的 Python API 做一個學習,這樣方便以后的學習。 原文鏈接該章介紹有關稀疏張量的API稀疏張量表示對于多維稀疏…

高性能mysql 小查詢_高性能MySql進化論(十一):常見查詢語句的優化

總結一下常見查詢語句的優化方式1 COUNT1. COUNT的作用 COUNT(table.filed)統計的該字段非空值的記錄行數 COUNT(*)或者是COUNT(not nullable field) 統計的是全表的行數如果要是統計全表記錄數,COUNT(*)效率會比COUNT(not nullable fie…

ORA-01861: 文字與格式字符串不匹配

select to_date(20160401000000,yyyy-mm-dd) from dual; ---------- 報錯:ORA-01861: 文字與格式字符串不匹配 原因:字符串20160401000000與要轉換的格式 yyyy-mm-dd 格式不對。 20160401000000 是 yyyymmddhh24miss 格式的 -------- select to_da…

首席架構師徐海峰眼中的架構和出色的架構師

CSDN架構領域編輯采訪了一些與會講師,談談他們將在會上分享的內容、相關技術和程序人生,帶你領略講師風采。 本期我們采訪的講師是來自閱文集團首席架構師徐海峰,主要負責內容中心的網站架構和分布式存儲、分布式計算工作。10年互聯網開發經驗…

java socket建立長連接_Java Web項目中使用Socket通信多線程、長連接的方法

很多時候在javaweb項目中我們需要用到Socket通信來實現功能,在web中使用Socket我們需要建立一個監聽程序,在程序啟動時,啟動socket監聽。我們的應用場景是在java項目中,需要外接如一個硬件設備,通過tcp通信&#xff0c…

hadoop-eclipse-plugin使用

下載hadoop安裝包:http://www.carfab.com/apachesoftware/hadoop/common/hadoop-1.0.2/ 但是沒有plugin,我到這個地方下載的:http://ishare.iask.sina.com.cn/f/23642243.html?fromlikecopy到你的eclipse_home的plugins下面。配置map/reduce…

hadoop eclipse plugin windows下載集合

收集了hadoop穩定版本的eclipse plugin for windows。資源分一律為0分 hadoop-eclipse-plugin-1.2.1.jar http://download.csdn.net/detail/zengmingen/9488180 hadoop-eclipse-plugin-2.2.0.jar http://download.csdn.net/detail/zengmingen/9488182 hadoop-eclipse-pl…

java 記事本界面_JAVA/GUI程序之記事本

自上半年JAVA課程結束后,再也沒有看過JAVA了,最近不是很忙,又簡單的看了看,本博客純屬記錄學習過程,請大神們別笑,其中錯誤是難免的,畢竟是新手寫的博客。下面就進入我們的正題吧,復…

104. Maximum Depth of Binary Tree

104. Maximum Depth of Binary Tree 題目 Given a binary tree, find its maximum depth.The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node. 解析 // Maximum Depth of Binary Tree class Solution { publ…

mapper-reducer word count 實例

統計一個文件里各單詞的個數,假設這個文件很大。 原理如下圖: 編寫代碼: WCMapper.java package zengmg.hadoop.mr.wordcount;import java.io.IOException;import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; …

java 遠程調用url_使用Java的URL/HttpURLConnection進行遠程調用(POST請求)

利用Java的HttpURLConnection進行遠程url請求(調用遠程接口)測試類:請求類型為json,以post方式請求,利用OutputStream寫入數據實體類:public class User implementsSerializable {privateString name;privateString password;publicString ge…

LindDotNetCore~職責鏈模式的應用

回到目錄 職責鏈模式 它是一種設計模塊,主要將操作流程與具體操作解耦,讓每個操作都可以設置自己的操作流程,這對于工作流應用是一個不錯的選擇! 下面是官方標準的定義:責任鏈模式是一種設計模式。在責任鏈模式里&…

MR程序的幾種提交運行模式

MR程序的幾種提交運行模式 本地模型運行 1/在windows的eclipse里面直接運行main方法,就會將job提交給本地執行器localjobrunner執行 ----配置path:D:\hadoop-2.7.2\bin ----配置hadoop_home:D:\hadoop-2.7.2 ----復制 hadoop.dll和winutil…

構件之法讀書筆記04

我們前兩周我們團隊一起制作了一個大學生記賬軟件,但是我們沒有對我們的軟件進行測試,只要是這個功能能夠順利進行,我們就覺得OK。 其實,我認為我們的軟件是有問題的,對于一些極限的操作能否完成,在各種環境…

零點起飛學java視頻_零點起飛學java (劉升華) 高清PDF_IT教程網

資源名稱:零點起飛學java (劉升華) 高清PDF第1篇 java開發基礎第1章 java概述( 教學視頻:37分鐘) 2第2章 基本數據類型及運算( 教學視頻:52分鐘) 14第3章 java程序流程控制( 教學視頻:33分鐘) 36第4章 類與對…

【Spark】開發Spark選擇Java還是Scala?

Spark-Java-Scala-哪種語言 spark java 支持_百度搜索(1 封私信)Spark 中用 Scala 和 java 開發有什么區別? - 知乎(1 封私信)Spark平臺下,scala比java更有優勢么? - 知乎