是的,只需10分钟即可开始处理您的第一个大数据集!
在本文中,我将向您展示如何在具备一定Python背景的前提下轻松进入大数据领域。
开始这一小旅程的最佳点是首先了解什么是大数据。 答案实际上取决于计算机的RAM大小和处理速度。 对于常规PC,超过8GB或16GB的任何内容都很难处理。 公司的机器可能还可以咀嚼更多。 因此,大数据基本上是任何太大而无法以常规方式处理的数据集。
那么我们如何处理大数据呢? 显然,一种方法是购买更多的RAM和更强大的处理器。 但这是非常昂贵的,而且不是可扩展的解决方案。 如果数据集很大(> 1TB),则可能也不起作用。 而是有一个更好的可伸缩解决方案。 它将数据集和工作负载划分到多台计算机/计算单元上。 但这并不意味着您需要购买硬件并自行连接机器。 幸运的是,有互联网服务可以为我们提供完整的计算基础架构,随时可用。
一种这样的服务是Amazon AWS,它可以租用必要数量的计算单元来处理任何数量的数据。 计算单元位于Amazon服务器上,随时可以使用。 使用AWS服务的成本是完全透明的,并且是按每小时每单位计算的。 不用担心,在此示例中运行首次大数据分析的总费用应低于4美元。
话虽这么说,让我们开始工作!
步骤1是创建一个Amazon AWS账户:
1a。 转到aws.amazon/并创建一个帐户
> Make an AWS account
1b。 除了通常的信息外,您还需要输入信用卡详细信息。 这是注册的最后一步。 为了检查您的信用卡是否真实,Amazon AWS将从您的账户中一次性扣除1 $(我很讨厌)。
> Provide Credit Card information
在帐户设置过程中,选择您的位置为:美国西部(俄勒冈州)(这不是强制性的,但不会造成伤害)
第2步是启动您的集群
2a。 群集是一堆并行运行的计算机实例/处理器的代名词。 登录到您的AWS账户,然后转到左上角的服务,然后输入EMR。 这代表Elastic Map Reduce,这是一项用于并行计算的Amazon服务。
> Amazon offers a lot of services, choose EMR
2b。 进入EMR后,转到左侧面板中的"群集",然后单击"创建群集"
> Start making a Cluster
2c。 然后单击"转到高级选项",确保您的启动模式设置为"群集"。
> Go to advanced options
输入"高级选项"后,将填写4个页面,以与下面相同的方式进行本科设置。
2d。 在第一页(软件和步骤)中,确保使用最新的EMR版本,并选择了Spark,Hive和Hadoop。 同时选择Zepellin,Hue,Ganglia和Pig是一个好主意。 单击下一步。
> 1st page of Cluster advanced options — Software
2e。 在第二页(硬件)中,我们应该选择实例/处理器类型和实例数量。 Amazon AWS提供了许多不同的实例/处理器类型。 它们具有不同的目的和价格,因此最好调查哪种配置最适合您的任务。
在此示例中,我选择了五个M5.xlarge处理器(1个主实例和4个Core实例)。 与普通PC相比,它提供了大约10倍的RAM。 事实证明,这样的处理足以处理12 GB和2500万行的数据集。
> 2nd page of Cluster advanced options — Hardware setup
2f。 在"群集"高级选项的第三页("常规群集设置")中,我们应该给群集命名
> 3rd page of Cluster advanced options — General Settings
2克 在"群集"高级选项的第4页("安全性")中,可以设置安全性配置。 我们不会对此特别关注,因此我选择了没有EC2密钥对的继续。 您可以在此处阅读有关EC2密钥对的更多信息。
> 4th page of Cluster advanced options — Security
2小时 现在您的集群已设置完毕,单击"创建集群",将出现以下屏幕
> Your cluster is almost ready
2i。 单击左窗格中的群集。 群集的状态为正在启动。 群集准备就绪后,状态将更改为"等待"(群集就绪)。 同样,一旦准备好使用群集,群集名称旁边的绿色圆圈将变成一个完整的绿色圆圈。 请随时刷新页面,以检查圆圈是否变为绿色。
> Wait for the full green circle to appear
> Your cluster is ready!
2j。 现在,我们应该为您的代码设置工作区。 Amazon EMR在该平台中集成了Jupyter笔记本。 在左窗格上,单击"笔记本",然后单击"创建笔记本"。
> Start a Jupyter Notebook
2k。 为您的笔记本命名,然后单击"选择"(在"群集"下)以将您的笔记本附加到刚创建的群集。
> Give your Notebook a Name
> Attach your Notebook to a Cluster
2升 然后单击选择群集,然后单击创建笔记本。 您的笔记本电脑也将需要几分钟来准备。 准备就绪后,它将状态从"开始"更改为"就绪"。 单击上方的在Jupyter中打开。
> Wait until your Notebook is Ready
2m 现在,您的Jupyter Notebook将在另一个浏览器窗口中打开。 打开笔记本电脑后,请确保单击内核/更改内核/ PySpark。 那是第2步的最后部分。
> Set your Jupyter Notebook to PySpark
步骤3是准备您的(大)数据
3a。 返回第一个AWS页面,转到Services并找到S3。 S3是亚马逊提供的一个非常大的云数据库。 这是应该存储您的数据的位置。
> Go to Amazon S3
3b。 在S3中,单击"创建存储桶"。 这是一个存储库,您将在其中上载数据。
> Create a Bucket inside Amazon S3
3c。 给您的存储桶起一个唯一的名字。 Amazon S3上的两个存储桶不能共享相同的名称
> Give your S3 Bucket a unique Name
3d。 单击存储桶以将其打开
> Open your Bucket
3e。 您现在可以将数据添加到存储桶中。 对于小于160 GB的文件,您只需将它们拖放到存储桶中即可。 (要上传大于160 GB的数据,您必须使用AWS CLI,AWS SDK或Amazon S3 REST API)
就本教程而言,您可以继续使用此虚拟数据集。 将其下载到本地计算机,然后将其上传到存储桶。
虚拟数据集只有几个MB,因此不是大数据。 如果您拥有适当的大数据集,则可以随意使用它而不是虚拟数据集。
> Upload the Data to your Bucket
> Your Data will appear in the Bucket
3楼 检查您的数据是否在存储桶中
> Your data is in the bucket and ready to analyse
3克 现在一切都准备好进行分析了。 数据的路径具有以下模式:" s3n://您的存储桶名称/您的文件名。扩展名类型"。
您将使用该路径将S3数据导入Jupyter Notebook
第4步是最后进行大数据分析!
4a。 首先导入基本的PySpark软件包。
PySpark是一个API,旨在支持在Spark上运行的Python。 Spark是一个集群计算框架,近来几乎是Big Data的同义词。 简而言之,Spark正在协调分散在多个处理单元中的工作负载。 要执行大数据并与Spark交互,您还可以选择Scala,Java或R代替Python(PySpark)。
由于我对Python熟悉,因此出于本示例的目的,我选择了PySpark。 您会发现PySpark与本机Python语法非常相似,但是如果遇到问题,可以在此处查找。
> Import PySpark packages
4b。 创建一个Spark会话,并使用先前制作的Path从您的存储桶中导入数据。
> Import the Data into the Jupyter Notebook
4c。 做你的分析。 您可以在PySpark或SQL语法之间进行选择。 如果您选择使用SQL语法,请不要忘记制作临时表。 您只能对临时表运行查询,而不能直接对PySpark数据帧运行查询。
> Choose between native PySpark or SQL syntax to wrangle your data
如果您想对数据运行ML算法,下面是一个有关如何在PySpark中完成操作的示例。
第5步是终止会话
5a。 完成分析后,请确保终止集群。 否则可能会导致高昂的费用。 返回服务/ EMR /群集,然后单击终止。
> Don't forget to terminate your clusters
5b。 群集需要几分钟才能关闭
> Check if the cluster is terminating
5c。 之后,您应该停止或删除笔记本,并删除S3存储桶。 只要将它们保存在AWS服务器上,这两者都会产生(实际上是很小的)成本。 因此,如果您真的不需要它们,请将其删除。 在删除笔记本之前,请不要忘记在本地下载笔记本,否则您将丢失代码。
5d 删除您的S3存储桶
> Delete your Buckets
5e。 最后一步是通过转到您的帐户名/我的结算信息中心来检查您的账单
> Check your Billing Dashboard
5f 如前所述,如果您正确执行了所有步骤,则此练习的总帐单不会超过3美元,这还不包括1美元的信用卡支票费用。 (正如您在下面看到的那样,我设法产生了更高的成本,但这仅仅是因为我将群集运行了几天。)
> The Billing Dashboard provides some nice visualizations of your AWS Costs
总结
我们已经结束了小小的旅程,所以让我们快速总结一下我们已经涵盖的上述步骤:
· 开设一个Amazon AWS账户
· 使用AWS EMR服务设置并激活集群
· 制作Jupyter笔记本并将其与群集连接
· 将您的数据上传到Amazon S3
· 运行分析