国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

[原] 容器定義應(yīng)用:數(shù)據(jù)科學(xué)的容器革命

alin / 3742人閱讀

摘要:概述隨著容器化技術(shù)的興起,數(shù)據(jù)科學(xué)現(xiàn)在最大的一場(chǎng)運(yùn)動(dòng)已經(jīng)不是由一個(gè)新的算法或者統(tǒng)計(jì)方法發(fā)起的了,而是來自的容器化技術(shù)。本文將介紹利用容器技術(shù)如何加速數(shù)據(jù)科學(xué)在生產(chǎn)環(huán)境中的實(shí)際應(yīng)用。

概述

隨著容器化技術(shù)的興起,數(shù)據(jù)科學(xué)現(xiàn)在最大的一場(chǎng)運(yùn)動(dòng)已經(jīng)不是由一個(gè)新的算法或者統(tǒng)計(jì)方法發(fā)起的了,而是來自Docker的容器化技術(shù)。通常,數(shù)據(jù)科學(xué)被認(rèn)為研究成果立即應(yīng)用到生產(chǎn)環(huán)境都是比較緩慢的一個(gè)過程。本文將介紹利用容器技術(shù)如何加速數(shù)據(jù)科學(xué)在生產(chǎn)環(huán)境中的實(shí)際應(yīng)用。

瓶頸 1. 環(huán)境部署一致性

保持?jǐn)?shù)據(jù)科學(xué)環(huán)境一致性通常都是一件異常痛苦的事情,在不同的機(jī)器之間同時(shí)部署即使是用 Python 的 Conda 和 Virtualenv 或者 R 的 CRAN 和 packrat 的包依賴虛擬化技術(shù),也會(huì)遇到不同操作系統(tǒng)(比如 CentOS、Ubuntu、Mac OS、Windows)的底層c庫缺失等問題。(國內(nèi)的現(xiàn)狀是很多公司逼迫Data Scientist 變成 DevOps,美其名曰:全棧。。)

2. 服務(wù)彈性與性能

由于數(shù)據(jù)科學(xué)套件一般比較復(fù)雜,從底層的 Hadoop 分布式架構(gòu)、到頂層的 Shiny Server,這一系列服務(wù)的智能運(yùn)維部署都是一個(gè)問題。尤其是 Shiny Server 的開源版本現(xiàn)在默認(rèn)是只支持單機(jī)單線程的處理(其實(shí)就是nodejs內(nèi)核),通常每次請(qǐng)求處理只是在幾毫秒之間。這對(duì)于一個(gè)小應(yīng)用一般并不會(huì)出現(xiàn)太問題,不過更常見的場(chǎng)景是我們需要在生產(chǎn)環(huán)境上部署高性能的 shiny server,此時(shí) shiny server 的單機(jī)性能就成了一個(gè)問題。

解決方案

事實(shí)上,容器同時(shí)為加速數(shù)據(jù)科學(xué)的應(yīng)用提供了一攬子解決方案:

將復(fù)雜的環(huán)境依賴化繁為簡

簡化集群配置與管理的復(fù)雜度

標(biāo)準(zhǔn)交付、研究結(jié)果可重復(fù)、便于成果分享

快速部署、快速擴(kuò)展

明確運(yùn)維、開發(fā)職責(zé)

為什么使用容器 可重復(fù)研究

一方面,容器就像一個(gè)輕量級(jí)的虛擬機(jī),當(dāng)我們啟動(dòng)虛擬機(jī)的時(shí)候通常都要花幾分鐘,但是Docker容器通常只要幾毫秒就啟動(dòng)了。因此,你跑容器和跑本地應(yīng)用從速度上來講基本沒什么差。每次我們跑容器,容器的環(huán)境都是標(biāo)準(zhǔn)化的,這也意味著它為我們帶來了可重復(fù)性研究的機(jī)會(huì)。這些容器可以一致部署在 Mac、Windows、Linux 上,因此協(xié)同共享變得非常得簡單。

無狀態(tài)研究

對(duì)于個(gè)人而言,好處之一就是減少了R、Python生態(tài)組件安裝時(shí)帶來的痛苦。如果你在容器中使用Python或R,之前所有的環(huán)境一致性問題就都灰飛煙滅了。如果我們使用容器技術(shù),就可以在容器中肆無忌憚地使用新包,因?yàn)榧词钩霈F(xiàn)意外導(dǎo)致容器不可用了,我們只需要重跑一個(gè)容器就可以了。

