当数据科学家需要使用某些软件时,其中一部分我们已经在之前的章节中做过介绍,这些软件涵盖了数据科学家所需要的基础专业内容。实际的工作范畴可能会超越求职时候的工作描述,这也是IT工作的常态之一。这在某种程度上是好的,因为它提供了学习新技能的机会,而这也是数据科学领域最引人入胜的方面之一。
在这一章中,我们会探索数据科学环境中常用的软件。不是所有在这里提到的软件都会在你的工作中用到,但了解它们会让你拥有更多选择。特别是我们会提到Hadoop套件的一些其他备选工具(例如Spark、Storm等),许多功能强大的面向对象编程语言(Java、C++、C#、Ruby和Python),现有的数据分析软件(R、Matlab、SPSS、SAS或是Stata),你可能会用到的虚拟化程序以及大数据集成系统(例如IBM的BigInsights、Cloudera等)。我们还会看看你可能接触到的其他软件,例如GIT、Excel、Eclipse、Emcien以及Oracle。注意这个列表只是告诉你这一领域的主流软件有哪些,但它们并不一定是你在未来工作中的真实环境下所使用的工具。一些公司可能会用到它所在行业的专业软件,在你入职的时候也许会被要求你去熟悉这些软件。了解这个列表中的大部分软件会让你工作地相对轻松和明确。
1 .Hadoop套件和朋友们
Hadoop在过去的几年里,几乎成为大数据的代名词。这是数据科学家的兵器库中的主要支撑。知道Hadoop不只是一个程序是非常重要的,它更像一组工具(类似于微软的Office)。这个套件被用于传输,保存和处理大数据。它还包含有一个调度器(Oozie)、元数据和表格管理架构(HCatalog)。所有在Hadoop中处理数据的任务都是分布在安装了Hadoop的所有机器集群中的,这些任务可以是面向对象程序(OOP)代码、数据分析程序、数据图形化脚本以及其他具有有限处理时间(finite process time)特征和对数据分析有用的任务。Hadoop会确保不管你对数据做什么样的操作都能以高效的方式完成,并以直观的方式呈现。
Hadoop并没有一个对用户友好的软件环境,如图1所示,这是一个典型的Hadoop任务的样子。