我需要学习Hadoop才能成为数据科学家吗?


38

一位有抱负的数据科学家。我对Hadoop一无所知,但是当我阅读有关数据科学和大数据的文章时,我看到了很多有关Hadoop的话题。学习Hadoop成为数据科学家绝对必要吗?


1
此类问题正在meta上讨论。您可以在本元信息中
asheeshr 2014年

这不是绝对必要的。它只是其中一种工具。对统计量和线性代数的理解是必要的。工具的选择是次要的。
维克多

看看这本免费的电子书,它会尝试回答您的问题。oreilly.com/data/free/files/analyzing-the-analyzers.pdf
Espanta

我对IBM Watson Analytics,Google的Bigquery和其他基于云的分析有类似的问题,这些技术是否比Hadoop和Spark更好?...做大数据分析

Answers:


47

不同的人为不同的事物使用不同的工具。诸如Data Science之类的术语之所以通用,是有原因的。数据科学家可以在整个职业生涯中度过,而不必学习像hadoop这样的特定工具。Hadoop被广泛使用,但它不是唯一能够管理和处理数据(甚至是大规模数据)的平台。

我要说的是,数据科学家应该熟悉MapReduce,分布式系统,分布式文件系统等概念,但是我不会判断某人是否不了解此类知识。

这是一个很大的领域。知识之海浩如烟海,大多数人一口气就能学习并成为专家。成为科学家的关键是要有学习的欲望和动机,以了解您尚不了解的知识。

例如:我可以向合适的人提供一百个结构化CSV文件,其中包含有关十年来某个特定班级的课堂表现的信息。数据科学家将能够花费一年的时间从​​数据中收集见解,而无需将计算分散在多台计算机上。您可以应用机器学习算法,使用可视化工具对其进行分析,并将其与有关该地区,种族构成,环境随时间的变化,政治信息,天气模式等外部数据相结合。我认为所有这些都是“数据科学” 。可能需要像hadoop这样的测试才能将您学到的所有内容测试并应用于包含整个学生国家(而不只是教室)的数据,但是最后一步并不一定会使某人成为数据科学家。


10

作为一名前Hadoop工程师,它不是必需的,但会有所帮助。Hadoop只是一个系统-基于Java的最常见系统和产品生态系统,它们应用特定的技术“ Map / Reduce”来及时获取结果。谷歌没有使用Hadoop,尽管我向您保证他们使用大数据分析。Google使用自己的以C ++开发的系统。实际上,Hadoop的创建是Google发布其Map / Reduce和BigTable(Hadoop中的HBase)白皮书的结果。

数据科学家将与hadoop工程师进行交互,尽管在较小的地方,您可能需要戴两顶帽子。如果您严格地是数据科学家,那么您用于分析,R,Excel,Tableau等的任何数据都只能在一个很小的子集上运行,那么就需要转换以针对涉及hadoop的完整数据集运行。


8

您必须首先弄清楚“学习Hadoop”的含义。如果您打算使用Hadoop,例如学习在MapReduce中编程,那么很可能是个好主意。但是随着时间的流逝,基础知识(数据库,机器学习,统计)可能会发挥更大的作用。


显然,大多数人都在使用Hadoop进行分析。我在想什么,我是否需要类似的知识或有关数据库,ML,统计信息的知识?
Pensu 2014年

5

是的,您应该学习一个能够将问题分解为数据并行问题的平台。Hadoop是其中之一。对于您的简单需求(设计模式(例如计数,聚合,过滤等)),您需要Hadoop;对于更复杂的机器学习产品(例如,进行一些贝叶斯,SVM),您需要Mahout,而Mahout则需要Hadoop(现在的Apache Spark)来解决您的问题数据并行方法。

因此,Hadoop是一个很好的学习平台,对于您的批处理需求确实很重要。不仅是Hadoop,而且您还需要了解Spark(Mahout使用Spark来运行它的算法)和Twitter Storm(以满足您的实时分析需求)。该列表将继续发展,因此,如果您精通构建基块(分布式计算,数据并行问题等),并且知道一个这样的平台(例如Hadoop)如何运作,您将很快加快开发其他平台的速度。


4

这在很大程度上取决于您所使用的环境/公司。在我眼中,目前有一种“大数据”炒作,许多公司尝试使用基于hadoop的解决方案进入该领域-是什么使hadoop成为流行语,但它并不总是最佳解决方案。

在我看来,优秀的数据科学家应该能够提出正确的问题,并继续提出要求,直到真正需要明确的内容为止。当然,比一个优秀的DataScientist还需要知道如何解决该问题(或者至少知道可以解决的人)。否则您的利益相关者可能会沮丧:-)

因此,我想说学习Hadoop并非绝对必要。




1

数据科学是一个需要各种技能的领域。拥有Hadoop知识就是其中之一。数据科学家的主要任务包括:

  1. 从不同的资源收集数据。
  2. 清洗和预处理数据。
  3. 研究数据的统计特性。
  4. 使用机器学习技术进行预测并从数据中得出见解。
  5. 以一种易于理解的方式将结果传达给决策者。

在以上几点中,Hadoop知识对于点1,2和3很有用,但您还需要具备强大的数学/统计背景和对计算技术的深入了解才能在数据科学领域工作。Hadoop并不是数据科学中唯一使用的框架。大数据生态系统具有一系列框架,每个框架都针对特定的用例。本文提供了有关可以在数据科学中使用的主要大数据框架的入门资料:

http://www.codophile.com/big-data-frameworks-every-programmer-should-know/


1

我确实认为,倾斜Hadoop框架(艰难的方式)并不是成为数据科学家的必要条件。所有大数据平台上的常识都是必不可少的。我建议建议了解其概念,而Hadoop唯一需要的就是MapReduce http://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html

数据科学家不会建立集群,而是管理……只是使数据变得“不可思议”,并且不在乎来自何处。术语“ Hadoop”不仅指上述基本模块,还指“生态系统”或可以安装在Hadoop之上或并置的其他软件包的集合,例如Apache Pig,Apache Hive, Apache HBase,Apache Spark等。

最重要的是用于处理数据的编程语言,数学和统计信息(您需要找到一种与数据连接并向前发展的方法)。我希望有人指出我这个概念,不要花数周的时间学习框架并从头开始构建节点和群集,因为那部分是管理员角色,而不是数据工程师或数据科学家。还有一件事:一切都在变化和发展,但是数学,编程,统计仍然是必需的。

从hdfs访问数据至关重要,例如PROC Hadoop,Hive,SparkContext或任何其他驱动程序或管道(处理hadoop即可访问数据或存储:)

已经有一些工具或框架负责资源分配和管理,性能。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.