Ubuntu16.04 Spark2.7.7伪分布式从零开始部署

本文详细记录了在Ubuntu16.04上从零开始部署Spark2.7.7的Local版和Standalone伪分布式版的过程,包括Python3.5+Jupyter Notebook、Jdk8、Scala2.11的安装,以及Hadoop伪分布式的配置。此外,还介绍了可能遇到的异常情况及处理方法。
摘要由CSDN通过智能技术生成

因工作上的需要,尝试在一台Ubuntu16.04部署Spark,因为之前没有了解过Spark,故踩坑时部署了Local版和Standalone单机伪分布式版,现记录如下。

因为在部署Spark之前并未明确出Spark是什么,踩了相应的坑,故在此一并说明:Spark的目标是做一个分布式计算框架,因为是分布式所以它需要通讯(故需要安装SSH),有因为只是一个计算框架,所以其分布式数据来源需要由Hadoop的HDFS提供(故需要安装Hadoop),缺少SSH和HDFS,哪怕跑通,也是Local版

1. Spark部署简介

网上有很多资料说Spark有n(n不定)种搭建方式,但是本质上只有2大类,一种是单机部署,一种是集群部署,说明如下:

  1. 单机部署:即Local模式,仅在一台机器上部署,没有安装Hadoop,通过多线程来处理数据;
  2. 集群部署
    1. 含网上说的Standalone,Mesos,YARN三种分布式模式,实际上是用不同的分布式资源管理框架来管理集群内的机器;
    2. 在>=1台机器上部署,需要安装Hadoop,如果有多台机器时,数据在多台机器上处理,如果仅有一台机器,数据使用多进程来模拟多台机器进行处理:
    3. 为什么要安装Hadoop,因为Spark只是一个计算框架,它需要依赖于Hadoop的HDFS来为其分布式提供原始数据(注:HDFS分布式提供原始数据,Spark在执行任务时,可以通过shuffle来为自己分布式提供中间数据);

接下来根据我部署过的Local版和Standalone单机伪分布式版进行说明

2. Spark部署说明

  1. Spark依赖于Java和Scala,所以不管安装什么版本都要提前安装好这两个;

  2. 因为我是在Python环境下进行编程,所以还需要安装Python,又因为安装Spark的机器是服务器,所以只能远程编程,故需要安装Jupyter Notebook;

  3. 对于Local模式,直接安装Spark即可,故其所需安装配置如下:

    1. Ubuntu 16.04;
    2. Python3.5 + Jupyter Notebook;
    3. Jdk8(java8开发环境);
    4. Scala 2.11;
    5. Spark2.4.6(Pre-built for Apache Hadoop2.7);
  4. 对于standalone单机伪分布式版,还需要多安装hadoop,故其所需安装配置如下:

    1. Ubuntu 16.04;
    2. Jdk8(java8开发环境);
    3. Scala 2.11;
    4. Hadoop 2.7.7;
    5. Spark2.4.6(Pre-built for Apache Hadoop2.7);
  5. 注意:

    1. Hadoop版本应该跟Spark的预编译Hadoop版本一致;
    2. 我的所有安装都是在个人账户下安装,没有用root账号;

3. 共用软件的安装

不管是Local,还是Standalone单机伪分布式都必须安装Python3.5 + Jupyter Notebook,Jdk8,Scala 2.11,故优先说明这三款软件的安装方法。

  1. Python3.5 + Jupyter Notebook;
  2. Jdk8(java8开发环境);
  3. Scala 2.11;

软件的安装都是基于个人账号,没有使用root账号;

3.1. Python3.5 + Jupyter Notebook

因为服务器之前已经安装过Python3.5,故在此省略其安装的说明,直接说明Jupyter Notebook。

如果不需要Jupyter Notebook则可跳过

  • 以下内容简介:
    1. Jupyter Notebook的2种安装方式;
    2. 在服务器为Python安装Jupyter Notebook的具体操作;
    3. 远程登录Jupyter Notebook的具体操作;
    4. Python调用Spark的方法;
    5. 可能存在的异常情况的处理方式;

3.1.1. Jupyter Notebook的安装种类

  1. 安装Anaconda,使用Anaconda自带的Jupyter Notebook;
  2. 安装Python,然后为该Python虚拟环境安装Jupyter Notebook(本次采用此种方法);

3.1.2. Python安装Jupyter Notebook的方法

以下均在命令行环境进行

  1. 激活Python3.5虚拟环境,然后运行pip3 install jupyter notebook为该虚拟环境安装Jupyter Notebook;
  2. 输入jupyter notebook --generate-config生成jupyter的配置文件;
  3. 输入ipython进入Ipython模式;
  4. 在Ipython模式下,输入from notebook.auth import passwd; passwd()进入密码配置环节;
  5. 在Ipython模式下,按照要求输入原始密码,Ipython会返回如argon2:$argon2id$v=19$m=10240,t=10,p=xxxx的密文;
  6. 打开/home/usr/.jupyter/jupyter_notebook_config.py,在其最开始增加以下5行:
c.NotebookApp.ip='*' # 意思是任意IP都可以访问
c.NotebookApp.password = u'此处填写前面原始密码对应的整条密文'
c.NotebookApp.open_browser = False  # 意思是默认不打开浏览器,如果该服务器没有对应显示器,此处必须修改,否则一运行即会因为没有显示器用于打开浏览器导致出错
c.NotebookApp.port =8888 # 随便指定一个你想要的端口,后面可以从这个端口使用
c.NotebookApp.allow_remote_access = True # 允许远程访问
  1. 完成以上配置后,回到命令行,在处于激活Python3.5虚拟环境的前提下
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值