Ubuntu下安装PySpark

本文详细介绍如何在Python环境中安装并配置Pyspark,包括所需环境的要求、具体步骤及测试方法,最后还介绍了如何配置Ipython-notebook以便使用Spark。

最近参加一个大数据比赛,发现处理这些数据如果使用普通的代码需要非常长的时间。同时最近也学校也开了相关课程提到如何在Python下使用Spark,所以安装PySpark,这里记录下,方便他人和自己的使用。
安装环境:
Java6+
python2.6+ or python3.4+
(需要Java和python添加到相关PATH中)

  • 安装Spark

    • 下载
      Spark官网下载地址
      这里可以选择相应的配置。我选择的是(spark2.0.2和hadoop2.7)
    • 解压压缩包
    tar -xzf spark-2.0.2-bin-hadoop2.7.tgz

    解压压缩包,获得spark相应位置

  • 移动spark位置

    mv spark-2.0.2-bin-hadoop2.7 /srv/spark-2.0.2

    在这里可以将spark文件移动到任意一个位置。我这里移动到/srv下
  • 建立软链接

    ln -s /srv/spark-2.0.2 /srv/spark

    创建指向该Spark版本的符号链接到spark目录。这样你可以简单地下载新/旧版本的Spark,然后修改链接来管理Spark版本,而不用更改路径或环境变量。

    • 修改配置文件,添加到Path中
      修改BASH配置,将Spark添加到PATH中,设置SPARK_HOME环境变量。编辑~/.bash_profile或~/.profile文件,将以下语句添加到文件中
      export SPARK_HOME=/srv/spark
      export PATH=$SPARK_HOME/bin:$PATH

    PS:‘=’两边不能有空格

    • 测试运行安装情况
      source这些配置(或者重启终端),你就可以在本地运行一个pyspark解释器。
source .profile
pyspark

结果如下:
这里写图片描述
到这里已经顺利安装好Pyspark了。接下来要配置Ipython-notebook的运行环境。

  • 配置Ipython-notebook,使用spark
    • 为Spark创建一个iPython notebook配置
ipython profile create spark
  • 创建文件$HOME/.ipython/profile_spark/startup/00-pyspark-setup.py,并添加如下代码:
import os
import sys

 # Configure the environment
 if 'SPARK_HOME' not in os.environ:
     os.environ['SPARK_HOME'] = '/srv/spark'

 # Create a variable for our root path
 SPARK_HOME = os.environ['SPARK_HOME']

 # Add the PySpark/py4j to the Python Path
 sys.path.insert(0, os.path.join(SPARK_HOME, "python", "build"))
 sys.path.insert(0, os.path.join(SPARK_HOME, "python"))
  • 使用我们刚刚创建的配置来启动IPython notebook。
ipython notebook --profile spark
  • 在IPython notebook最上面,确保你添加了Spark context。
from pyspark import  SparkContext
sc = SparkContext( 'local', 'pyspark')
'''这里可能会报
ImportError: No module named py4j.java_gateway
ImportError: cannot import name accumulators
#解决方法:pip install py4j
'''
  • 测试
def isprime(n):
    """
    check if integer n is a prime
    """
    # make sure n is a positive integer
    n = abs(int(n))
    # 0 and 1 are not primes
    if n < 2:
        return False
    # 2 is the only even prime number
    if n == 2:
        return True
    # all other even numbers are not primes
    if not n & 1:
        return False
    # range starts with 3 and only needs to go up the square root of n
    # for all odd numbers
    for x in range(3, int(n**0.5)+1, 2):
        if n % x == 0:
            return False
    return True

# Create an RDD of numbers from 0 to 1,000,000
nums = sc.parallelize(xrange(1000000))

# Compute the number of primes in the RDD
print nums.filter(isprime).count()

运行完这段代码。如果出现数字并没有报错,那么说明已经安装成功了~~!

Ubuntu系统下安装PySpark,不同的Ubuntu版本所需的软件和安装步骤略有不同,以下是一些常见Ubuntu版本的安装方法: ### Ubuntu 16.04安装PySpark 2.4.0版本 先满足在单台机器上安装的要求,不过文档未提及具体要求内容。 ### Ubuntu 14.04安装PySpark 需要安装VMware、Ubuntu 14.04(64位)、Java环境(JDK 1.8)、Hadoop 2.7.1、Spark 2.4.0(Local模式)、Pycharm等,但文档未给出具体安装步骤 [^2]。 ### Ubuntu 20.04安装PySpark 所需软件为 Java 8 +,Python 3.5 +,Scala 2.11.12+。 1. **安装Java 8** ```bash sudo apt-get update sudo apt-get install openjdk-8-jdk java -version ``` 2. **安装Scala** ```bash sudo wget https://downloads.lightbend.com/scala/2.12.8/scala-2.12.8.deb sudo dpkg -i scala-2.12.8.deb scala -version ``` 3. **安装pip** ```bash sudo apt-get install pip ``` 4. **安装py4j** ```bash sudo pip install py4j ``` 5. **安装Python3.6** 默认情况下,Ubuntu20.04附带了Python2.7和Python3.5,如果没有附带或者想要安装最新python3.6,可以使用"deadsnakes"团队PPA,它为Ubuntu打包了最新Python版本。 ```bash sudo add-apt-repository ppa:deadsnakes/ppa sudo apt update sudo apt install python3.6 ``` 6. **安装Spark** ```bash sudo wget https://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-2.4.8/spark-2.4.8-bin-hadoop2.7.tgz tar -zxvf spark-2.4.8-bin-hadoop2.7.tgz ``` 7. **编辑系统变量** ```bash vim ~/.bashrc ``` SPARK_HOME路径视自己安装路径决定。 ```bash export SPARK_HOME=/opt/module/spark-2.4.8-bin-hadoop2.7 export PATH=${SPARK_HOME}/bin:$PATH ``` ```bash source ~/.bashrc ``` 8. **启动pyspark** ```bash pyspark ``` 此外,Ubuntu16.04安装完成以后自带的python版本是2.7和3.5,系统默认使用的是2.7版本。若需要python3.5以上的版本,需要进行python版本的切换,否则在pycharm中安装第三方库pyspark时可能失败 [^3]。
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值