乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      大數(shù)據(jù)學(xué)習(xí)路線

       Levy_X 2017-07-23
       最近有很多人問我如何學(xué)習(xí)大數(shù)據(jù)?我也是思考了很多時(shí)日才動筆寫下此文。一方面我自己還只是大數(shù)據(jù)學(xué)習(xí)中的一個小學(xué)生,貿(mào)然動筆怕貽笑大方;另一方面大數(shù)據(jù)本身領(lǐng)域博大精深,其涵蓋領(lǐng)域之廣技術(shù)種類之多確實(shí)很難用一篇文章囊括。怎奈“下雨天打孩子,閑著也是閑著”,況筆者一直堅(jiān)持寫技術(shù)類的博客,今天也請?jiān)试S我寫一點(diǎn)務(wù)虛類的東西吧。
          本文的目的是希望給所有大數(shù)據(jù)初學(xué)者規(guī)劃一條比較清晰的學(xué)習(xí)路線,幫助它們開啟大數(shù)據(jù)學(xué)習(xí)之旅。鑒于大數(shù)據(jù)領(lǐng)域內(nèi)的技術(shù)絢麗繁復(fù),每位大數(shù)據(jù)初學(xué)者都應(yīng)該根據(jù)自己的實(shí)際情況制定專屬的學(xué)習(xí)路徑。
          要說當(dāng)下IT行業(yè)什么最火?ABC無出其右。所謂ABC者,AI Big Data Cloud也,即人工智能、大數(shù)據(jù)和云計(jì)算(云平臺)。每個領(lǐng)域目前都有行業(yè)領(lǐng)袖在引領(lǐng)前行,今天我們來討論下大數(shù)據(jù)這個方向。
          大數(shù)據(jù),即Big Data,關(guān)于它的定義很多,我這里不再贅述了。最權(quán)威的莫屬IBM的定義,讀者可以自行查閱。既然本文關(guān)注如何學(xué)習(xí)大數(shù)據(jù),那么我們首先就要定義大數(shù)據(jù)領(lǐng)域內(nèi)的不同角色設(shè)定。這樣各位才能根據(jù)自身實(shí)際情況找準(zhǔn)自己的定位從而開啟學(xué)習(xí)過程。

      角色   
          以我的愚見,當(dāng)下大數(shù)據(jù)行業(yè)有兩類角色:
      • 大數(shù)據(jù)工程
      • 大數(shù)據(jù)分析

          這兩類角色相互依存但又獨(dú)立運(yùn)作,何意?沒有大數(shù)據(jù)工程,大數(shù)據(jù)分析便無從談起;但倘若沒有大數(shù)據(jù)分析,我也實(shí)在想不出大數(shù)據(jù)工程存在的理由。這就類似于結(jié)婚和談戀愛——戀愛的目的是為了結(jié)婚,且不以結(jié)婚為目的的談戀愛都是耍流氓。
          具體來說,大數(shù)據(jù)工程需要解決數(shù)據(jù)的定義、收集、計(jì)算與保存的工作,因此大數(shù)據(jù)工程師們在設(shè)計(jì)和部署這樣的系統(tǒng)時(shí)首要考慮的是數(shù)據(jù)高可用的問題,即大數(shù)據(jù)工程系統(tǒng)需要實(shí)時(shí)地為下游業(yè)務(wù)系統(tǒng)或分析系統(tǒng)提供數(shù)據(jù)服務(wù);而大數(shù)據(jù)分析角色定位于如何利用數(shù)據(jù)——即從大數(shù)據(jù)工程系統(tǒng)中接收到數(shù)據(jù)之后如何為企業(yè)或組織提供有產(chǎn)出的數(shù)據(jù)分析,并且確實(shí)能夠幫助到公司進(jìn)行業(yè)務(wù)改善或提升服務(wù)水平,所以對于大數(shù)據(jù)分析師來說,他們首要解決的問題是發(fā)現(xiàn)并利用數(shù)據(jù)的價(jià)值,具體可能包括:趨勢分析、模型建立以及預(yù)測分析等。
          簡單總結(jié)一下,大數(shù)據(jù)工程角色需要考慮數(shù)據(jù)的收集、計(jì)算(或是處理)和保存;大數(shù)據(jù)分析角色則是執(zhí)行數(shù)據(jù)的高級計(jì)算。

      我們屬于哪種角色?
          既然我們了解了大數(shù)據(jù)領(lǐng)域內(nèi)的角色分類,下面自然就需要“對號入座”確定自己的定位,這樣才能有的放矢地開始大數(shù)據(jù)學(xué)習(xí)。在考慮這個問題時(shí),我們需要參考兩方面的因素:
      • 專業(yè)知識背景
      • 行業(yè)經(jīng)驗(yàn)

          這里的專業(yè)知識背景不是指代學(xué)歷、院校這種背景,而是你對某些IT技術(shù)的了解程度。即使你不是計(jì)算機(jī)專業(yè)出身,只要你對C語言有一腔熱血,怕是C之父Dennis Ritchie也不敢小瞧你。因此,這里的專業(yè)知識其實(shí)就只有兩個:
      • 計(jì)算機(jī)專業(yè)知識,比如操作系統(tǒng),編程語言,計(jì)算機(jī)運(yùn)行原理等
      • 數(shù)學(xué)知識,這里指代的是高等數(shù)學(xué),比如微積分、概率統(tǒng)計(jì)、線性代數(shù)和離散數(shù)學(xué)等, 不是x * x y * y = 1畫出來是什么圖形這樣的數(shù)學(xué)

          而行業(yè)經(jīng)驗(yàn)指的是你相關(guān)領(lǐng)域內(nèi)的工作經(jīng)驗(yàn),具體可以分為三檔:
      • 菜鳥
      • 有一定經(jīng)驗(yàn)的工程師
      • 資深專家——現(xiàn)在在大數(shù)據(jù)領(lǐng)域有個更c(diǎn)ool的名字:數(shù)據(jù)科學(xué)家,比如前百度首席數(shù)據(jù)科學(xué)家:吳恩達(dá)博士

          Okay,現(xiàn)在我們就可以根據(jù)上面的分類來定義自己的角色。比如拿筆者來說,我對自己的定位是:“我是一個計(jì)算機(jī)專業(yè)畢業(yè)的工程師,有一定數(shù)學(xué)基礎(chǔ)(特別是在微積分和線性代數(shù)方面),但數(shù)理統(tǒng)計(jì)和概率論部分是我的弱項(xiàng)?!?另外最好別打腫臉充胖子,如果之前沒什么經(jīng)驗(yàn),承認(rèn)自己是菜鳥也沒事,關(guān)鍵是找準(zhǔn)自己的定位。
          確定自己的定位后,我們需要對應(yīng)到特定的大數(shù)據(jù)角色,以下是一些基本法則:
      • 如果您具有良好的編程基礎(chǔ)且深入了解計(jì)算機(jī)的交互方式以及互聯(lián)網(wǎng)底層技術(shù)原理,但數(shù)學(xué)和統(tǒng)計(jì)學(xué)掌握不深,那么大數(shù)據(jù)工程可能是您今后學(xué)習(xí)的方向
      • 如果你有一定的編程基礎(chǔ)(掌握一些高級語言,如Python等)同時(shí)又很強(qiáng)的數(shù)學(xué)功底,那么大數(shù)據(jù)分析是您今天努力的方向


      學(xué)習(xí)路線
          不管您屬于以上哪種角色,有一些大數(shù)據(jù)理論知識是您必須要掌握的,他們包括但不限于:
      • 數(shù)據(jù)分片與路由:挑一個典型的分區(qū)算法去學(xué)習(xí),比如一致性哈希算法([url=]https://en./wiki/Consistent_hashing[/url])
      • 備份機(jī)制與一致性:

        • 學(xué)習(xí)國內(nèi)被奉為“圣經(jīng)”但在國外也就一般的CAP理論([url=]https://en./wiki/CAP_theorem[/url])
        • 冪等性(Idempotent):很多分布式系統(tǒng)狀態(tài)管理的基石 [url=]https:///2014/09/05/what-is-an-idempotent-function/[/url]
        • 各種一致性模型:強(qiáng)一致性、弱一致性、最終一致性
        • 備份機(jī)制:主從的叫法已經(jīng)不怎么流行了,當(dāng)前更c(diǎn)ool的叫法是Leader-Follower模式
        • 共識協(xié)議:國內(nèi)通常翻譯成一致性協(xié)議(consensus protocol)。學(xué)習(xí)常見的幾種:Paxos和Raft

      • 算法和數(shù)據(jù)結(jié)構(gòu)

        • LSM:學(xué)習(xí)和B 樹的區(qū)別以及優(yōu)勢是什么
        • 壓縮算法:找一個主流的壓縮算法進(jìn)行了解,比如Snappy, LZ4。另外Facebook最近開源了新一代的壓縮算法:ZStandard,據(jù)說完爆一切主流壓縮算法
        • Bloom Filter過濾器:大數(shù)據(jù)下O(1)的過濾器

          無論是學(xué)習(xí)大數(shù)據(jù)工程還是大數(shù)據(jù)分析,這些理論知識都是必要的,因?yàn)樗鼈兪窃O(shè)計(jì)很多分布式系統(tǒng)必備的技能。下面我們就針對不同的角色設(shè)計(jì)不同的學(xué)習(xí)路線:

      大數(shù)據(jù)工程師
          對于大數(shù)據(jù)工程師而言,您至少要掌握以下技能:
      • 一門JVM系語言:當(dāng)前大數(shù)據(jù)生態(tài)JVM系語言類的比重極大,某種程度上說是壟斷也不為過。這里我推薦大家學(xué)習(xí)Java或Scala,至于Clojure這樣的語言上手不易,其實(shí)并不推薦大家使用。另外,如今是“母以子貴”的年代,某個大數(shù)據(jù)框架會帶火它的編程語言的流行,比如Docker之于Go、Kafka之于Scala。因此筆者這里建議您至少要精通一門JVM系的語言。值得一提的,一定要弄懂這門語言的多線程模型和內(nèi)存模型,很多大數(shù)據(jù)框架的處理模式其實(shí)在語言層面和多線程處理模型是類似的,只是大數(shù)據(jù)框架把它們引申到了多機(jī)分布式這個層面。

        • 筆者建議:學(xué)習(xí)Java或Scala

      • 計(jì)算處理框架:嚴(yán)格來說,這分為離線批處理和流式處理。流式處理是未來的趨勢,建議大家一定要去學(xué)習(xí);而離線批處理其實(shí)已經(jīng)快過時(shí)了,它的分批處理思想無法處理無窮數(shù)據(jù)集,因此其適用范圍日益縮小。事實(shí)上,Google已經(jīng)在公司內(nèi)部正式廢棄了以MapReduce為代表的離線處理。因此如果要學(xué)習(xí)大數(shù)據(jù)工程,掌握一門實(shí)時(shí)流式處理框架是必須的。當(dāng)下主流的框架包括:Apache Samza, Apache Storm, Apache Spark Streaming以及最近一年風(fēng)頭正勁的Apache Flink。當(dāng)然Apache Kafka也推出了它自己的流式處理框架:Kafka Streams

        • 筆者建議:學(xué)習(xí)Flink、Spark Streaming或Kafka Streams中的一個
        • 熟讀Google大神的這篇文章:《The world beyond batch: Streaming 101》,地址是https://www./ideas/th ... batch-streaming-101

      • 分布式存儲框架:雖說MapReduce有些過時(shí)了,但Hadoop的另一個基石HDFS依然堅(jiān)挺,并且是開源社區(qū)最受歡迎的分布式存儲,絕對您花時(shí)間去學(xué)習(xí)。如果想深入研究的話,Google的GFS論文也是一定要讀的([url=]https://static./media/research.google.com/en//archive/gfs-sosp2003.pdf[/url])。當(dāng)然開源世界中還有很多的分布式存儲,國內(nèi)阿里巴巴的OceanBase也是很優(yōu)秀的一個。

        • 筆者建議:學(xué)習(xí)HDFS

      • 資源調(diào)度框架:Docker可是整整火了最近一兩年。各個公司都在發(fā)力基于Docker的容器解決方案,最有名的開源容器調(diào)度框架就是K8S了,但同樣著名的還有Hadoop的YARN和Apache Mesos。后兩者不僅可以調(diào)度容器集群,還可以調(diào)度非容器集群,非常值得我們學(xué)習(xí)。

        • 筆者建議:學(xué)習(xí)YARN

      • 分布式協(xié)調(diào)框架:有一些通用的功能在所有主流大數(shù)據(jù)分布式框架中都需要實(shí)現(xiàn),比如服務(wù)發(fā)現(xiàn)、領(lǐng)導(dǎo)者選舉、分布式鎖、KV存儲等。這些功能也就催生了分布式協(xié)調(diào)框架的發(fā)展。最古老也是最有名的當(dāng)屬Apache Zookeeper了,新一些的包括Consul,etcd等。學(xué)習(xí)大數(shù)據(jù)工程,分布式協(xié)調(diào)框架是不能不了解的, 某種程度上還要深入了解。

        • 筆者建議:學(xué)習(xí)Zookeeper——太多大數(shù)據(jù)框架都需要它了,比如Kafka, Storm, HBase等

      • KV數(shù)據(jù)庫:典型的就是memcache和Redis了,特別是Redis簡直是發(fā)展神速。其簡潔的API設(shè)計(jì)和高性能的TPS日益得到廣大用戶的青睞。即使是不學(xué)習(xí)大數(shù)據(jù),學(xué)學(xué)Redis都是大有裨益的。

        • 筆者建議:學(xué)習(xí)Redis,如果C語言功底好的,最好熟讀源碼,反正源碼也不多

      • 列式存儲數(shù)據(jù)庫:筆者曾經(jīng)花了很長的時(shí)間學(xué)習(xí)Oracle,但不得不承認(rèn)當(dāng)下關(guān)系型數(shù)據(jù)庫已經(jīng)慢慢地淡出了人們的視野,有太多的方案可以替代rdbms了。人們針對行式存儲不適用于大數(shù)據(jù)ad-hoc查詢這種弊端開發(fā)出了列式存儲,典型的列式存儲數(shù)據(jù)庫就是開源社區(qū)的HBASE。實(shí)際上列式存儲的概念也是出自Google的一篇論文:Google BigTable,有興趣的話大家最好讀一下:[url=]https://static./media/research.google.com/en//archive/bigtable-osdi06.pdf[/url]

        • 筆者建議:學(xué)習(xí)HBASE,這是目前應(yīng)用最廣泛的開源列式存儲

      • 消息隊(duì)列:大數(shù)據(jù)工程處理中消息隊(duì)列作為“削峰填谷”的主力系統(tǒng)是必不可少的,當(dāng)前該領(lǐng)域內(nèi)的解決方案有很多,包括ActiveMQ,Kafka等。國內(nèi)阿里也開源了RocketMQ。這其中的翹楚當(dāng)屬Apache Kafka了。Kafka的很多設(shè)計(jì)思想都特別契合分布流式數(shù)據(jù)處理的設(shè)計(jì)理念。這也難怪,Kafka的原作者Jay Kreps可是當(dāng)今實(shí)時(shí)流式處理方面的頂級大神。

        • 筆者建議:學(xué)習(xí)Kafka,不僅僅好找工作(幾乎所有大數(shù)據(jù)招聘簡歷都要求會Kafka:-) ),還能觸類旁通進(jìn)一步理解基于備份日志方式的數(shù)據(jù)處理范型


      大數(shù)據(jù)分析師或數(shù)據(jù)科學(xué)家
          要想成為一個數(shù)據(jù)科學(xué)家,您至少要掌握以下技能:
      • 數(shù)學(xué)功底:微積分是嚴(yán)格要掌握的。不一定要掌握多元微積分,但一元微積分是必須要熟練掌握并使用的。另外線性代數(shù)一定要精通,特別是矩陣的運(yùn)算、向量空間、秩等概念。當(dāng)前機(jī)器學(xué)習(xí)框架中很多計(jì)算都需要用到矩陣的乘法、轉(zhuǎn)置或是求逆。雖然很多框架都直接提供了這樣的工具,但我們至少要了解內(nèi)部的原型原理,比如如何高效判斷一個矩陣是否存在逆矩陣并如何計(jì)算等。

        • 重溫同濟(jì)版《高等數(shù)學(xué)》,有條件可以去Coursea學(xué)習(xí)賓夕法尼亞大學(xué)的微積分課程
        • 推薦學(xué)習(xí)Strang的線性代數(shù):《Introduction to Linear Algebra》——這是最經(jīng)典的教材,沒有之一!

      • 數(shù)理統(tǒng)計(jì):概率論和各種統(tǒng)計(jì)學(xué)方法要做到基本掌握,比如貝葉斯概率如何計(jì)算?概率分布是怎么回事?雖不要求精通,但對相關(guān)背景和術(shù)語一定要了解

        • 找一本《概率論》重新學(xué)習(xí)下

      • 交互式數(shù)據(jù)分析框架:這里并不是指SQL或數(shù)據(jù)庫查詢,而是像Apache Hive或Apache Kylin這樣的分析交互框架。開源社區(qū)中有很多這樣類似的框架,可以使用傳統(tǒng)的數(shù)據(jù)分析方式對大數(shù)據(jù)進(jìn)行數(shù)據(jù)分析或數(shù)據(jù)挖掘。筆者有過使用經(jīng)驗(yàn)的是Hive和Kylin。不過Hive特別是Hive1是基于MapReduce的,性能并非特別出色,而Kylin采用數(shù)據(jù)立方體的概念結(jié)合星型模型,可以做到很低延時(shí)的分析速度,況且Kylin是第一個研發(fā)團(tuán)隊(duì)主力是中國人的Apache孵化項(xiàng)目,因此日益受到廣泛的關(guān)注。

        • 首先學(xué)習(xí)Hive,有時(shí)間的話了解一下Kylin以及背后的數(shù)據(jù)挖掘思想

      • 機(jī)器學(xué)習(xí)框架:機(jī)器學(xué)習(xí)當(dāng)前真是火爆宇宙了,人人都提機(jī)器學(xué)習(xí)和AI,但筆者一直認(rèn)為機(jī)器學(xué)習(xí)恰似幾年前的云計(jì)算一樣,目前雖然火爆,但沒有實(shí)際的落地項(xiàng)目,可能還需要幾年的時(shí)間才能逐漸成熟。不過在現(xiàn)在就開始儲備機(jī)器學(xué)習(xí)的知識總是沒有壞處的。說到機(jī)器學(xué)習(xí)的框架,大家耳熟能詳?shù)挠泻芏喾N, 信手拈來的就包括TensorFlow、Caffe8、Keras9、CNTK10、Torch711等,其中又以TensorFlow領(lǐng)銜。筆者當(dāng)前建議大家選取其中的一個框架進(jìn)行學(xué)習(xí),但以我對這些框架的了解,這些框架大多很方便地封裝了各種機(jī)器學(xué)習(xí)算法提供給用戶使用,但對于底層算法的了解其實(shí)并沒有太多可學(xué)習(xí)之處。因此筆者還是建議可以從機(jī)器學(xué)習(xí)算法的原理來進(jìn)行學(xué)習(xí),比如:

        • Udacity的課程是非常入門級的機(jī)器學(xué)習(xí)課程,筆者推薦大家訂閱這個課程:[url=]https://classroom./courses/ud120[/url]
        • 目前機(jī)器學(xué)習(xí)領(lǐng)域最NB的入門課程:吳恩達(dá)博士的Machine Learning
        • 學(xué)習(xí)Python的scikit-learn庫[url=]http:///stable/[/url]
        • 找一本書籍來看,國內(nèi)有周志華的《機(jī)器學(xué)習(xí)》,國內(nèi)可以期待吳恩達(dá)的新書:《Machine Learning Yearning》
        • 最后如果你覺得掌握得差不多了,可以嘗試挑戰(zhàn)Kaggle了:[url=]https://www./[/url]


      作者:
      胡夕https://mp.weixin.qq.com/s/OG9RcApQoIyi1lu9oiFKMg

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多