美文网首页
Jupyter与Spark开发环境配置指南

Jupyter与Spark开发环境配置指南

作者: Datartisan数据工匠 | 来源:发表于2017-11-23 13:14 被阅读1152次

    Jupyter与Spark开发环境配置指南

    什么是Spark?

    Spark是使用大量数据进行计算的框架。为什么需要Spark?比如,一个易于读入内存的小型数据集,Gb级的,你可能会使用Pandas,R或其他工具加载整个数据集,并且之后进行一些清洗和可视化,如果使用合适的计算机(或云计算基础设施),你将轻松完成而没有计算性能相关的麻烦。

    现在你必须处理1Tb(或更大)的数据集,并训练一个机器学习算法。即使使用强大的电脑也是疯狂的。Spark 提供了处理这些数据怪物所需的两个功能:

    • 并行计算:你使用的不是一台而是多台计算机来加速
    • 容错:如果某台计算机在处理过程中间挂起,则必须能够恢复。

    Spark如何在内部工作原理超出了本教程的范围,假设你已经熟悉了。无论如何,你不需要Spark的知识来设置并运行自己的集群。

    什么是Spark集群,“独立”是什么意思?

    Spark集群

    Spark集群是一些运行Spark并且一起工作的计算机。一个集群包括:

    • Master:是安排一切工作的电脑之一。它分配工作并管理一切。
    • Slaves:是完成工作的电脑。他们按照Map Reduce模式处理大量数据集的块。任一计算机可以同时成为Master和 Slaves。

    独立

    这意味着集群中每台计算机都安装了Spark。正在使用中的集群管理器由Spark提供。还有其他的集群管理器,如Apache Mesos和Hadoop YARN。

    要求

    按照本教程,你需要:

    • 至少两台电脑:这就是一个集群。
    • Linux:它也适用于OSX,你必须能够运行shell脚本。到目前为止,还没有看到Spark在传统Windows上运行。

    对于本教程,我已经使用了带有Ubuntu 17.04的MacBook Air,以及运行Ubuntu 16.04 LTS的Linux子系统的Windows 10。

    如果不符合这些要求,请不要担心,请按照以下步骤操作:

    • 下载Oracle Virtualbox。
    • 下载Linux。
    • 在Virtualbox中创建虚拟机,并在其上安装Linux。

    就是这样,你有2台Linux系统运行集群。

    警告:同时运行2台虚拟机在同一台计算机上,可以用于学习和原型设计,但是将失去在真实集群中的性能提升!

    教程

    步骤1:安装Java

    注意:必须对所有计算机执行此步骤。

    Spark需要Java来运行。我的建议使用OPEN JDK8。在终端中运行如下命令:

    1

    测试Java安装类型:

    2

    可以看到以下输出:

    3

    步骤2:安装Spark

    下载Spark。在本教程中使用了2.2.0 pre-built。可以去Spark下载页面并从那里下载,如果无法访问图形桌面,并且必须使用命令行才能运行:

    4

    之后,主目录中有Spark压缩包。解压并移动到home文件夹(推荐但不是必需的),以防将其下载到「下载」文件夹中。

    解压缩:

    5

    移动(可选):

    6

    最后设置所需的环境变量SPARK_HOME

    转到主目录,并使用文本编辑器打开「.bashrc」文件:

    7

    在文件末尾添加如下内容。当打开计算机或开始交互时,它将设置变量。将来该文件夹​​的名称可能会更改,并且与此处写入的文件夹名称不匹配,但过程是类似的。

    8

    保存文件。如果你正在使用nano做ctrl+x,键入y并按return下来完成它。

    现在可以检查Spark安装。去Spark文件夹并执行pyspark:

    9

    如果一切正常安装,可以看到类似于此的输出:

    [图片上传失败...(image-1e8f8f-1511414085008)]

    到目前为止,你可能会在Spark初始化时看到此警告:

    11

    要解决这个问题,必须安装Hadoop。这是可选的,因为Spark可以运行,但是我猜使用Hadoop可能会有某些性能改进。

    步骤3(可选):安装Hadoop

    安装Hadoop的过程和Spark几乎是一样的,我会快速完成。这是一个可选步骤,并不需要运行集群。你也可以稍后决定。安装Hadoop的步骤是:

    • 下载Hadoop。可以自由安装任何喜欢的版本,但版本应当高于2.7,因为它是Spark的要求。这和我们安装Spark一样。等效的命令行表达式。
    • 在home目录中解压缩。
    • .bashrc文件末尾添加以下内容:
    12
    • 通过启动pyspark测试Hadoop安装,确保警告没有再次出现。

    步骤4:启动master服务器

    在启动主服务器之前,必须检查ip以将其作为主机参数传递。键入以下命令:

    13

    可以看到类似的输出:

    14

    复制第二个inet中的值。这是<your_master_ip>。在这个例子中应该复制192.168.1.143

    现在,转到Spark安装目录并输入:

    [图片上传失败...(image-4fc397-1511414085008)]

    可以看到看到类似的输出:

    16

    现在,在启动master服务器的计算机中访问localhost:8080,如果无法访问Web浏览器,但是将其他设备连接到同一个专用网络(例如手机),通过<your_master_ip>:8080进行访问。在该URL中,可以访问master服务器Web用户界面。

    master_web_ui

    在这个网站,你可以看到在Spark Logo后面的一个URL参数类似的spark://<your_master_ip>:7077。这个URL非常重要,因为在将slaves连接到集群时,将需要这个URL,我将其命名<your_master_url>

    步骤5:连接slaves

    现在你有一台master服务器运行,是时候启动几台slave服务器来完成这项工作。要启动slave服务器,必须使用从master服务器Web界面复制的URL,在Spark安装路径键入以下命令:

    [图片上传失败...(image-ca004b-1511414085008)]

    你应该看到一个非常类似于master的输出。

    在要连接到集群的每台计算机上执行此操作。在本教程中,运行2个slaves。

    之后,如果再次访问master服务器Web界面,在「Workers」中看到几行,均是启动的slave服务器。还有一些有用的信息,如worker的内存、状态、使用的核心和ip。

    [图片上传失败...(image-e5cc5c-1511414085008)]

    也可以点击Spark Web应用程序中的链接,然后转到工作页面和任务页面。由于没有任何运行的应用程序连接到集群,那么无法访问正在运行和已完成的任务页面。

    到目前为止,我们已经有一个运行完整的Spark集群。

    步骤6:连接Jupyter

    充分利用Spark是与Jupyter这样的交互式工具集成的好主意。如果您已经安装并运行Jupyter,请跳过以下几行,我将介绍如何设置本地Jupyter服务器。

    安装Jupyter

    安装Jupyter最简单的方法是使用conda。如果你有Anaconda Python发行版,则计算机中已经安装了conda。如果没有,我强烈建议你试一试Anconda。如果不想安装完整的Anaconda Python(它包含大量库,需要大约350Mb),可以选择Miniconda,一款仅包含Python和conda的轻型版本。

    如果使用命令行,只需使用curl下载安装文件(shell脚本)并执行'./'

    一旦在计算机中安装了conda,我们将创建一个名为「jupyter」的conda虚拟环境,避免造成混乱:

    19

    现在有一个干净的虚拟环境来安装Jupyter。要激活此环境类型:

    20

    在环境激活后,在命令提示符的开始处可以看到(jupyter):

    21

    这意味着环境已被激活,并且以后所做的更改(安装库等)都将在此环境虚拟环境生效。

    要安装Jupyter,请键入以下命令:

    22

    这个命令将安装Jupyter notebook及其所有的依赖项(IPython,Jupyter等),所以你不必担心设置这些东西。

    现在是时候启动Jupyter notebook,并测试安装。键入:

    23

    如果Jupyter正确安装,那么可以在Web浏览器中访问localhost:8888/tree,并查看Jupyter文件目录。

    24

    安装 findspark

    findspark是一个Python库,�可以自动导入和像其他Python库使用PySpark。还有其他选择可以集成(为Spark创建一个jupyter配置文件),但是最新的findspark是更快更简单的一个。

    要安装findspark,请运行以下命令:

    25

    已经在jupyter虚拟环境中安装了findpark。

    创建第一个Spark应用

    要创建一个Spark应用并使用数据制作酷炫的东西,请在Jupyter单元格中运行以下脚本:

    26

    这个脚本只是初始化findspark,所以你可以导入PySpark作为一个库,并用你的master URL和应用名称(个人决定)创建一个Spark Context实例。

    为了测试效果,你可以在Jupyter notebook中显示sc,并且会看到如下输出:

    27

    当运行长期的任务,可以点击链接并转到应用网站ui,这是非常有趣的。

    还应连接到master服务器Web界面(localhost:8080<your_master_ip>:8080),并在Running Applications部分中查看新内容,如下所示:

    28

    要关闭master服务器和slave服务器,请在Spark安装目录下运行以下命令:

    29

    要关闭jupyter虚拟环境,只需运行以下命令:

    30

    就这样!

    更多课程和文章尽在微信号:「datartisan数据工匠」

    image

    相关文章

      网友评论

          本文标题:Jupyter与Spark开发环境配置指南

          本文链接:https://www.haomeiwen.com/subject/pnlzvxtx.html