Spark大数据处理框架入门(单机版)
导读
- 引言
- 环境准备
- 安装步骤
- 1.下载地址
- 2.开始下载
- 3.解压spark
- 4.配置环境变量
- 5.配置 spark-env.sh
- 6.启动spark服务
- 7.测试spark
stay hungry stay foolish.
引言
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 版本

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目录,然后执行下载

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
在浏览器输入服务器外网地址访问

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>

温馨提示:
如果出现以下错误.
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

再来看看Spark视图

版权声明
作者:顶级码农
出处:
若标题中有“转载”字样,则本文版权归原作者所有。若无转载字样,本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利.
更多内容请关注智客工坊
Spark大数据处理框架入门(单机版)的更多相关文章
- Spark大数据处理技术
全球首部全面介绍Spark及Spark生态圈相关技术的技术书籍 俯览未来大局,不失精细剖析,呈现一个现代大数据框架的架构原理和实现细节 透彻讲解Spark原理和架构,以及部署模式.调度框架.存储管理及 ...
- Spark大数据处理 之 动手写WordCount
Spark是主流的大数据处理框架,具体有啥能耐,相信不需要多说.我们开门见山,直接动手写大数据界的HelloWorld:WordCount. 先上完整代码,看看咋样能入门. import org.ap ...
- 《Spark大数据处理:技术、应用与性能优化 》
基本信息 作者: 高彦杰 丛书名:大数据技术丛书 出版社:机械工业出版社 ISBN:9787111483861 上架时间:2014-11-5 出版日期:2014 年11月 开本:16开 页码:255 ...
- 《Spark大数据处理:技术、应用与性能优化》【PDF】 下载
内容简介 <Spark大数据处理:技术.应用与性能优化>根据最新技术版本,系统.全面.详细讲解Spark的各项功能使用.原理机制.技术细节.应用方法.性能优化,以及BDAS生态系统的相关技 ...
- 《Spark大数据处理:技术、应用与性能优化》【PDF】
内容简介 <Spark大数据处理:技术.应用与性能优化>根据最新技术版本,系统.全面.详细讲解Spark的各项功能使用.原理机制.技术细节.应用方法.性能优化,以及BDAS生态系统的相关技 ...
- 大数据处理框架之Strom:认识storm
Storm是分布式实时计算系统,用于数据的实时分析.持续计算,分布式RPC等. (备注:5种常见的大数据处理框架:· 仅批处理框架:Apache Hadoop:· 仅流处理框架:Apache Stor ...
- Spark大数据处理 之 从WordCount看Spark大数据处理的核心机制(2)
在上一篇文章中,我们讲了Spark大数据处理的可扩展性和负载均衡,今天要讲的是更为重点的容错处理,这涉及到Spark的应用场景和RDD的设计来源. Spark的应用场景 Spark主要针对两种场景: ...
- Spark大数据处理 之 RDD粗粒度转换的威力
在从WordCount看Spark大数据处理的核心机制(2)中我们看到Spark为了支持迭代和交互式数据挖掘,而明确提出了内存中可重用的数据集RDD.RDD的只读特性,再加上粗粒度转换操作形成的Lin ...
- 大数据处理框架之Strom: Storm----helloword
大数据处理框架之Strom: Storm----helloword Storm按照设计好的拓扑流程运转,所以写代码之前要先设计好拓扑图.这里写一个简单的拓扑: 第一步:创建一个拓扑类含有main方法的 ...
随机推荐
- 画直线的算法之DDA算法+代码实现(法一)
DDA(数值微分法)基于直线微分方程生成直线. 点xi,yi满足直线方程yi=kxi+b, 若xi增加一个单位,则下一步点的位置(xi + 1,yi+1)满足yi+1=k(xi + 1)+ b. 即y ...
- odoo 安装配置
Linux ubuntu 环境 1.建个python虚环境 也可用其他替代 virtualenv env 2.找个稳定版本下载 wget https://nightly.odoo.com/8.0/ni ...
- 借鉴Elasticsearch 7.x 深入系列学习
开始 Elasticsearch 深入系列目录如下: Elasticsearch 7.x 深入 数据准备 Elasticsearch 7.x 深入[1]索引[一]原理 Elasticsearch 7. ...
- GitlabCI/CD&Kubernetes项目交付流水线实践
GitlabCI实践 GitLabCI/CD基础概念 为什么要做CI/CD? GitLab CI/CD简介 GitLabCI VS Jenkins 安装部署GitLab服务 GitLabRunner实 ...
- 百度开源中国(Java)面经
一.自我介绍 面试嘛,万年不变还是自我介绍,就说说你是干嘛的(专业是啥),为什么会选择该公司(说一说自己为何向往Java开发),再谈谈自己的优点(兴趣爱好).如果人家叫停了,就别一股脑接着讲了,停下来 ...
- [DFS]特殊的质数肋骨
特殊的质数肋骨 时间限制:1000MS----内存限制:256000KB 题目描述 农民约翰母牛总是产生最好的肋骨. 你能通过农民约翰和美国农业部标记在每根肋骨上的数字认出它们. 农民约翰确定他卖给买 ...
- ThoughtWorks首席咨询师带你一站通关中台
大家都在谈中台,是当下一个热议的话题,但是我们最关心的两个基本问题还是没有答案.一个是中台的概念,依然是见仁见智,始终没有一个统一的见解:另一个是中台的落地,更是鲜有人谈. 拨开当下有关中台的层层迷雾 ...
- Spring Boot 整合Junit和redis
14. Spring Boot整合-Junit 目标:在Spring Boot项目中使用Junit进行单元测试UserService的方法 分析: 添加启动器依赖spring-boot-starter ...
- day13.常用模块
一.time与datetime模块 1.1time 在Python中,通常有这几种方式来表示时间: 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计 ...
- Day12 _63_获取当前线程对象
给线程起名 * 1. Thread.currentThread(); 可以获取到当前线程对象,出现在哪就是获取哪个线程. * 2. thread.setName(); 给该线程起名字 * 3. thr ...