日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Apache Flink 1.9.0 為什么將支持 Python API ?

系統(tǒng) 1694 0

作者:孫金城(金竹)

本文目錄:
1.最流行的編程語(yǔ)言
2.互聯(lián)網(wǎng)最火熱的領(lǐng)域
2.1大數(shù)據(jù)時(shí)代,數(shù)據(jù)量與日俱增
2.2數(shù)據(jù)的價(jià)值來源于數(shù)據(jù)分析
2.3數(shù)據(jù)價(jià)值最大化,時(shí)效性
3.阿爾法與人工智能
4.總結(jié)

眾所周知,Apache Flink(以下簡(jiǎn)稱 Flink)的 Runtime 是用 Java 編寫的,而即將發(fā)布的 Apache Flink 1.9.0 版本則會(huì)開啟新的 ML 接口和新的 flink-python 模塊,F(xiàn)link 為什么要增加對(duì) Python 的支持,想必大家一定好奇。

也許大家都很清楚,目前很多著名的開源項(xiàng)目都支持 Python,比如 Beam,Spark,Kafka 等,F(xiàn)link 自然也需要增加對(duì) Python 的支持,這個(gè)角度分析也許很好,但我們想想為啥這些非常火熱的項(xiàng)目都紛紛支持 Python 呢?Python 語(yǔ)言有怎樣的“魔力”讓這些著名的項(xiàng)目都青睞于他?我們看一下統(tǒng)計(jì)數(shù)據(jù)。

1.最流行的編程語(yǔ)言

行業(yè)分析公司 RedMonk 最新的最受歡迎的語(yǔ)言排名數(shù)據(jù)如下:

Apache Flink 1.9.0 為什么將支持 Python API ?_第1張圖片

上圖從 Github 和 StackOverflow 兩個(gè)維度進(jìn)行分析的前十名如下:

  • JavaScript
  • Java
  • Python
  • PHP
  • C++
  • C#
  • CSS
  • Ruby
  • C
  • TypeScript

Pytnon 名列第三,目前也非常流行的 R 和 Go 語(yǔ)言排在了 15 和 16 名。這個(gè)很客觀的排名足以證明 Python 的受眾是多么的龐大,任何項(xiàng)目對(duì) Python 的支持就是在無形的擴(kuò)大項(xiàng)目的受眾用戶!

2.互聯(lián)網(wǎng)最火熱的領(lǐng)域

就目前而言互聯(lián)網(wǎng)最熱的領(lǐng)域應(yīng)該是大數(shù)據(jù)計(jì)算,以前單機(jī)的計(jì)算時(shí)代已經(jīng)過去了,單機(jī)處理能力的提高速度遠(yuǎn)遠(yuǎn)落后于數(shù)據(jù)的與日俱增的速度,以下幾方面將分析為何大數(shù)據(jù)時(shí)代最熾熱的互聯(lián)網(wǎng)領(lǐng)域是大數(shù)據(jù)計(jì)算。

2.1 大數(shù)據(jù)時(shí)代,數(shù)據(jù)量與日俱增

隨著云計(jì)算、物聯(lián)網(wǎng)、人工智能等信息技術(shù)的快速發(fā)展,數(shù)據(jù)量呈現(xiàn)幾何級(jí)增長(zhǎng),我們先看一份預(yù)測(cè)數(shù)據(jù),全球數(shù)據(jù)總量在短暫的 10 年時(shí)間會(huì)由 16.1 ZB增長(zhǎng)到 163 ZB,數(shù)據(jù)量的快速增長(zhǎng)已經(jīng)遠(yuǎn)遠(yuǎn)超越單個(gè)計(jì)算機(jī)存儲(chǔ)和處理能力,如下:

Apache Flink 1.9.0 為什么將支持 Python API ?_第2張圖片

上圖我們數(shù)據(jù)量的單位是 ZB,我們簡(jiǎn)單介紹一下數(shù)據(jù)量的統(tǒng)計(jì)單位,基本單位是 bit,按順序給出所有單位:bit、Byte、KB、MB、GB、TB、PB、EB、ZB、YB、BB、NB、DB。他們之間的轉(zhuǎn)換關(guān)系是:

  • 1 Byte =8 bit
  • 1 KB = 1,024 Bytes
  • 1 MB = 1,024 KB
  • 1 GB = 1,024 MB
  • 1 TB = 1,024 GB
  • 1 PB = 1,024 TB
  • 1 EB = 1,024 PB
  • 1 ZB = 1,024 EB
  • 1 YB = 1,024 ZB
  • 1 BB = 1,024 YB
  • 1 NB = 1,024 BB
  • 1 DB = 1,024 NB

