介绍 大数据领域相当广阔,对于任何开始学习大数据及其相关技术的人来说,这都是一项非常艰巨的任务。大数据技术数不胜数,决定从哪里开始可能是迷茫的。 这就是我想写这篇文章的原因。本文为您提供了一条引导您开始学习大数据之旅的途径,并将帮助您在大数据行业找到一份工作。我们面临的最大挑战是根据我们的兴趣和技能确定正确的角色。 为了解决这个问题,我对每个大数据角色都做了详细的解释,并考虑了工程师和计算机科学毕业生的不同工作角色。 我已经尝试回答您在学习大数据时已经或将要遇到的所有问题。为了帮助您根据自己的兴趣选择路径,我添加了一个目录,它将帮助您确定正确的路径。 目录
6. 大数据学习路径 7. 资源 1.如何开始 当人们想要开始研究大数据时,首先问我的问题是,我是学习Hadoop、分布式计算、Kafka、NoSQL还是Spark? 我总是有一个答案:这取决于你真正想做什么。 所以,让我们用一种系统的方法来解决这个问题。我们将一步一步地学习这个过程。 2.在大数据行业,什么角色是可以争取的 大数据行业有很多角色。但大体上可以分为两类
这些领域相互依存,但各不相同。 大数据工程围绕着大量数据的设计、部署、获取和维护(存储)。大数据工程师需要设计和部署的系统,使相关数据可用于各种面向消费者和内部应用。 而大数据分析的核心概念是利用大数据工程师设计的系统中的大量数据。大数据分析包括分析趋势、模式以及开发各种分类、预测和预测系统。 因此,简而言之,大数据分析涉及到对数据的高级计算。而大数据工程涉及到系统和设置的设计和部署,在此基础上必须进行计算。 3.你的个人资料是什么?你适合什么职位 现在,我们知道了行业中可用的角色类别,让我们尝试确定哪种适合您。这样,你就可以分析你在这个行业的位置。 总的来说,根据你的教育背景和行业经验,我们可以对每个人进行如下分类
1.计算机科学 2.运算
1.菜鸟 2.数据科学家 3.计算机工程师(数据相关项目工作) 因此,通过使用上述类别可以如下定义您的个人资料: 例子1:“我是计算机科学专业的毕业生,没有经验,但数学能力相当扎实。” 你对计算机科学或数学有兴趣,但如果没有以前的经验,你会被认为是菜鸟。 例子2:“我是计算机科学专业的毕业生,从事数据库开发工作。” 你对计算机科学感兴趣,适合担任计算机工程师(数据相关项目)。 例子3: “我是一名数据科学家。” 你对数学感兴趣,适合做一个数据科学家。 所以,继续定义你的概要文件。 (我们在这里定义的概要文件对于寻找您在大数据行业的学习路径至关重要)。 4.将角色映射到大数据概要 既然您已经定义了您的概要文件,让我们继续映射您应该瞄准的概要文件。 4.1 大数据工程角色 如果你有良好的编程技能,了解计算机如何在互联网上交互(基础),但你对数学和统计学没有兴趣。在这种情况下,您应该选择大数据工程角色。 4.2 大数据分析的角色 如果你擅长编程,并且你的教育背景和兴趣在于数学和统计学,那么你应该选择大数据分析职位。 5.如何成为一名大数据工程师 首先,让我们来定义一个大数据工程师需要知道什么,以及如何在行业中获得一个职位。第一步也是最重要的一步是首先确定你的需求。你不能在没有明确需求的情况下就开始研究大数据。否则,你就只能在黑暗中摸索。 为了定义你的需求,你必须了解常见的大数据术语。让我们来看看大数据到底意味着什么? 5.1 大数据术语 大数据项目主要有数据需求和处理需求两个方面。 5.1.1 数据需求术语 结构:如你所知,数据既可以存储在表中,也可以存储在文件中。如果数据存储在预定义的数据模型中(即有一个模式),它被称为结构化数据。如果它存储在文件中,并且没有预定义的模型,则称为非结构化数据。(类型:结构化/非结构化)。 大小:随着大小,我们评估的数据量。 (类型:S / M / L / XL / XXL /流) 接收吞吐量:定义数据可以以什么速率被系统接受。(类型:H / M / L) 源吞吐量:定义数据更新和转换到系统的速率。(类型:H / M / L) 5.1.2 处理需求术语 查询时间:系统执行查询所需的时间。(类型:长/中/短) 处理时间:处理数据所需的时间(类型:长/中/短) 精度:数据处理的精度(类型:精确/近似) 5.2 您需要了解的系统和体系结构 场景1:通过从客户数据、领先数据、呼叫中心数据、销售数据、产品数据、weblog等多个数据源创建一个数据湖,设计一个分析公司销售业绩的系统。 5.3 学习设计解决方案和技术 场景1的解决方案:销售数据的数据湖 (这是我个人的解决方案) 那么,数据工程师如何着手解决这个问题呢? 要记住的一点是,一个大数据系统不仅要设计无缝集成来自不同数据源的数据,使其可用,但它也必须设计一个方法,使数据的分析和利用数据开发应用程序简单,快速,总是可用的。 定义最终目标:
现在我们知道了我们的最终目标是什么,让我们尝试用更正式的术语来表述我们的需求。 5.3.1 数据相关要求 结构:大多数数据都是结构化的,并且有一个定义好的数据模型。但是像网络日志、客户互动/呼叫中心数据、销售目录中的图像数据、产品广告数据这样的数据源。图像和多媒体广告数据的可用性和要求可能因公司而异。 结论:包括结构化数据和非结构化数据 大小:L或XL(选择Hadoop) 接收吞吐量:高 质量:中等(Hadoop & Kafka) 完整性:不完整 5.3.2 处理相关要求 查询时间:中到长 处理时间:中到短 精度:精确 由于集成了多个数据源,因此必须注意,不同的数据将以不同的速率进入系统。例如,weblog将以高粒度的连续流提供。 基于以上对我们系统需求的分析,我们可以推荐以下大数据设置。 6.大数据学习路径 现在,您已经了解了大数据行业,以及大数据从业者的不同角色和需求。让我们来看看要成为一名大数据工程师,你应该走什么样的道路。 众所周知,大数据领域充斥着各种技术。因此,学习与您的大数据工作角色相关并保持一致的技术是非常重要的。这与任何传统领域(如数据科学和机器学习)有所不同,在这些领域中,你从某件事开始,然后努力完成该领域的所有工作。 下面你会发现一棵树,为了找到你自己的路,你应该穿过它。尽管树中的一些技术被指出是数据科学家的强项,但是如果您开始一条路径,最好了解所有的技术直到叶子节点。该树源自lambda体系结构范式。 借助这个树形图,您可以根据自己的兴趣和目标选择路径。然后你就可以开始学习大数据的旅程了。 任何想要部署应用程序的工程师都必须知道的一个基本概念是Bash脚本。您必须非常熟悉linux和bash脚本。这是处理大数据的基本要求。 在核心,大多数大数据技术都是用Java或Scala编写的。但是不要担心,如果你不想用这些语言编码,你可以选择Python或者R,因为现在大多数大数据技术都广泛支持Python和R。 因此,您可以从上面提到的任何一种语言开始。我建议选择Python或Java。 接下来,您需要熟悉云计算。这是因为如果你没有处理过云上的大数据,那么后面的路会很难。尝试在AWS、softlayer或任何其他云提供商上使用小型数据集进行实践。它们中的大多数都有一个免费的层,这样学生就可以练习了。如果你愿意,你可以暂时跳过这一步,但是在你参加任何面试之前,一定要在云端工作。 接下来,您需要了解分布式文件系统。最流行的DFS是Hadoop分布式文件系统。在这个阶段,您还可以研究一些与您的域相关的NoSQL数据库。 到目前为止,这条道路是每个大数据工程师都必须知道的强制性基础。 现在是您决定是使用数据流还是休眠的大量数据的时候了。这是用来定义大数据的四个V中两个V的选择(体积、速度、多样性和准确性)。 假设您决定使用数据流来开发实时或接近实时的分析系统。那么你应该走Kafka之路。否则选择Mapreduce路径。这样你就沿着你创造的道路前进。请注意,在Mapreduce路径中不需要学习pig和hive。只学习其中之一就足够了。 总结:遍历树的方法。
最后一步(#7)让你产生疑惑了吗!说实话,没有一个应用程序只有流处理或低速延迟数据处理。因此,在技术上,您需要精通执行完整的lambda体系结构。 此外,请注意,这不是你可以学习大数据技术的唯一途径。当然,你可以创建自己的路径。 但是,这是可以适用于大多数人的路径。 如果你想进入大数据分析领域,你可以走同样的道路,但不要试图完善一切。 对于一个能够处理大数据的数据科学家,您需要在下面的树中添加几个机器学习管道,并将注意力集中在机器学习管道上,而不是下面提供的树。但是我们可以稍后讨论ML管道。 根据您在上述树中使用的数据类型,添加一个所选的NoSQL数据库。 如您所见,有许多NoSQL数据库可供选择。因此,它总是取决于您将使用的数据类型。 为您需要考虑的NoSQL数据库类型提供明确的答案,例如延迟、可用性、弹性、准确性,当然还有您正在处理的数据类型。 END |
|