【科技】大数据全栈式开发语言
本篇文章3746字,读完约9分钟
前几天,thoughtworks是在深圳举办的社区活动,有一个演讲主题: fullstack javascript。 关于在javascript中进行前端、服务器端甚至数据库( mongodb )开发,web应用程序开发人员只需掌握一种语言即可实现整个应用程序。
据此,我们发现python可以称为大数据的全栈开发语言。 因为python是云基础架构、devops、大数据解决等行业的热门语言。
业界的流行语
云基础架构python、java和go
devopspython,壳,ruby,go
网络爬虫类python、php、C 254+
数据解决python、r、scala
为了能写javascript就能写完美的web应用程序,如果能写python,就能实现完美的大规模数据解决方案平台。
云基础架构。
这一年不支持云平台。 不支持大量的数据。 不支持动态伸缩。 我不能说自己是大数据。 最多可以说是给人创造商业智能( bi )。
云平台可分为私有云和公共云.。 私有云的平台就像白天的openstack,是python写的。 曾经的追踪者cloudstack强调了发售当初java写的,比python更有特点。 结果,搬石头落脚,年初,cloudstack的发起人citrix宣布加入openstack基金会,cloudstack就在眼前接近尾声。
如果您不想自己构建私有云,我们可以提供aws、gce、azure、AlibabaCloud (阿里巴巴云)或青云。 gce只提供python和javascript的sdk,青云只提供python sdk。 可见各云平台重视python。
说到基础设施的构筑,hadoop不得不说。 今天,hadoop不再是大数据解决的优先事项,因为mapreduce的数据解决速度不够快,但hdfs和yarnhadoop两个组件越来越受欢迎。 hadoop的开发语言是java,没有正式提供python支持,但是有很多第三方库封装了hadoop的api接口( pydoop、hadoopy等)。
hadoop mapreduce的替代者是速度为100倍的spark,其开发语言为scala,但提供了scala、java、python的开发界面,为了取悦python开发的数据科学家,PyTHHN glusterfs、ceph等hdfs替代品直接提供python支持。 mesos取代yarn,是C +实现,除了C +外,还提供java和python支持包。
devops
devops有一个中文名称,叫开发自我运维。 在互联网时代,只有快速尝试新想法,在第一时间安全可靠地提供业务价值。 devops推荐的自动构建/测试/引进、系统测量等技术实践在网络时代是不可或缺的。
自动构建容易应用,但如果是python应用程序,由于存在setuptools、pip、virtualenv、tox、flake8等工具,所以自动构建非常简单。 此外,大多数linux系统都内置了python解释器,所以python是自动的,不需要在系统上预装任何软件。
自动化测试是基于python的robot framework公司级别,无论语言如何,都应用最喜欢的自动化测试框架。 cucumber也有很多支持者,支持python的lettuce可以完全一样。 locust在自动化性能测试中也开始受到关注。
chef和puppet等老牌自动配置管理工具是ruby开发,至今仍保持势头。 但是,新生代ansible和saltstack都是python开发,与前两者相比,设计轻量化,因此更受欢迎,开始给前辈们带来很多压力。
在系统监视和测量方面,以前传来的nagios正在没落,像sensu一样被评价为新的贵重性,云服务形式的new relic是创业企业的标准化,这些不是python直接实现的
除了这些工具外,基于python提供cloudify和deis等具备devops功能的paas平台虽然还没有成为气候,但已经引起了很多关注。
网络爬虫类
大数据从哪里来? 有些公司除了有自己生成大量数据的能力外,很多时候还需要用爬虫类抓住网络数据进行分析。
网络爬虫类是python以前就流传下来的强大行业,是最受欢迎的爬虫类框架scrapy、http工具包urlib2、html分析工具beautifulsoup、xml分析器LXL等一个人能做的类库。
但是,网络爬虫不仅打开网页,解析html也很简单。 高效的爬行动物为了支持大量灵活的并发操作,通常可以支持和抓住数千到数万页。 以前流传下来的线程池方法对资源的浪费很大,线程数千次后系统资源基本上被线程调度浪费了。 由于python可以很好地支持coroutine操作,因此它迅速发展了许多并发库,如gevent、eventlet和celery等分布式任务框架。 被认为比amqp更有效率的zeromq也最先提供了python版本。 通过支持高并发性,网络爬虫类真的可以达到大规模的数据规模。
导入的数据需要分词解决,python在这方面也毫不逊色,著名的自然语言解决包nltk和专门用于中文分词的jieba是制作分词的工具。
数据解决
准备就绪,只有东风借。 这种东风是数据解决算法。 从统计理论到数据发掘、机器学习,再到近年提倡的深度学习理论,数据科学处于百花齐放的时代。 数据科学家们在做什么编程?
在理论研究行业,r语言可能最受数据科学家欢迎,但r语言的问题也很明显,因为统计学家们制作了r语言,所以其语法有点奇怪。 另外,r语言为了实现大规模的分散系统,有需要很长时间的工程之路。 因此,许多企业采用r语言作为原型考试,在算法明确后,将其翻译成工程语言。
python也是数据科学家最喜欢的语言之一。 与r语言不同,python本身是一种工程语言,数据科学家在python中实现的算法可以直接用于产品,因此非常有助于降低大数据初创企业的成本。 正式为了数据科学家对python和r的爱,spark为了取悦数据科学家,非常支持这两种语言。
python的数据解决相关类库非常多。 高性能的科学计算类库numpy和scipy为其他高级算法奠定了非常好的基础,matploglib使python的画像matlab一样简单。 scikit-learn和milk实现了许多机器学习算法,基于这两个库实现的pylearn2是深度学习行业的重要成员。 theano利用gpu加速实现了高性能数学符号计算和多维矩阵计算。 当然,还有pandas。 在工程行业广泛采用的大型数据解决方案库中,dataframe的设计从r语言中借鉴,启发了spark项目实现同样的机制。
顺便说一下,还有ipython。 这个工具很有用,我差点忘了把他介绍成标准库。 ipython是交互式python运行环境,可以实时查看所有python代码的结果。 缺省情况下,ipython在命令行上运行,ipython notebook可以在网页上运行。 matplotlib创建的图可以直接嵌入到ipython notebook中。
因为ipython notebook的笔记本文件可以和别人共享,所以别人可以在自己的环境中再现你的工作成果。 如果对方没有运行环境,也可以直接转换为html或pdf。
为什么是python
正因为应用开发工程师、运维工程师和数据科学家喜欢python,python才成为大数据系统的全栈开发语言。
对开发工程师来说,python的优雅和简洁确实是最大的魅力,在python交互环境中运行import this,读python的禅,就知道python为什么这么吸引人了。 python社区总是很有活力,与nodejs社区包的爆炸性增长不同,python包的增长速度一直很稳定,包的质量也比较高。 许多人对python的空间要求太严格,因此,python在进行大规模项目时比其他语言更有特点。 openstack项目总共有200多万行代码,说明了这一点。
对于运维工程师来说,python的最大特点是在大多数linux版本中内置了python解释器。 壳牌功能很强,但毕竟语法不优雅,写比较多复杂的任务很痛苦。 python代替壳牌,做了一些复杂的任务,对承运人来说是解放。
对数据科学家来说,python简单有力。 与c/c++相比,无需创建更多底层员工,即可更快地进行模型验证。 与java相比,python语法简洁,表现力强,同一事业只需要1/3代码。 与matlab、octave相比,python的工程成熟度更高。 多个编程大牛说,python最适合作为大学计算机科学编程课程的语言mit计算机入门课程采用python。 因为python可以学习编程最重要的东西是如何处理问题的。
顺便说一下,微软每年参加pycon,提高python在windows上的编程体验,例如VSTOO支持PyTHHON,PyTHHHON的C扩展是在windows上编译的。 补充未来python的场景作为windows的默认组件。
标题:【科技】大数据全栈式开发语言
地址:http://www.greenichiban.com/news/19885.html
免责声明:国际科技时报是中国具有影响力的科技媒体,以全球视角,第一时间呈现最新科技资讯。所著的内容转载自互联网,本站不为其真实性负责,只为传播网络信息为目的,非商业用途,如有异议请及时联系btr2031@163.com,国际科技时报的作者:何鸿宝将予以删除。