Spark 安装&配置

安装Anaconda

Anaconda 是Python科学计算包的合集,在接下来的例子中,会用到其中的matplotlib用来生成一张柱状图。
下载地址:https://www.continuum.io/downloads
然后在Terminal中输入命令:

bash Anaconda2-4.1.1-Linux-x86_64.sh

注意,应该使用4.1.1版本的Anaconda,因为其Python版本是3.5,而Spark目前只支持3.5版本的python,不能支持3.6版本的

安装JavaSDK

$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java8-installer

配置JAVA_HOME

在.bashrc中对JAVA_HOME进行配置

vim ~/.bashrc
JAVA_HOME=/usr/lib/jvm/java-8-oracle
export JAVA_HOME
PATH=$PATH:$JAVA_HOME
export PATH

安装Spark

去官网下载压缩包,下载地址 http://spark.apache.org/downloads.html
将安装包解压:

$ tar -zxvf spark-2.0.0-bin-hadoop2.7.tgz
$ rm spark-2.0.0-bin-hadoop2.7.tgz

启用IPython Notebook

vim ~/ .bashrc
export PYSPARK_DRIVER_PYTHON=ipython
export PYSPARK_DRIVER_PYTHON_OPTS=notebook

检查是否安装成功 (需重启Terminal)

cd ~/spark-2.0.0-bin-hadoop2.7
./bin/pyspark

出现下面的即为OK:

eversilver@debian:/usr/local/spark2.1$ ./bin/pyspark 
Python 3.5.2 |Anaconda 4.1.1 (64-bit)| (default, Jul  2 2016, 17:53:06) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/local/spark2.1/jars/slf4j-log4j12-1.7.16.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/local/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
17/05/03 14:50:12 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
17/05/03 14:50:12 WARN Utils: Your hostname, debian resolves to a loopback address: 127.0.1.1; using 192.168.142.133 instead (on interface eth0)
17/05/03 14:50:12 WARN Utils: Set SPARK_LOCAL_IP if you need to bind to another address
17/05/03 14:50:27 WARN ObjectStore: Failed to get database global_temp, returning NoSuchObjectException
Welcome to
      ____              __
     / __/__  ___ _____/ /__
    _\ \/ _ \/ _ `/ __/  '_/
   /__ / .__/\_,_/_/ /_/\_\   version 2.1.0
      /_/

Using Python version 3.5.2 (default, Jul  2 2016 17:53:06)
SparkSession available as 'spark'.
>>> 

使用

  • 每个 Spark 应用都由一个驱动器程序(driver program)来发起集群上的各种并行操作。
  • 驱动器程序通过一个 SparkContext 对象来访问 Spark。这个对象代表对计算集群的一个连接。 shell 启动时已经自动创建了一个 SparkContext 对象,是一个叫作 sc 的变量。有了SparkContent之后就可以用其来创建RDD。
  • 第一个例子:
#!/usr/bin/env python
# coding=utf-8
from pyspark import SparkConf, SparkContext
#下面的第一个参数是集群URL,由于这里运行在本机单线程上,所以用local即可
#下面第二个参数是应用名称,当连接到一个集群时,这个值可以帮助你在集群管理器的用户界面中找到你的应用。
conf = SparkConf().setMaster("local").setAppName("My App")
sc = SparkContext(conf= conf) #python中打开获取SparkContent来创建RDD
nums = sc.parallelize([1,2,3,4])
squared = nums.map(lambda x : x * x).collect()
for num in squared:
    print "%i"%(num)
  • 上面执行完成后可以使用./bin/spark-submit useMap.py来执行程序

你可能感兴趣的:(Spark 安装&配置)