第一步:解压到usr/local目录下
命令:tar -zxvf spark-2.3.0-bin-hadoop2.7.tgz
第二步:将它移动并改名为spark
命令:mv ./spark-2.3.0-bin-hadoop2.7 ./spark
第三步:将指定文件的拥有者改为指定的用户或是组
命令:chown -R root:root ./spark
第四步:修改spask的配置文件
命令:cd spark
命令:cd conf
命令: cp spark-env.sh.template ./spark-env.sh
命令:vim 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是否安装成功。
命令: cd /usr/local
命令: ./bin/run-example SparkPi
执行时会输出非常多的运行信息,输出结果不容易找到,可以通过 grep 命令进行过滤(命令中的 2>&1 可以将所有的信息都输出到 stdout 中,否则由于输出日志的性质,还是会输出到屏幕中
命令:cd /usr/local/spark
命令:./bin/run-example SparkPi 2>&1 | grep "Pi is"
这里涉及到Linux Shell中管道的知识,详情可以参考Linux Shell中的管道命令
过滤后的运行结果可以得到π 的 5 位小数近似值,效果如下
启动进入spark-shell交互执行环境:
命令:cd /usr/local
命令:./bin/spark-shell
进行交互环境测试这里可以输入scala代码进行测试:
输入6+6
测试spark是否可以正常的访问本地文件系统:
首先我们进入当前的用户目录我当前的用户是root
命令:cd /root
使用vi编辑器新建一个word.txt文本然后在文本中输入几行英文子
然后新建一个终端在新的终端里面启动spark-shell交互环境
启动以后就进入了“scala>”命令提示符状态,下面可以在Scala交互式环境中执行如下命令测试是否可以正常访问word.txt:
命令: val line=sc.textFile("file:///root/word.txt")
命令:println(line.count())
执行的结果如下:
如果执行结果如上所示则spark可以访问本地文件系统
测试spark是否能访问hadoop的hdfs分布式文件系统
在测试前首先需要启动hdfs命令:start-all.sh
使用jps查看java相关进程
下面开始在命令行终端中使用HDFS Shell操作命令,对HDFS进行相关操作,如果不熟悉HDFS Shell命令就参考该博客https://blog.csdn.net/qq_45973003/article/details/106481768
在hadoop的bin目录中创建用户对应的目录
命令: cd /usr/local/hadoop-2.7.1/bin
命令:hadoop fs -mkdir -p /user/root
命令:查看是否成功创建 hadoop fs -cat /user/root
也可以使用50070的网站进行查看访问http://你的ip:50070
然后将上面已经建好的本地文件上传到hdfs中
命令:hadoop fs -put /home/root/word.txt /user/root
**然后进行查看
命令:hadoop fs -cat /user/root/word.txt
此时屏幕上就会显示各行的单词
然后在spark交互环境进行测试
命令:cd /usr/local/spark/bin
命令: spark-shell
测试的第一种方式:
命令: val line=sc.textFile(“/user/root/word.txt”)//括号里面的是你的hdfs中的word.txt文本文件的所在路径。
命令:println(line.count())
第二种测试方式:
命令:cd /usr/local/spark/bin
命令:spark-shell
命令:val line=sc.textFile(“word.txt”)
命令:println(line.count())
有上可以知道在spark-shell的交互环境中我们可以使用该两种的路径格式来访问hdfs中的文件,但是这两种路径格式在idea中又会报错所以我们要会使用idea工具调试spark应用程序。
Idea工具调试spark
退出spark-shell的shell界面使用
命令:quit