一、什么是Spark
Spark是Hadoop的一个为大规模数据的计算引擎,内存计算速度比MapReduce效率更高,可用它来完成各种各样的运算,包括 SQL 查询、文本处理、机器学习等。
二、下载Spark
下载地址:https://spark.apache.org/downloads.html
因为我本地的Hadoop是2.9的版本,因此选择了适合2.X版本的Hadoop的Spark
spark-3.0.3-bin-hadoop2.7.tgz
三、安装Spark
#复制spark安装文件到docker容器中
docker cp Downloads/spark-3.0.3-bin-hadoop2.7.tgz master:/usr/local
#进入docker
docker exec -it master bash
#解压
cd /usr/local/
tar -xvzf spark-3.0.3-bin-hadoop2.7.tgz
#进入Spark目录并修改配置spark-env.sh
cd /usr/local/spark-3.0.3-bin-hadoop2.7/conf/
cp spark-env.sh.template spark-env.sh
vi spark-env.sh
#在最后增加hadoop配置增加
export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoop classpath)
#增加log4j日志配置
cp log4j.properties.template log4j.properties
#配置环境变量.bash_profile
vi ~/.bash_profile
#增加SPAKR配置,并把SPARK_HOME增加到PATH最后
export SPARK_HOME=/usr/local/spark-3.0.3-bin-hadoop2.7
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HBASE_HOME/bin:$SPARK_HOME/bin
#配置环境变量.bashrc
vi ~/.bashrc
#增加SPAKR配置,并把SPARK_HOME增加到PATH最后
export SPARK_HOME=/usr/local/spark-3.0.3-bin-hadoop2.7
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HBASE_HOME/bin:$SPARK_HOME/bin
#生效环境变量
source ~/.bashrc
source ~/.bash_profile
#执行命令进入spark
spark-shell
#输出以下内容
Welcome to
____ __
/ __/__ ___ _____/ /__
_\ \/ _ \/ _ `/ __/ '_/
/___/ .__/\_,_/_/ /_/\_\ version 3.0.3
/_/
Using Scala version 2.12.10 (OpenJDK 64-Bit Server VM, Java 1.8.0_121)
Type in expressions to have them evaluated.
Type :help for more information.
scala>
#到此表示启动成功,完事大吉
四、Spark Hello World统计字符个数
#编辑文件/usr/local/testFile.txt
vi /usr/local/testFile.txt
#文件内容
Hello world
tes tFile
123 dd
ddd dd
3434s dfdsf df
242343 43252
sdfs df
#重新进入Spark
spark-shell
#找到并读取本地文件/usr/local/testFile.txt
scala> val textFile = sc.textFile("file:///usr/local/testFile.txt")
textFile: org.apache.spark.rdd.RDD[String] = file:///usr/local/testFile.txt MapPartitionsRDD[38] at textFile at <console>:24
#读取文件并通过空格将所有字段分割
scala> val fileData = textFile.flatMap(line=>line.split(" "))
fileData: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[39] at flatMap at <console>:25
#统计文件中的各个字符数字,很清楚的展示了每个字符串出现了几次
scala> fileData.countByValue
res15: scala.collection.Map[String,Long] = Map(sdfs -> 1, 3434s -> 1, world -> 1, ddd -> 1, tFile -> 1, 123 -> 1, 43252 -> 1, dfdsf -> 1, Hello -> 1, df -> 2, tes -> 1, 242343 -> 1, dd -> 2)
前面写的都是Spark安装以及一个入门的helloworld的入门小脚本,咱们后边再写一写更加复杂的Spark相关知识。
谢各位的阅读,谢谢您动动手指点赞,万分感谢各位。另外以下是我之前写过的文章,感兴趣的可以点进去继续阅读。
历史文章
Hadoop系列-入门安装
Hadoop系列-HDFS命令
Hadoop系列-Hive安装
Hadoop系列-Hive数据库常见SQL命令
Hadoop系列-HBase数据库
Hadoop系列-HBase数据库(二)
Hadoop系列-HBase数据库JAVA篇
Hadoop系列-Spark安装以及HelloWorld
Hadoop系列-MapReduce小例子
Hadoop系列-Spark小例子
JAVA面试汇总(五)数据库(一)
JAVA面试汇总(五)数据库(二)
JAVA面试汇总(五)数据库(三)
JAVA面试汇总(四)JVM(一)
JAVA面试汇总(四)JVM(二)
JAVA面试汇总(四)JVM(三)
JAVA面试汇总(三)集合(一)
JAVA面试汇总(三)集合(二)
JAVA面试汇总(三)集合(三)
JAVA面试汇总(三)集合(四)
JAVA面试汇总(二)多线程(一)
JAVA面试汇总(二)多线程(二)
JAVA面试汇总(二)多线程(三)
JAVA面试汇总(二)多线程(四)
JAVA面试汇总(二)多线程(五)
JAVA面试汇总(二)多线程(六)
JAVA面试汇总(二)多线程(七)
JAVA面试汇总(一)Java基础知识