看到上面的數(shù)據(jù)量也許我們會(huì)質(zhì)疑全球數(shù)據(jù)真的有這么恐怖嗎,數(shù)據(jù)都從何而來? 其實(shí)我看到這個(gè)數(shù)據(jù)也深表質(zhì)疑,但是仔細(xì)查閱了一下資料,發(fā)現(xiàn)全球數(shù)據(jù)的確在快速的增長(zhǎng)著,比如 Facebook 社交平臺(tái)每天有幾百億,上千億的照片數(shù)據(jù),紐約證券交易每天有幾 TB 的交易數(shù)據(jù),再說說剛剛發(fā)生的阿里巴巴 2018 年雙 11 數(shù)據(jù),從交易額上創(chuàng)造了 2135 億的奇跡,從數(shù)據(jù)量上看僅僅是阿里巴巴內(nèi)部的監(jiān)控日志處理看就達(dá)到了 162 GB/秒。所以阿里巴巴為代表的互聯(lián)網(wǎng)行業(yè),也促使了數(shù)據(jù)量的急速增長(zhǎng),同樣以阿里巴巴雙 11 近 10 年來的成交額來用數(shù)字證明數(shù)據(jù)的增長(zhǎng),如下:

Apache Flink 1.9.0 為什么將支持 Python API ?_第3張圖片

2.2 數(shù)據(jù)的價(jià)值來源于數(shù)據(jù)分析

如何讓大數(shù)據(jù)產(chǎn)生價(jià)值呢?毋庸置疑,對(duì)大數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析,讓統(tǒng)計(jì)分析的結(jié)果幫助我們進(jìn)行決策。比如推薦系統(tǒng),我們可以根據(jù)一個(gè)用戶長(zhǎng)期的購(gòu)買習(xí)慣,購(gòu)買記錄來分析其興趣愛好,進(jìn)而可以準(zhǔn)確的進(jìn)行有效推薦。那么面對(duì)上面的海量數(shù)據(jù),在一臺(tái)計(jì)算機(jī)上無法處理,那么我們?nèi)绾卧谟邢薜臅r(shí)間內(nèi)對(duì)全部數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析呢?提及這個(gè)問題,我們不得不感謝 Google 發(fā)布的三大論文:

  • GFS - 2003年,Google 發(fā)布 Google File System 論文,這是一個(gè)可擴(kuò)展的分布式文件系統(tǒng),用于大型的、分布式的、對(duì)大量數(shù)據(jù)進(jìn)行訪問的應(yīng)用。
  • MapReduce - 2004 年,Google 發(fā)布了 MapReduce 論文,論文描述了大數(shù)據(jù)的分布式計(jì)算方式,主要思想是將任務(wù)分解然后在多臺(tái)處理能力較弱的計(jì)算節(jié)點(diǎn)中同時(shí)處理,然后將結(jié)果合并從而完成大數(shù)據(jù)處理。MapReduce 是針對(duì)分布式并行計(jì)算的一套編程模型,如下圖所示:

Apache Flink 1.9.0 為什么將支持 Python API ?_第4張圖片

  • BigTable - 2006 年,Google 發(fā)布了 BigTable 論文,是一款典型是 NoSQL 分布式數(shù)據(jù)庫(kù)。

受益于 Google 的三大論文,Apache 開源社區(qū)迅速開發(fā)了 Hadoop 生態(tài)系統(tǒng),HDFS,MapReduce 編程模型,NoSQL 數(shù)據(jù)庫(kù) HBase。并很快得到了全球?qū)W術(shù)界和工業(yè)界的普遍關(guān)注,并得到推廣和普及應(yīng)用。其中阿里巴巴在 2008 年就啟動(dòng)了基于 Hadoop 的云梯項(xiàng)目,Hadoop 就成為了阿里巴巴分布式計(jì)算的核心技術(shù)體系,并在 2010 年就達(dá)到了千臺(tái)機(jī)器的集群,Hadoop在阿里巴巴的集群發(fā)展如下:

Apache Flink 1.9.0 為什么將支持 Python API ?_第5張圖片

