spark的介绍&&环境的搭建
离线分析:
把一段时间的数据经过收集,整理,分析,得出一定的结论
这个结论可以帮助人们做一定的决策。
与时效性无关
处理数据的方式:批处理
实时分析:
必须有时效性,数据实时产生,实时处理。
处理数据的方式:流处理
spark
对于大规模数据处理的一个快如闪电的统一的分析引擎(计算框架)
作者:
美国加州大学伯克利分校AMP(A:算法,M:机器,P:人)实验室
目的:
通过对算法,机器和人的大规模整合来展现大数据的应用
特点:
1.速度
理论值:基于内存运算100X,即使使用磁盘快10X
速度快原因:
a.基于内存
b.DAG有向无环图
c.在查询上做了优化
d.有物理的计算引擎
2.易用性
a.支持scala,java,python,R,SQL语言(源码是scala)
b.支持scala,python,R和SQL的shell操作
c.提供了超过80种的高级操作(算子)(高阶函数)
3.通用性
可以在一个应用程序中无缝整合所有的组件
一个技术栈统治所有
sparkCore
spark的核心引擎,如果没有特殊指定,spark就是sparkCore
sparkSQL
使用sql处理结构化数据的组件
sparkStreaming
处理流式数据,进行实时分析的组件
伪实时的计算框架,使用的是微批次处理的方式
sparkR
对R语言的支持
MLlib
机器学习算法库
GraphX
图计算
4.运行在任何的地方
a.可以运行在很多环境下
local standalone onYarn
b.可以接收各种数据源
环境的搭建
(从官网上下载文件相应版本文件,这里用的是2.3.3版本对应的Hadoop为2.7下载地址)
1.本地模式(local)
·解压缩之后直接是本地模式,无需任何操作。
·没有分布式的概念,由多线程来模拟分布式的操作。
步骤:
a.解压缩
b.配置环境变量
c.提交测试任务
spark-submit --master local[*] --class xxx xxx.jar
测试:估算pi的值
2.独立模式(standalone)
·是分布式,所有的资源管理的角色都由spark自己提供,
需要启动服务才能执行
步骤:
在本地模式基础上
a.修改配置文件
spark-env.sh
SPARK_MASTER_HOST=xxx
slaves
xxx
b.启动服务
bash ${SPARK_HOME}/sbin/start-all.sh
(hadoop中启动服务也是start-all.sh,同名,解决办法:
1,执行时到spark目录下的bin里执行时加上./
2,改名
)
start-master.sh 和 start-slaves.sh 分别启动
c.提交测试任务
spark-submit --master spark://node200:7077
--class xxx xxx.jar
spark-env.sh
slaves
3.集群模式(onYarn)
把所有的资源管理权限交给Yarn来完成,自己不做管理。
两种部署模式
a.client
在哪个节点提交任务,就在那个节点直接启动Driver
结果直接输出到控制台
b.cluster
不管在哪个节点提交任务,都得由Yarn来进行分配,
分配到哪个节点,就在哪个节点执行。
结果写入到${HADOOP_HOME}/logs/userlogs/...
步骤:
在独立模式的基础上
a.修改配置文件
spark-env.sh
HADOOP_CONF_DIR=/home/bduser/modules/hadoop/etc/hadoop
b.启动服务
只需启动hadoop的hdfs和yarn服务,无需启动spark本身的任何服务
c.提交测试任务
spark-submit --master yarn --deploy-mode client/cluster
--class xxx xxx.jar
client
cluster
程序执行结果默认打印于hadoop根目录中的【logs/userlogs】目录下