Spark大数据处理框架入门(单机版)
导读
- 引言
- 环境准备
- 安装步骤
- 1.下载地址
- 2.开始下载
- 3.解压spark
- 4.配置环境变量
- 5.配置 spark-env.sh
- 6.启动spark服务
- 7.测试spark
感谢您的阅读,预计阅读时长3min。 智客工坊出品必属精品。
引言
2012年,UC Berkelye 的ANPLab研发并开源了新的大数据处理框架Spark。其核心思想包括两方面:一方面对大数据处理框架的输入/输出、中间数据进行建模,将这些数据抽象为统一的数据结构,命名为弹性分布式数据集(Resilent Distributed Dataset,RDD),并在此数据结构上构建了一系列通用的数据操作,使得用户可以简单地实现复杂的数据处理流程;另一方面采用基于内存的数据聚合、数据缓存等机制来加速应用执行,尤其适用于迭代和交互式应用。Spark采用EPFL大学研发的函数式编程语言Scala实现,并且提供了Scala、Java、Python、R四种语言的接口,以方便开发者适用熟悉的语言进行大数据应用开发。
话不多说,现在就开始我们的Spark之旅吧!
一 环境准备:
服务器 | 配置 | 单机 | 文件目录 |
---|---|---|---|
Centos7 | 4核,14G | master | /opt/spark/spark-3.1.1-bin-hadoop2.7/ |
- Spark 3.1.1
- Hadoop 3.2
- Scala 1.11
- Java OpenJdk 1.8.0_292
二 安装步骤
1.下载地址
http://spark.apache.org/downloads.html
如下图所示:选择3.1.1版本的spark,并选择对应的Hadoop 版本
![](https://img.zhikestreet.com/1621522910460.png?imageView2/0/q/75|watermark/2/text/NTJJbnRlcnZpZXc=/font/5a6L5L2T/fontsize/240/fill/IzBFMDkwNQ==/dissolve/100/gravity/SouthEast/dx/10/dy/10)
2.开始下载
wget https://www.apache.org/dyn/closer.lua/spark/spark-3.1.1/spark-3.1.1-bin-hadoop2.7.tgz
Notes: centos下,先进入某个目录,比如/opt/spark目录,然后执行下载
![](https://img.zhikestreet.com/202105202305.png?imageView2/0/q/75|watermark/2/text/NTJJbnRlcnZpZXc=/font/5a6L5L2T/fontsize/240/fill/IzBFMDkwNQ==/dissolve/100/gravity/SouthEast/dx/10/dy/10)
3.解压spark
这里解压到/opt/spark/
sudo tar zxvf spark-3.1.1-bin-hadoop2.7.tgz
4.配置环境变量
# vim /etc/profile
新增内容:
#spark environment
export SPARK_HOME=/opt/spark/spark-3.1.1-bin-hadoop2.7
export PATH=${SPARK_HOME}/bin:$PATH
退出并保存;刷新资源使配置生效。
# source /etc/profile
5.配置 spark-env.sh
进入 conf目录
# cd conf
重命名
# mv spark-env.sh.template spark-env.sh
修改spark-env.sh
# vim spark-env.sh
在spark-env.sh增加如下内容:
# java
JAVA_HOME=/usr
# hadoop CONF
HADOOP_CONF_DIR=/usr/hadoop/hadoop-2.7.7/etc/hadoop
温馨提示:
java环境变量地址 以具体机器的java安装为准,若使用yum安装java环境变量配置路径
查询本机Java安装路径
which java
/usr/bin/java
配置Java环境变量:
# java
#java
JAVA_HOME=/usr
6.启动spark服务
./start-all.sh
Notes: 也可以指定启动 ./sbin/start-master.sh
在浏览器输入服务器外网地址访问
![](https://img.zhikestreet.com/202105202316.png?imageView2/0/q/75|watermark/2/text/NTJJbnRlcnZpZXc=/font/5a6L5L2T/fontsize/240/fill/IzBFMDkwNQ==/dissolve/100/gravity/SouthEast/dx/10/dy/10)
7 测试spark
spark自带了一些测试demo,可以参照官方文档:http://spark.apache.org/docs/latest/quick-start.html
7.1 spark-shell 方式
进入handoop目录,
cd /opt/spark-3.1.1-bin-hadoop3.2/
执行spark-shell
./bin/spark-shell spark://xxxx.xxxx.12.119:7077 --executor-memory 512M --total-executor-cores 2
Using Scala version 2.12.10 (OpenJDK 64-Bit Server VM, Java 1.8.0_282)
Type in expressions to have them evaluated.
Type :help for more information.
scala> val textFile = spark.read.textFile("README.md")
textFile: org.apache.spark.sql.Dataset[String] = [value: string]
scala> textFile.count()
res0: Long = 108
scala>
![](https://img.zhikestreet.com/202105202320.png?imageView2/0/q/75|watermark/2/text/NTJJbnRlcnZpZXc=/font/5a6L5L2T/fontsize/240/fill/IzBFMDkwNQ==/dissolve/100/gravity/SouthEast/dx/10/dy/10)
温馨提示:
如果出现以下错误.
WARN TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure
解决方案:启动这个spark-shell的时候指明内存大小
./bin/spark-shell spark://172.31.xx.xx:7077 --executor-memory 512M --total-executor-cores 2
7.2 spark-submit 提交
执行如下命令
bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://YOURHOST:7077 \
--executor-memory 500M \
--total-executor-cores 2 \
/opt/spark/spark-3.1.1-bin-hadoop3.2/examples/jars/spark-examples_2.12-3.1.1.jar \
10
![](https://img.zhikestreet.com/202105202326.png?imageView2/0/q/75|watermark/2/text/NTJJbnRlcnZpZXc=/font/5a6L5L2T/fontsize/240/fill/IzBFMDkwNQ==/dissolve/100/gravity/SouthEast/dx/10/dy/10)
再来看看Spark视图
![](https://img.zhikestreet.com/16215245478364.png?imageView2/0/q/75|watermark/2/text/NTJJbnRlcnZpZXc=/font/5a6L5L2T/fontsize/240/fill/IzBFMDkwNQ==/dissolve/100/gravity/SouthEast/dx/10/dy/10)
更多教程请关注智客工坊官网。
![](https://img.zhikestreet.com/20210522-22216942.jpg?imageView2/0/q/75|watermark/2/text/NTJJbnRlcnZpZXc=/font/5a6L5L2T/fontsize/240/fill/IzBFMDkwNQ==/dissolve/100/gravity/SouthEast/dx/10/dy/10)