但利用 Hadoop 進(jìn)行 MapReduce 的開發(fā),需要開發(fā)人員精通 Java 語(yǔ)言,并要對(duì) MapReduce 的運(yùn)行原理有一定的了解,這樣在一定程度上提高了 MapReduce 的開發(fā)門檻,所以在開源社區(qū)又不斷涌現(xiàn)了一些為了簡(jiǎn)化 MapReduce 開發(fā)的開源框架,其中 Hive 就是典型的代表。HSQL 可以讓用戶以類 SQL 的方式描述 MapReduce 計(jì)算,比如原本需要幾十行,甚至上百行才能完成的 wordCount,用戶一條 SQL語(yǔ)句就能完成了,這樣極大的降低了 MapReduce 的開發(fā)門檻。這樣 Hadoop 技術(shù)生態(tài)不斷發(fā)展,基于 Hadoop 的分布式的大數(shù)據(jù)計(jì)算逐漸普及在業(yè)界家喻戶曉!

2.3 數(shù)據(jù)價(jià)值最大化,時(shí)效性

每一條數(shù)據(jù)都是一條信息,信息的時(shí)效性是指從信息源發(fā)送信息后經(jīng)過接收、加工、傳遞、利用的時(shí)間間隔及其效率。時(shí)間間隔越短,時(shí)效性越強(qiáng)。一般時(shí)效性越強(qiáng),信息所帶來的價(jià)值越大,比如一個(gè)偏好推薦場(chǎng)景,用戶在購(gòu)買了一個(gè)“蒸箱”,如果能在秒級(jí)時(shí)間間隔給用戶推薦一個(gè)“烤箱”的優(yōu)惠產(chǎn)品,那么用戶購(gòu)買“烤箱”的概率會(huì)很高,那么在1天之后根據(jù)用戶購(gòu)買“蒸箱”的數(shù)據(jù),分析出用戶可能需要購(gòu)買“烤箱”,那么我想這條推薦信息被用戶采納的可能性將大大降低。基于這樣數(shù)據(jù)時(shí)效性問題,也暴露了 Hadoop 批量計(jì)算的弊端,就是實(shí)時(shí)性不高。基于這樣的時(shí)代需求,典型的實(shí)時(shí)計(jì)算平臺(tái)也應(yīng)時(shí)而生,2009 年 Spark 誕生于 UCBerkeley 的 AMP 實(shí)驗(yàn)室, 2010 年 Storm 的核心概念 BackType 被 Nathan 提出。Flink 也以一個(gè)研究性的項(xiàng)目于 2010 年開始于德國(guó)柏林。

3.阿爾法與人工智能

在 2016 谷歌阿爾法圍棋以 4:1 戰(zhàn)勝圍棋世界冠軍、職業(yè)九段棋手李世石之后,人們逐漸用新的眼光審視讓深度學(xué)習(xí),而且掀起了人工智能的“狂熱”。百度百科對(duì)人工智能(Artificial Intelligence),英文縮寫為 AI 的定義是: 人工智能是研究、開發(fā)用于模擬、延伸和擴(kuò)展人的智能的理論、方法、技術(shù)及應(yīng)用系統(tǒng)的一門新技術(shù)科學(xué)。

Apache Flink 1.9.0 為什么將支持 Python API ?_第6張圖片

而機(jī)器學(xué)習(xí)是進(jìn)行人工智能的一種方法或者工具。機(jī)器學(xué)習(xí)在以 Spark,F(xiàn)link 為首的大數(shù)據(jù)技術(shù)平臺(tái)中具有較高的地位,尤其 Spark 近些年在 ML 方面做了巨大的努力,同時(shí) PySpark 集成了很多優(yōu)秀的機(jī)器學(xué)習(xí)類庫(kù),如典型的 Pandas,在這方面遠(yuǎn)遠(yuǎn)超過了 Flink,所以 Flink 正面面對(duì)自己的不足,在 Flink 1.9 中開啟了新的 ML 接口和新的 flink-python 模塊!

那么機(jī)器學(xué)習(xí)的重要和 Python 又有什么關(guān)系?我們看一下統(tǒng)計(jì)數(shù)據(jù),看什么語(yǔ)言是最流行的機(jī)器學(xué)習(xí)語(yǔ)言。