彈性高可用

另一方面,對(duì)于整個(gè)數(shù)據(jù)科學(xué)套件而言,在架構(gòu)上越來越流行微服務(wù)對(duì)原來SOA的架構(gòu)進(jìn)行進(jìn)一步解耦,以便于每一個(gè)模塊可以獨(dú)立迭代,小步快跑。而容器技術(shù)基于輕量級(jí)的進(jìn)程,使得我們可以快速擴(kuò)展計(jì)算資源實(shí)現(xiàn)分布式計(jì)算并且輕松管理。

以 Shiny-Server 為例,吐槽Shiny-Server的單機(jī)能力其實(shí)沒什么意義,這就好像你在吐槽tornado和nodejs的性能不行?但是明明這兩個(gè)Web框架就是根據(jù)Epoll的IO復(fù)用,故意設(shè)計(jì)成異步單線程的模型來應(yīng)對(duì)高并發(fā)業(yè)務(wù)場(chǎng)景的,正確的使用姿勢(shì)其實(shí)是搭配 Nignx反向代理 + Supervisor + 多個(gè)服務(wù)器實(shí)例。如果是 Tornado、Nodejs 跑單個(gè)服務(wù)也跪了,那Python和JS又得躺槍。Docker化之后,這些都可以一起用docker-compose.yml的配置文件來描述,然后一鍵啟動(dòng)整個(gè)集群服務(wù),這樣一來就獲得了商用版本的Shiny-Server的主要特性了。

和運(yùn)維劃清界限

在實(shí)際生產(chǎn)中,使用Docker之后,運(yùn)維只需要定義好基本的鏡像的Dockerfile,而不用處理具體的開發(fā)產(chǎn)生的依賴包問題。數(shù)據(jù)部門可以引用運(yùn)維提供的基礎(chǔ)鏡像,在此基礎(chǔ)上自行添加需要的依賴包。一面解脫了運(yùn)維不必要的負(fù)擔(dān),另一方面也提升數(shù)據(jù)部門對(duì)項(xiàng)目的掌控力,從而提升整個(gè)團(tuán)隊(duì)的效率。

數(shù)據(jù)科學(xué)鏡像 R + Docker = Rocker

Rocker 是一個(gè)組織管理R語言Docker鏡像的項(xiàng)目。Rocker提供了一系列用于不同場(chǎng)景下的R 鏡像。

這些鏡像是構(gòu)建在 Debian OS的基礎(chǔ)之上的,基礎(chǔ)鏡像由r-base(通用),r-devel(開發(fā)者),rstudio(含rstuido服務(wù)器)這三類構(gòu)成。

用例鏡像有:

hadleyverse鏡像:包含了hadley大人所經(jīng)營的rstudio開發(fā)的相關(guān)R包,包括rmarkdown、 pandoc、knitr、shiny、ggplot2、 dplyr、 tidyr、devtools、 httr 等等,這基本可以滿足大多數(shù)人的需求。

ropensci鏡像:在hadleyverse的基礎(chǔ)上,又?jǐn)U展了 rOpenSci 項(xiàng)目所涉及的包,讓各領(lǐng)域的數(shù)據(jù)科學(xué)研究如虎添翼。

社區(qū)鏡像則包括:

r-java鏡像:在r-base基礎(chǔ)上加入了 Java 8 和 rJava包,用來和java做各種交互。

r-pandoc鏡像: 在r-base基礎(chǔ)上加入了 pandoc,主要用來寫作。

r-ssh鏡像:在r-base基礎(chǔ)上加入了 SSH客戶端,讓我們可以通過SSH登陸到這個(gè)R容器中。

除了 Rocker 之外,我們還可以使用一些其他第三方鏡像:

docker-mro鏡像 通過微軟的Open R 優(yōu)化 R 底層的矩陣運(yùn)算,自動(dòng)利用起多CPU的計(jì)算性能。

shrektan/shiny 鏡像 自帶了 Shiny-server和rstudio以及其他常見R包,用來部署服務(wù)器非常方便。

依賴于這些開源鏡像,我們就可以快速組合鏡像搭建所需要的R語言計(jì)算環(huán)境,并且不會(huì)因?yàn)槊颗_(tái)電腦的操作系統(tǒng)不一樣而產(chǎn)生一些不必要的問題。

Python

jupyter 為Python科學(xué)計(jì)算環(huán)境虛擬化提供了諸多鏡像,我們可以根據(jù)不同的需要選擇相應(yīng)的鏡像。

