10万数据需要创建索引吗 十万条数据占多大空间_数据集


  是的,只需10分钟即可开始处理您的第一个大数据集!

  在本文中,我将向您展示如何在具备一定Python背景的前提下轻松进入大数据领域。

  开始这一小旅程的最佳点是首先了解什么是大数据。 答案实际上取决于计算机的RAM大小和处理速度。 对于常规PC,超过8GB或16GB的任何内容都很难处理。 公司的机器可能还可以咀嚼更多。 因此,大数据基本上是任何太大而无法以常规方式处理的数据集。

  那么我们如何处理大数据呢? 显然,一种方法是购买更多的RAM和更强大的处理器。 但这是非常昂贵的,而且不是可扩展的解决方案。 如果数据集很大(> 1TB),则可能也不起作用。 而是有一个更好的可伸缩解决方案。 它将数据集和工作负载划分到多台计算机/计算单元上。 但这并不意味着您需要购买硬件并自行连接机器。 幸运的是,有互联网服务可以为我们提供完整的计算基础架构,随时可用。

  一种这样的服务是Amazon AWS,它可以租用必要数量的计算单元来处理任何数量的数据。 计算单元位于Amazon服务器上,随时可以使用。 使用AWS服务的成本是完全透明的,并且是按每小时每单位计算的。 不用担心,在此示例中运行首次大数据分析的总费用应低于4美元。

  话虽这么说,让我们开始工作!

  步骤1是创建一个Amazon AWS账户:

  1a。 转到aws.amazon/并创建一个帐户

  

10万数据需要创建索引吗 十万条数据占多大空间_数据集_02

  > Make an AWS account

  1b。 除了通常的信息外,您还需要输入信用卡详细信息。 这是注册的最后一步。 为了检查您的信用卡是否真实,Amazon AWS将从您的账户中一次性扣除1 $(我很讨厌)。

  

10万数据需要创建索引吗 十万条数据占多大空间_AWS_03

  > Provide Credit Card information

  在帐户设置过程中,选择您的位置为:美国西部(俄勒冈州)(这不是强制性的,但不会造成伤害)

  第2步是启动您的集群

  2a。 群集是一堆并行运行的计算机实例/处理器的代名词。 登录到您的AWS账户,然后转到左上角的服务,然后输入EMR。 这代表Elastic Map Reduce,这是一项用于并行计算的Amazon服务。

  

10万数据需要创建索引吗 十万条数据占多大空间_数据集_04

  > Amazon offers a lot of services, choose EMR

  2b。 进入EMR后,转到左侧面板中的"群集",然后单击"创建群集"

  

10万数据需要创建索引吗 十万条数据占多大空间_10万数据需要创建索引吗_05

  > Start making a Cluster

  2c。 然后单击"转到高级选项",确保您的启动模式设置为"群集"。

  

10万数据需要创建索引吗 十万条数据占多大空间_10万数据需要创建索引吗_06

  > Go to advanced options

  输入"高级选项"后,将填写4个页面,以与下面相同的方式进行本科设置。

  2d。 在第一页(软件和步骤)中,确保使用最新的EMR版本,并选择了Spark,Hive和Hadoop。 同时选择Zepellin,Hue,Ganglia和Pig是一个好主意。 单击下一步。

  

10万数据需要创建索引吗 十万条数据占多大空间_AWS_07

  > 1st page of Cluster advanced options — Software

  2e。 在第二页(硬件)中,我们应该选择实例/处理器类型和实例数量。 Amazon AWS提供了许多不同的实例/处理器类型。 它们具有不同的目的和价格,因此最好调查哪种配置最适合您的任务。

  在此示例中,我选择了五个M5.xlarge处理器(1个主实例和4个Core实例)。 与普通PC相比,它提供了大约10倍的RAM。 事实证明,这样的处理足以处理12 GB和2500万行的数据集。

  

10万数据需要创建索引吗 十万条数据占多大空间_Amazon_08

  > 2nd page of Cluster advanced options — Hardware setup

  2f。 在"群集"高级选项的第三页("常规群集设置")中,我们应该给群集命名

  

10万数据需要创建索引吗 十万条数据占多大空间_数据集_09

  > 3rd page of Cluster advanced options — General Settings

  2克 在"群集"高级选项的第4页("安全性")中,可以设置安全性配置。 我们不会对此特别关注,因此我选择了没有EC2密钥对的继续。 您可以在此处阅读有关EC2密钥对的更多信息。

  

10万数据需要创建索引吗 十万条数据占多大空间_10万数据需要创建索引吗_10

  > 4th page of Cluster advanced options — Security

  2小时 现在您的集群已设置完毕,单击"创建集群",将出现以下屏幕

  

10万数据需要创建索引吗 十万条数据占多大空间_数据集_11

  > Your cluster is almost ready

  2i。 单击左窗格中的群集。 群集的状态为正在启动。 群集准备就绪后,状态将更改为"等待"(群集就绪)。 同样,一旦准备好使用群集,群集名称旁边的绿色圆圈将变成一个完整的绿色圆圈。 请随时刷新页面,以检查圆圈是否变为绿色。

  

10万数据需要创建索引吗 十万条数据占多大空间_c语言_12

  > Wait for the full green circle to appear

  

10万数据需要创建索引吗 十万条数据占多大空间_10万数据需要创建索引吗_13

  > Your cluster is ready!

  2j。 现在,我们应该为您的代码设置工作区。 Amazon EMR在该平台中集成了Jupyter笔记本。 在左窗格上,单击"笔记本",然后单击"创建笔记本"。

  

10万数据需要创建索引吗 十万条数据占多大空间_c语言_14

  > Start a Jupyter Notebook

  2k。 为您的笔记本命名,然后单击"选择"(在"群集"下)以将您的笔记本附加到刚创建的群集。

  