IBM 的數(shù)據(jù)科學(xué)家 Jean-Francois Puget 曾經(jīng)做過一個(gè)有趣的分析。他爬取了著名的求職網(wǎng)站 indeed 上雇主的崗位要求變動(dòng)趨勢(shì),來評(píng)估當(dāng)下市場(chǎng)上最受歡迎的崗位語(yǔ)言。其中當(dāng)他單獨(dú)搜索”machine learning”時(shí)候,也可以得到一個(gè)近似的結(jié)果:

Apache Flink 1.9.0 為什么將支持 Python API ?_第7張圖片

其結(jié)構(gòu)發(fā)現(xiàn) Python 是與熱的”machine learning”,雖然這是 2016 年的調(diào)查,但是也足以證明 Python 在”machine learning”方面的地位,同時(shí)上面我們提到的 RedMonk 的統(tǒng)計(jì)數(shù)據(jù)也足以證明這一點(diǎn)!

不僅僅是各種調(diào)查,我們也可以從 Python 的特點(diǎn)和現(xiàn)有的 Python 生態(tài)來說說為什么 Python 是機(jī)器學(xué)習(xí)的最好語(yǔ)言。

Python 是一種面向?qū)ο蟮慕忉屝统绦蛘Z(yǔ)言,由荷蘭人(Guido van Rossum)于 1989 年發(fā)明,并于 1991 年發(fā)布了第一個(gè)版。Python 作為解釋型語(yǔ)言,雖然跑得比誰都慢,但 Python 設(shè)計(jì)者的哲學(xué)是“用一種方法并且只有一種方法來做一件事”。在開發(fā)新的 Python 語(yǔ)法時(shí),如果面臨多種選擇,Python 開發(fā)者一般會(huì)選擇明確的沒有或者很少有歧義的語(yǔ)法。簡(jiǎn)單易學(xué)的特點(diǎn)促使了 Python 有龐大的用戶群體,進(jìn)而很多機(jī)器學(xué)習(xí)的類庫(kù)也是由 Python 開發(fā)的,比如:NumPy、SciPy 和結(jié)構(gòu)化數(shù)據(jù)操作可以通過 Pandas 等等。所以 Python 這種豐富的生態(tài)系統(tǒng)為機(jī)器學(xué)習(xí)提供了一定程度的便利性,也必然成為了最受歡迎的機(jī)器學(xué)習(xí)語(yǔ)言!

4.總結(jié)

本篇重點(diǎn)描述了 Apache Flink 為什么需要支持 Python API。以實(shí)際數(shù)字說明目前我們處于一個(gè)大數(shù)據(jù)時(shí)代,數(shù)據(jù)的價(jià)值要依靠大數(shù)據(jù)分析,而由于數(shù)據(jù)的時(shí)效性的重要性而催生了著名的 Apache Flink 流式計(jì)算平臺(tái)。

目前在大數(shù)據(jù)計(jì)算時(shí)代,AI 是炙手可熱的發(fā)展方向,機(jī)器學(xué)習(xí)是 AI 的重要手段之一,而恰恰由于語(yǔ)言的特點(diǎn)和生態(tài)的優(yōu)勢(shì),Python 成為了機(jī)器學(xué)習(xí)最重要的語(yǔ)言,進(jìn)而表明了 Apache Flink 著手發(fā)力 Flink API 的動(dòng)機(jī)!所謂時(shí)勢(shì)造英雄,Apache Flink Python API 是時(shí)代的產(chǎn)物,是水順自然而得之的必然!

Tips:

本文節(jié)選自金竹的博客【Apache Flink 說道系列】,點(diǎn)擊「閱讀原文」可查看作者特色說道系列原版文章~

/ Apache Flink 極客挑戰(zhàn)賽,10 萬獎(jiǎng)金等你拿 /

詳情鏈接:https://tianchi.aliyun.com/ma...

Apache Flink 1.9.0 為什么將支持 Python API ?_第8張圖片


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 乌鲁木齐县| 福海县| 伊金霍洛旗| 邻水| 中牟县| 东乌珠穆沁旗| 商水县| 佛山市| 铁岭县| 称多县| 周口市| 雷波县| 临汾市| 钟山县| 来宾市| 五台县| 滨海县| 兴文县| 湾仔区| 临沂市| 蕉岭县| 临洮县| 家居| 余干县| 特克斯县| 靖宇县| 垣曲县| 郓城县| 大名县| 台湾省| 东港市| 贵溪市| 恩施市| 保靖县| 同仁县| 泰和县| 昂仁县| 凤庆县| 思茅市| 正蓝旗| 江山市|