all-spark-notebook

base-notebook

datascience-notebook

minimal-notebook

pyspark-notebook

scipy-notebook

基本上我們?cè)诳茖W(xué)計(jì)算環(huán)境中用到的包都可以在這里找到,如果需要安裝更多的包,我們亦可以直接在notebook中輸入,比如

%% bash
conda install financer

正確安裝后,直接重啟內(nèi)核即可。不過因?yàn)槿萜鞯臒o狀態(tài),所以還是建議大家在Dockerfile里面修改,或者在conda安裝之后包后,自行docker commit來持久化鏡像。

一攬子解決方案

阿里云其實(shí)為為數(shù)據(jù)科學(xué)還提供了一攬子解決方案,執(zhí)行下面命令,你可以把科學(xué)計(jì)算全套帶回家。

docker pull registry.aliyuncs.com/alicloudhpc/toolkit

其中包含了

圖像識(shí)別:OpenCV

機(jī)器學(xué)習(xí)工具:Cuda、Theano、R、Caffe等等

數(shù)值計(jì)算:Numpy、Scipy、OpenBLAS、Octave

配置和監(jiān)控:lspci、numactl、perf、iostat、netstat

開發(fā)工具:Gcc/g++、JDK、CUDA、 OpenMPI 、OpenCL、 Python 、Lua

自行腦補(bǔ)一下自己為了"深度學(xué)習(xí)"在一臺(tái)ubuntu上安裝一天都沒搞定和這里一鍵搞定的差距。。

實(shí)戰(zhàn)

現(xiàn)實(shí)并不完美,對(duì)于這些固有的鏡像,我們需要如何定制呢?其實(shí),我們可以去查看這些開源鏡像都是通過Dockerfile制作的。通過修改 Dockerfile,我們就可以根據(jù)自己的需要重新建立一些私有鏡像,然后上傳到公有或私有的Registry上和其他人共享鏡像了。

由于國情問題,在制作容器的時(shí)候,我們最好修改一下我們的apt-get源(科學(xué)計(jì)算推崇操作系統(tǒng)使用 Ubuntu14.04 或 Debian)。

cp /etc/apt/sources.list /etc/apt/sources.list.back
vi /etc/apt/sources.list
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-backports main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-proposed main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-security main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-updates main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-backports main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-proposed main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-security main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-updates main multiverse restricted universe

R 則中可以通過參數(shù)修改CRAN源:

install.packages("some_pakcage",repos="https://mirrors.tuna.tsinghua.edu.cn/CRAN/")

Python的conda源則可以這樣修改:

%% bash
conda config --add channels "https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/"
conda config --set show_channel_urls yes

這樣一來我們的整個(gè)容器的包管理加載速度就可以有一個(gè)質(zhì)的提升。

文末放一個(gè) Minecraft 版本的 Docker管理器,僅供娛樂。

參考資料

Docker 速查表

Scaling and Performance Tuning with shinyapps.io

How to get started with data science in containers

Docker: Data Science Environment with Jupyter

The Real Value of Containers for Data Science

清華大學(xué) TUNA 鏡像源

Start doing data science in minutes

Linkedin Slides: Docker for data science

wiseio/datascience-docker

Strata 2016: Docker for Data Scientists

Introducing Rocker: Docker for R

Jupyter Notebook Data Science Stack

寫給Python數(shù)據(jù)科學(xué)家們 : 科學(xué)計(jì)算開發(fā)環(huán)境排雷

Dockercraft

aliyun 機(jī)器學(xué)習(xí)套裝

阿里云Docker學(xué)習(xí)資料

為什么容器技術(shù)將主宰世界

容器化的數(shù)據(jù)科學(xué)與工程

Containerized Data Science and Engineering - Part 1, Dockerized Data Pipelines

liftr:Dockerize R Markdown Documents CRAN

BioC2015:nan xiao

Dockerizing a Shiny App

更優(yōu)閱讀體驗(yàn)可直接訪問原文地址:https://segmentfault.com/a/11...
作為分享主義者(sharism),本人所有互聯(lián)網(wǎng)發(fā)布的圖文均遵從CC版權(quán),轉(zhuǎn)載請(qǐng)保留作者信息并注明作者 Harry Zhu 的 FinanceR專欄:https://segmentfault.com/blog...,如果涉及源代碼請(qǐng)注明GitHub地址:https://github.com/harryprince。微信號(hào): harryzhustudio
商業(yè)使用請(qǐng)聯(lián)系作者。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/37989.html

