Anaconda 是Python科学计算包的合集,在接下来的例子中,会用到其中的matplotlib用来生成一张柱状图。
下载地址:https://www.continuum.io/downloads
然后在Terminal中输入命令:
注意,应该使用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 $ 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 #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相关教程见以下内容:
CentOS 7.0下安装并配置Spark
Ubuntu系统搭建单机Spark注意事项
CentOS 6.2(64位)下安装Spark0.8.0详细记录