Python Spark的介绍与安装

  • Python Spark的介绍与安装
    • 1. Spark的Cluster模式架构图
    • 2. Cluster Manager的运行模式
      • (1) 本地运行(Local Machine)
      • (2) Spark Standalone Cluster
      • (3) Hadoop YARN(Yet Another Resource Megotiator)
      • (4)在云端运行
    • 3. Scala的介绍与安装
      • (1)下载
      • (2)安装
      • (3)配置环境变量
    • 4. 安装Spark
      • (1)下载Spark
      • (2)安装Spark
      • (3)配置环境变量
    • 5. 设置pyspark显示信息
    • 6. 启动pyspark交互式界面
    • 7. 本地运行pyspark程序
      • (1)尽量使用CPU核心以多线程运行Spark
      • (2)查看当前的运行模式
      • (3)读取本地的文件
      • (4)读取HDFS文件
    • 8. 安装Anaconda
      • (1)下载Anaconda
      • (2)安装Anaconda
      • (3)设置环境变量
    • 9. 在Local启动IPython Notebook

Python Spark的介绍与安装

1. Spark的Cluster模式架构图

Spark官网http://spark.apache.org/docs/latest/cluster-overview.html提供了Spark的Cluster模式图
Python Spark的介绍与安装_第1张图片

  • Driver Program 就是程序员所设计的Spark程序。
  • SparkContext 在Spark程序中必须定义SparkContext,它是开发Spark应用程序的入口。
  • ClusterManager SparkContext通过Cluster Manager管理整个集群,集群中包含多个Worker Node,在每个Worker Node中都有Executor负责执行任务。
    这种架构的好处是:所设计的Spark程序可以在不同的Cluster模式下运行

2. Cluster Manager的运行模式

(1) 本地运行(Local Machine)

只需要在程序中import Spark的链接库就可以实现。在本地运行时,对于只安装在一台计算机上时最方便,适合刚入门时学习、测试使用。

(2) Spark Standalone Cluster

Spark提供的Cluster管理模式,若没有架设Hadoop Multi Node Cluster,则可架设Spark Standalone Cluster,实现多台计算机并行计算。

(3) Hadoop YARN(Yet Another Resource Megotiator)

Hadoop2.x新架构中更高效率的资源管理核心。Spark可以在YARN上运行,让YARN帮助它进行多台机器的资源管理。

(4)在云端运行

针对更大型规模的计算工作,本地机器或自建集群的计算能力恐怕难以满足。此时可以将Spark程序在云平台上运行,例如AWS的EC2平台。

3. Scala的介绍与安装

(1)下载

Spark支持Scala、Java和Python等语言,不过Spark本身是用Scala语言开发的,所以必须要先安装Scala。因为Spark2.0必须配合Scala2.11版本,所以选择2.11.6版本 https://www.scala-lang.org/files/archive/

Scala具有以下特点

  • Scala可编译为Java Bytecode字节码,也就是说它可以在JVM(Java Virtual Machine)上运行,具备跨平台能力。
  • 现有Java的链接库都可以使用
  • Scala是一种函数式语言
  • Scala是一种纯面向对象的语言

(2)安装

cd /usr/local
sudo cp ~/下载/scala-2.11.6.tgz ./
sudo tar -xvzf scala-2.11.6.tgz
sudo ln -s scala-2.11.6 scala

(3)配置环境变量

编辑 ~/.bashrc,添加

# SCALA Variables
export SCALA_HOME=/usr/local/scala
export PATH=$PATH:$SCALA_HOME/bin

使环境变量生效

source ~/.bashrc 

4. 安装Spark

(1)下载Spark

http://spark.apache.org/downloads.html
Python Spark的介绍与安装_第2张图片

(2)安装Spark

Spark与Hadoop版本必须相互配合因为Spark会读取HadoopHDFS并且必须能在HadoopYARN执行程序,所以必须按照目前安装的Hadoop版本来选择Spark版本。因为之前安装的是Hadoop2.6.4,所以这里选择Pre-build for Apache Hadoop 2.6

cd /usr/local
sudo tar -xvzf spark-2.0.2-bin-hadoop2.6.tgz
sudo mv ~/下载/spark-2.0.2-bin-hadoop2.6.tgz ./
sudo ln -s spark-2.0.2-bin-hadoop2.6 spark

(3)配置环境变量

编辑 ~/.bashrc

# SPARK Variables
export SPARK_HOME=/usr/local/spark
export PATH=$PATH:$SPARK_HOME/bin

使环境变量生效

source ~/.bashrc

5. 设置pyspark显示信息

复制模板

sudo cp /usr/local/spark/conf/log4j.properties.template /usr/local/spark/conf/log4j.properties

编辑 /usr/local/spark/conf/log4j.properties,把log4j.rootCategory值改成“WARN”

# Set everything to be logged to the console
log4j.rootCategory=WARN, console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.target=System.err
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n

6. 启动pyspark交互式界面

pyspark

Python Spark的介绍与安装_第3张图片

7. 本地运行pyspark程序

(1)尽量使用CPU核心以多线程运行Spark

pyspark --master local[*]

(2)查看当前的运行模式

>>> sc.master

(3)读取本地的文件

>>> textFile = sc.textFile("file:/usr/local/spark/README.md")
>>> textFile.cout()

(4)读取HDFS文件

>>> textFile = sc.textFile("hdfs://master:9000/user/

8. 安装Anaconda

(1)下载Anaconda

安装与Spark2.0兼容的版本 Anaconda2-2.5.0-Linux-x86_64.sh https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/

(2)安装Anaconda

 bash Anaconda2-2.5.0-Linux-x86_64.sh -b

(3)设置环境变量

# Anaconda Variables
export PATH=/home/yf/anaconda2/bin:$PATH
export ANACONDA_PATH=/home/yf/anaconda2
export PYSPARK_DRIVER_PYTHON=$ANACONDA_PATH/bin/ipython
export PYSPARK_PYTHON=$ANACONDA_PATH/bin/python

使环境变量生效

source ~/.bashrc

9. 在Local启动IPython Notebook

mkdir -p pythonwork/ipynotebook
cd pythonwork/ipynotebook/
PYSPARK_DRIVER_PYTHON=ipython PYSPARK_DRIVER_PYTHON_OPTS="notebook" pyspark --master local[*]

本文根据林大贵《Python+Spark2.0+Hadoop机器学习与大数据实战》第8章、第9章实现

你可能感兴趣的:(数据库)