相關(guān)文章

  • [] 容器定義應(yīng)用數(shù)據(jù)科學(xué)容器革命

    摘要:概述隨著容器化技術(shù)的興起,數(shù)據(jù)科學(xué)現(xiàn)在最大的一場(chǎng)運(yùn)動(dòng)已經(jīng)不是由一個(gè)新的算法或者統(tǒng)計(jì)方法發(fā)起的了,而是來自的容器化技術(shù)。本文將介紹利用容器技術(shù)如何加速數(shù)據(jù)科學(xué)在生產(chǎn)環(huán)境中的實(shí)際應(yīng)用。 showImg(https://segmentfault.com//img/bVxzYL); 概述 隨著容器化技術(shù)的興起,數(shù)據(jù)科學(xué)現(xiàn)在最大的一場(chǎng)運(yùn)動(dòng)已經(jīng)不是由一個(gè)新的算法或者統(tǒng)計(jì)方法發(fā)起的了,而是來自Doc...

    novo 評(píng)論0 收藏0
  • []打造數(shù)據(jù)產(chǎn)品快速型:DjangoDocker之旅

    摘要:而大多數(shù)數(shù)據(jù)科學(xué)研究的場(chǎng)景下,更快的速度也意味著更早地發(fā)現(xiàn)問題和完成檢驗(yàn)假設(shè)的閉環(huán)。通常,數(shù)據(jù)科學(xué)被認(rèn)為研究成果立即應(yīng)用到生產(chǎn)環(huán)境都是比較緩慢的一個(gè)過程。 showImg(https://segmentfault.com/img/remote/1460000005771293); 概述 在數(shù)據(jù)科學(xué)研究中,快速驗(yàn)證想法是非常關(guān)鍵的一環(huán),而如何快速開發(fā)出數(shù)據(jù)產(chǎn)品則可以有效推動(dòng)整個(gè)數(shù)據(jù)科學(xué)項(xiàng)...

    zhoutao 評(píng)論0 收藏0
  • []打造數(shù)據(jù)產(chǎn)品快速型:DjangoDocker之旅

    摘要:而大多數(shù)數(shù)據(jù)科學(xué)研究的場(chǎng)景下,更快的速度也意味著更早地發(fā)現(xiàn)問題和完成檢驗(yàn)假設(shè)的閉環(huán)。通常,數(shù)據(jù)科學(xué)被認(rèn)為研究成果立即應(yīng)用到生產(chǎn)環(huán)境都是比較緩慢的一個(gè)過程。 showImg(https://segmentfault.com/img/remote/1460000005771293); 概述 在數(shù)據(jù)科學(xué)研究中,快速驗(yàn)證想法是非常關(guān)鍵的一環(huán),而如何快速開發(fā)出數(shù)據(jù)產(chǎn)品則可以有效推動(dòng)整個(gè)數(shù)據(jù)科學(xué)項(xiàng)...

    zhangqh 評(píng)論0 收藏0
  • []文檔定義應(yīng)用數(shù)據(jù)科學(xué)文檔革命

    摘要:對(duì)于數(shù)據(jù)科學(xué)的研究可以說已經(jīng)是本文我將介紹如何以文檔定義應(yīng)用的方式成為數(shù)據(jù)科學(xué)中的標(biāo)準(zhǔn)交付。參考前文解密的數(shù)據(jù)科學(xué)部門如果構(gòu)建知識(shí)倉庫,作為一個(gè)謝大大的死忠,我很自然選擇了作為我文檔輸出的首選工具。 showImg(https://segmentfault.com/img/remote/1460000006760433?w=423&h=426); 概述 隨著近年來,Rstudio 通過...

    wh469012917 評(píng)論0 收藏0
  • []深入對(duì)比數(shù)據(jù)科學(xué)工具箱:Python和R Web 編輯器

    摘要:概述工欲善其事必先利其器,如果現(xiàn)在要評(píng)選數(shù)據(jù)科學(xué)中最好用的編輯器注意一定是可以通過訪問的,和一定是角逐的最大熱門,正確使用編輯器可以很大地提升我們的工作效率。 概述 showImg(https://segmentfault.com/img/bVAdol); 工欲善其事必先利其器,如果現(xiàn)在要評(píng)選數(shù)據(jù)科學(xué)中最好用的Web 編輯器(注意一定是可以通過Web訪問的),RStudio和Jupyt...

    RobinQu 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

alin

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<