初识Spark

学习Spark的权威:

①官网:http://spark.apache.org/
②GitHub:https://github.com/apache/spark
③源码

需要了解一下最新的release,每个版本做了什么事情,看看每个release发布了什么新特性,有没有补充以前的功能,这些功能恰好是工作上可以用到的。
在这里插入图片描述
在这里插入图片描述
Spark是一种大数据计算框架,期望使用一种技术栈就完美解决大数据领域的各种计算任务,Apache对Spark的定义就是通用的大数据快速处理引擎。
目前已经有很多公司正在使用Spark作为大数据的计算框架,包括,eBay,BAT,网易、京东、华为、大众点评、优酷、土豆、搜狗等。
Spark的版本:
三个数字:比如2.4.2
第一个数字:大版本,里程碑式的 ,比如1到2是里程碑上的变化。变化的地方非常多。
第二个数字:次版本 稍微大一些的改变,比如加入了一些新功能等
第三个数字:小版本,在次版本上进行小的改进和增强,比如bug的修复等,核心的东西并未发生改变。

我们在选择的时候,小版本最好选择大的数字。
最好知道:重要的东西是什么版本发布的。

看官网可以知道它的特性:
Speed
Ease of Use
Generality
Runs Everywhere

Spark的环境搭建
1.需要下载源码,自己先编译,然后再部署。自己用源码编译的可以满足自己的需求。官网下载的预编译的安装包,虽然不用编译,但大部分情况下不适合自己的需求。
在这里插入图片描述
下载源码方式:
①按照上图去下载;下载源码:https://archive.apache.org/dist/spark/spark-2.4.3/spark-2.4.3.tgz
②去GitHub下载
在这里插入图片描述
在这里插入图片描述
③git clone https://github.com/apache/spark.git 这是master分支
通过查看分支命令,切换到自己所需要的分支中去,拿到的总是最新的。

2.Spark编译,有专门讲这一块的。
3.Spark部署
解压
配置环境变量
export SPARK_HOME=/home/hadoop/app/spark-2.4.2-bin-2.6.0-cdh5.7.0
export PATH=$SPARK_HOME/bin:$PATH

4.常用目录
bin:存放客户端相关的脚本
sbin:存放服务端相关的脚本,启动停止集群等
conf:配置文件
data:存放测试数据
examples:Spark自带的测试用例(想学好spark务必学习里面的代码)
jars:存放 spark相应的jar包
yarn:动态资源调度会用到,存放yarn相关jar包

5启动

#看帮助
[hadoop@hadoop001 bin]$ ./spark-shell --help
Usage: ./bin/spark-shell [options]

Scala REPL options:
  -I <file>                   preload <file>, enforcing line-by-line interpretation

Options:
  --master MASTER_URL         spark://host:port, mesos://host:port, yarn,
                              k8s://https://host:port, or local (Default: local[*]).
  --deploy-mode DEPLOY_MODE   Whether to launch the driver program locally ("client") or
                              on one of the worker machines inside the cluster ("cluster")
                              (Default: client).
  --class CLASS_NAME          Your application's main class (for Java / Scala apps).
  --name NAME                 A name of your application.
  --jars JARS                 Comma-separated list of jars to include on the driver
                              and executor classpaths.

在这里插入图片描述
6.修改日志级别
在conf/log4j.properties文件里修改。
Log4j是Apache的开源项目一个功能强大的日志组件,提供方便的日志记录。
日志记录器(Logger)是日志处理的核心组件
Log4j建议只使用四个级别,优先级从高到低分别是FATAL, ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。程序会打印高于或等于所设置级别的日志,设置的日志等级越高,打印出来的日志就越少。如果设置级别为INFO,则优先级高于等于INFO级别(如:INFO、WARN、ERROR)的日志信息将可以被输出,小于该级别的如DEBUG将不会被输出。
DEBUG Level指出细粒度信息事件对调试应用程序是非常有帮助的。
INFO level表明 消息在粗粒度级别上突出强调应用程序的运行过程。
WARN level表明会出现潜在错误的情形。
ERROR level指出虽然发生错误事件,但仍然不影响系统的继续运行。
FATAL level指出每个严重的错误事件将会导致应用程序的退出。
fatal ['feitl] adj. 致命的;重大的;毁灭性的;命中注定的
log4j的日志级别一般是在 log4j.properties 文件中修改。

7.SparkContext (sc)是spark应用程序的入口
端口默认是4040
一台机器上面,可能会启动多个spark应用程序,端口是自增的,从4040开始,4041,4042…
一个spark应用程序到底跑在哪个端口之上,肯定是通过spark启动的日志才能知道的。
网页访问;http://hadoop001:4040
在这里插入图片描述
Spark context available as ‘sc’ (master = local[*], app id = local-1557842810239).
sc就是Spark context
master = local[*] 设置spark应用程序以什么方式运行
local 本地

spark://host:port standalone模式
mesos://host:port 运行在mesos上
yarn 运行在Hadoop的yarn之上
k8s://https://host:port 运行在k8s容器上
local (Default: local[*]) 本地 (默认在本地上面)

生产上绝大部分都跑在yarn上面,开发的话一般都在本地上。
local[*] 是指?本地多线程 (默认)
在这里插入图片描述
app id = local-1557842810239) 运行的id
可以去网页访问;http://hadoop001:4040 的环境中看到;
在这里插入图片描述
Spark session available as ‘spark’.
Spark session 很多东西都是从它里面来取的。

在这里插入图片描述
这个Spark shell名字从哪里来?要看一下bin/spark-shell.sh脚本
在这里插入图片描述
可以知道这个名字是通过 --name来指定的
而且可以看出bin/spark-shell.sh底层执行的是spark-submit

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值