spark指定python版本_1.Spark学习(Python版本):Spark安装

Step1: 更新apt

sudo apt-get update

Step2: 安装SSH、配置SSH无密码登陆

sudo apt-get install openssh-server

ssh localhost

这样登陆是需要每次输入密码的,我们需要配置成SSH无密码登陆比较方便。

exit # 退出刚才的 ssh localhost

cd ~/.ssh/ # 若没有该目录

ssh-keygen -t rsa # 会有提示,都按回车就可以

cat ./id_rsa.pub >> ./authorized_keys # 加入授权

此时再用 ssh localhost 命令,无需输入密码就可以直接登陆了

Step3: 安装Java环境

sudo apt-get install default-jre default-jdk

安装结束以后,需要配置JAVA_HOME环境变量:

vim ~/.bashrc

在文件最前面添加如下单独一行(注意,等号“=”前后不能有空格),然后保存退出(Esc退出编辑模式, i进入编辑模式):

export JAVA_HOME=/usr/lib/jvm/default-java

source ~/.bashrc # 使变量设置生效

执行上述命令后,可以检验一下是否设置正确:

echo $JAVA_HOME # 检验变量值

java -version

$JAVA_HOME/bin/java -version # 与直接执行java -version一样

QbYVni.png

Step4:下载hadoop安装包到主文件夹

Step5.1:安装hadoop(单机模式)

将 Hadoop 安装至 /usr/local/ 中:

sudo tar -zxf ~/hadoop-2.7.6.tar.gz -C /usr/local # 解压到/usr/local中

cd /usr/local/

sudo mv ./hadoop-2.6.0/ ./hadoop # 将文件夹名改为hadoop

sudo chown -R mashu ./hadoop # 修改文件权限

Hadoop 解压后即可使用。输入如下命令来检查 Hadoop 是否可用,成功则会显示 Hadoop 版本信息:

cd /usr/local/hadoop

./bin/hadoop version

F3iQze.png

Hadoop 默认模式为非分布式模式(本地模式),无需进行其他配置即可运行。

Step5.2:安装hadoop(伪分布式)

Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,伪分布式需要修改2个配置文件 core-site.xml 和 hdfs-site.xml 。

ZZfy6r.png

修改配置文件 core-site.xml ,将:

修改为:

hadoop.tmp.dir

file:/usr/local/hadoop/tmp

Abase for other temporary directories.

fs.defaultFS

hdfs://localhost:9000

同样的,修改配置文件 hdfs-site.xml:

dfs.replication

1

dfs.namenode.name.dir

file:/usr/local/hadoop/tmp/dfs/name

dfs.datanode.data.dir

file:/usr/local/hadoop/tmp/dfs/data

配置完成后,执行 NameNode 的格式化:

./bin/hdfs namenode -format

成功的话,会看到 “successfully formatted” 和 “Exitting with status 0” 的提示,若为 “Exitting with status 1” 则是出错。

接着开启 NameNode 和 DataNode 守护进程。

./sbin/start-dfs.sh

启动完成后,可以通过命令 jps 来判断是否成功启动,若成功启动则会列出如下进程: “NameNode”、”DataNode” 和 “SecondaryNameNode”

Ef6N73.png

若要关闭 Hadoop,则运行

./sbin/stop-dfs.sh

下次启动 hadoop 时,无需进行 NameNode 的初始化,只需要运行 ./sbin/start-dfs.sh 就可以!

Step6:下载Spark安装包

在http://spark.apache.org/downloads.html下载安装包。

由于我们已经自己安装了Hadoop,所以在“Choose a package type”后面需要选择“Pre-build with user-provided Hadoop [can use with most Hadoop distributions]”,然后,点击“Download Spark”后面的“spark-2.1.0-bin-without-hadoop.tgz”下载,这样,下载到的Spark,可应用到任意Hadoop 版本。

Step7:安装Spark(单机模式)

Spark部署模式主要有四种,这里介绍Local模式(单机模式)的 Spark安装。

sudo tar -zxf ~/spark-2.1.0-bin-without-hadoop.tgz -C /usr/local/

cd /usr/local

sudo mv ./spark-2.3.0-bin-without-hadoop/ ./spark

sudo chown -R mashu:mashu./spark #mashu是我的用户名

安装后,还需要修改Spark的配置文件spark-env.sh:

cd /usr/local/spark

cp ./conf/spark-env.sh.template ./conf/spark-env.sh

编辑spark-env.sh文件,在第一行添加配置信息:

vim ./conf/spark-env.sh

export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoop classpath)

有了上面的配置信息以后,Spark就可以把数据存储到Hadoop分布式文件系统HDFS中,也可以从HDFS中读取数据。如果没有配置上面信息,Spark就只能读写本地数据,无法读写HDFS数据。

通过运行Spark自带的示例,验证Spark是否安装成功。

cd /usr/local/spark

bin/run-example SparkPi

bin/run-example SparkPi 2>&1 | grep "Pi is" #通过 grep 命令进行过滤掉运行信息

y2uURf.png

FNjeQ3.png

Step8:修改环境变量

vim ~/.bashrc

在.bashrc文件中添加如下内容:

export JAVA_HOME=/usr/lib/jvm/default-java

export HADOOP_HOME=/usr/local/hadoop

export SPARK_HOME=/usr/local/spark

export PYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/lib/py4j-0.10.6-src.zip:$PYTHONPATH

export PYSPARK_PYTHON=python3

export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PATH

PYTHONPATH环境变量主要是为了在Python3中引入pyspark库。

PYSPARK_PYTHON变量主要是设置pyspark运行的python版本。

.bashrc中必须包含JAVA_HOME,HADOOP_HOME,SPARK_HOME,PYTHONPATH,PYSPARK_PYTHON,PATH这些环境变量。如果已经设置了这些变量则不需要重新添加设置。

接着还需要让该环境变量生效,执行如下代码:

source ~/.bashrc

前面已经安装了Hadoop和Spark,如果Spark不使用HDFS和YARN,那么就不用启动Hadoop也可以正常使用Spark。

如果按照上面的安装步骤,已经设置了PYSPARK_PYTHON环境变量,那么你直接使用如下命令启动pyspark即可。

b2yAby.png

Step9:退出pyspark

exit()或者ctrl+D

Step10:Spark独立应用程序编程

新建一个test.py文件,并在test.py添加代码:

cd ~

vim test.py

在test.py中输入以下代码:

from pyspark import SparkContext

sc = SparkContext( 'local', 'test')

logFile = "file:///usr/local/spark/README.md"

logData = sc.textFile(logFile, 2).cache()

numAs = logData.filter(lambda line: 'a' in line).count()

numBs = logData.filter(lambda line: 'b' in line).count()

print('Lines with a: %s, Lines with b: %s' % (numAs, numBs))

保存代码后,通过如下命令执行(我自己的电脑已经删除了python2, 只留下python 3.5.2):

python ~/test.py

baeINb.png

自此,就完成了第一个 Spark 应用程序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值