10万数据需要创建索引吗 十万条数据占多大空间_c语言_15

  > Give your Notebook a Name

  

10万数据需要创建索引吗 十万条数据占多大空间_Amazon_16

  > Attach your Notebook to a Cluster

  2升 然后单击选择群集,然后单击创建笔记本。 您的笔记本电脑也将需要几分钟来准备。 准备就绪后,它将状态从"开始"更改为"就绪"。 单击上方的在Jupyter中打开。

  

10万数据需要创建索引吗 十万条数据占多大空间_AWS_17

  > Wait until your Notebook is Ready

  2m 现在,您的Jupyter Notebook将在另一个浏览器窗口中打开。 打开笔记本电脑后,请确保单击内核/更改内核/ PySpark。 那是第2步的最后部分。

  

10万数据需要创建索引吗 十万条数据占多大空间_数据集_18

  > Set your Jupyter Notebook to PySpark

  步骤3是准备您的(大)数据

  3a。 返回第一个AWS页面,转到Services并找到S3。 S3是亚马逊提供的一个非常大的云数据库。 这是应该存储您的数据的位置。

  

10万数据需要创建索引吗 十万条数据占多大空间_Amazon_19

  > Go to Amazon S3

  3b。 在S3中,单击"创建存储桶"。 这是一个存储库,您将在其中上载数据。

  

10万数据需要创建索引吗 十万条数据占多大空间_c语言_20

  > Create a Bucket inside Amazon S3

  3c。 给您的存储桶起一个唯一的名字。 Amazon S3上的两个存储桶不能共享相同的名称

  

10万数据需要创建索引吗 十万条数据占多大空间_c语言_21

  > Give your S3 Bucket a unique Name

  3d。 单击存储桶以将其打开

  

10万数据需要创建索引吗 十万条数据占多大空间_c语言_22

  > Open your Bucket

  3e。 您现在可以将数据添加到存储桶中。 对于小于160 GB的文件,您只需将它们拖放到存储桶中即可。 (要上传大于160 GB的数据,您必须使用AWS CLI,AWS SDK或Amazon S3 REST API)

  就本教程而言,您可以继续使用此虚拟数据集。 将其下载到本地计算机,然后将其上传到存储桶。

  虚拟数据集只有几个MB,因此不是大数据。 如果您拥有适当的大数据集,则可以随意使用它而不是虚拟数据集。

  

10万数据需要创建索引吗 十万条数据占多大空间_数据集_23

  > Upload the Data to your Bucket

  

10万数据需要创建索引吗 十万条数据占多大空间_10万数据需要创建索引吗_24

  > Your Data will appear in the Bucket

  3楼 检查您的数据是否在存储桶中

  

10万数据需要创建索引吗 十万条数据占多大空间_10万数据需要创建索引吗_25

  > 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语法非常相似,但是如果遇到问题,可以在此处查找。

  

10万数据需要创建索引吗 十万条数据占多大空间_10万数据需要创建索引吗_26

  > Import PySpark packages

  4b。 创建一个Spark会话,并使用先前制作的Path从您的存储桶中导入数据。

  

10万数据需要创建索引吗 十万条数据占多大空间_AWS_27

  > Import the Data into the Jupyter Notebook

  4c。 做你的分析。 您可以在PySpark或SQL语法之间进行选择。 如果您选择使用SQL语法,请不要忘记制作临时表。 您只能对临时表运行查询,而不能直接对PySpark数据帧运行查询。

  

10万数据需要创建索引吗 十万条数据占多大空间_10万数据需要创建索引吗_28

  > Choose between native PySpark or SQL syntax to wrangle your data

  如果您想对数据运行ML算法,下面是一个有关如何在PySpark中完成操作的示例。

  第5步是终止会话

  5a。 完成分析后,请确保终止集群。 否则可能会导致高昂的费用。 返回服务/ EMR /群集,然后单击终止。

  

10万数据需要创建索引吗 十万条数据占多大空间_10万数据需要创建索引吗_29

  > Don't forget to terminate your clusters

  5b。 群集需要几分钟才能关闭

  

10万数据需要创建索引吗 十万条数据占多大空间_c语言_30

  > Check if the cluster is terminating

  5c。 之后,您应该停止或删除笔记本,并删除S3存储桶。 只要将它们保存在AWS服务器上,这两者都会产生(实际上是很小的)成本。 因此,如果您真的不需要它们,请将其删除。 在删除笔记本之前,请不要忘记在本地下载笔记本,否则您将丢失代码。

  

10万数据需要创建索引吗 十万条数据占多大空间_10万数据需要创建索引吗_31

  5d 删除您的S3存储桶

  

10万数据需要创建索引吗 十万条数据占多大空间_数据集_32

  > Delete your Buckets

  5e。 最后一步是通过转到您的帐户名/我的结算信息中心来检查您的账单

  

10万数据需要创建索引吗 十万条数据占多大空间_数据集_33

  > Check your Billing Dashboard

  5f 如前所述,如果您正确执行了所有步骤,则此练习的总帐单不会超过3美元,这还不包括1美元的信用卡支票费用。 (正如您在下面看到的那样,我设法产生了更高的成本,但这仅仅是因为我将群集运行了几天。)

  

10万数据需要创建索引吗 十万条数据占多大空间_c语言_34

  > The Billing Dashboard provides some nice visualizations of your AWS Costs

  总结

  我们已经结束了小小的旅程,所以让我们快速总结一下我们已经涵盖的上述步骤:

  · 开设一个Amazon AWS账户

  · 使用AWS EMR服务设置并激活集群

  · 制作Jupyter笔记本并将其与群集连接

  · 将您的数据上传到Amazon S3

  · 运行分析