大数据分析之阿里云安装Spark

在我们已经安装好Hadoop的阿里云上,进行如下操作

下载

下载链接
使用wget在linux上进行下载即可

解压

1
sudo tar -zxvf spark-3.0.1-bin-hadoop2.7.tgz -C /usr/local

改名+修改文件权限

因为我在搭建hadoop的时候,在root用户上新创建了一个新的用户,因此,要把权限给hadoop用户

1
2
sudo mv ./spark-3.0.1-bin-hadoop2.7 ./spark
sudo chown -R hadoop ./spark

更改为可执行文件

1
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数据。
配置完成后就可以直接使用,不需要像Hadoop运行启动命令。
通过运行Spark自带的示例,验证Spark是否安装成功。

启动进入spark-shell交互式执行环境

1
2
cd /usr/local/spark
./bin/spark-shell

我们就可以看到Spark的信息,这样spark就安装成功了
如果想要退出spark的话,执行

1
scala> :quit

测试Spark是否可以正常访问Ubuntu系统中的本地文件

在本地创建一个文本文件,里面输入hello word

开启spark ,写入测试文件

1
2
3
4
5
cala> val line=sc.textFile("file:///home/hadoop/a.txt")
line: org.apache.spark.rdd.RDD[String] = file:///home/hadoop/a.txt MapPartitionsRDD[1] at textFile at <console>:24

scala> print(line.count())
1

测试Spark是否能够正常访问Hadoop中的HDFS

首先执行一下jps检查一下,hadoop是否已经正常启动。
接下来,我们将在HDFS中已经准备好的测试文件,来查看一下主要的文件信息
,这里假设大家都已经掌握了Hadoop的基本知识。 这是在我的主文件下。

1
./bin/hdfs dfs -cat /user/hadoop/text.txt

我们再来执行一下
val line=sc.textFile(“/user/hadoop/text.txt”)
println(line.count())
来检查一下。
注意:在spark-shell交互式环境中,要访问HDFS中的文件时,可以直接使 sc.textFile(“/user/linziyu/word.txt”)和sc.textFile(“word.txt”)这两种路径格式
这样我们的Spark就搭建完了。