史上最简单的spark系列教程
什么是spark?
⽹上有关spark的介绍⼀搜⼀⼤堆,这⾥就简单的说下它的优点:
1. Apache Spark是⼀种包含流处理能⼒的下⼀代批处理框架。与Hadoop的MapReduce引擎基于各种相同原则开发⽽来的
Spark主要侧重于通过完善的内存计算和处理优化机制加快批处理⼯作负载的运⾏速度
2. Spark可作为独⽴集部署(需要相应存储层的配合),或可与Hadoop集成并取代MapReduce引擎
3. 与MapReduce不同,Spark的数据处理⼯作全部在内存中进⾏,只在⼀开始将数据读⼊内存,以及将最终结果持久存储时需要
与存储层交互。所有中间态的处理结果均存储在内存中
4. 除了引擎⾃⾝的能⼒外,围绕Spark还建⽴了包含各种库的⽣态系统,可为机器学习、交互式查询等任务提供更好的⽀持。相⽐
MapReduce,Spark任务易于编写
5. Spark的另⼀个重要优势在于多样性。该产品可作为独⽴集部署,或与现有Hadoop集集成。该产品可运⾏批处理和流处
理,运⾏⼀个集即可处理不同类型的任务
access denied架子鼓速度是多少1. 初级阶段:
-----------------------------------------------------------------------------------------------------
1. 什么是spark: spark是⼀个实现快速并且通⽤的集计算框架
2. 核⼼功能组件:
1. spark core: 实现spark的基本功能
1. 任务调度,内存管理,错误恢复,与存储系统交互等模块
2. RDD:[弹性分布式数据集]API定义
2. spark sql: spark操作结构化数据的程序包
1. 通过sparkSql可以使⽤sql或者hsql查询数据
2. sparksql⽀持多种数据源
3. spark streaming: 实时流计算组件
1. 提供操作数据流的API
4. MLlib:机器学习库,丰富强⼤
5. Graphx:图计算,图像算法
6. 集管理器:(类似于Hadoop的Yarn)
1. 为了满⾜从单节点到上千节点之间的伸缩计算,实现的简易调度器
3. 下载运⾏Demo {我的操作环境:Centos7.5}:
1.
2. 安装JDK8以上
3. 解压JDK,配置环境变量[/etc/profile],配置⽣效 source/etc/profile 可参考上⼀章:Hadoop环境部署
4. java -version 验证
5. 下载spark,我选择的版本是2.2.3
6. 解压 tar - [spark解压即可使⽤,前提是jdk环境OK]
4.
eclipse安装一直加载1. 查看spark/bin⽬录下的源码包:
1. python,R⽬录:源代码
2. README.md:⼊门帮助
3. bin:⼀些可执⾏命令
4. examples:包含有java,python,r语⾔的⼊门Demo源码
5. ⼊门案例:
js的switch用法
1. spark中的pythonShell和ScalaShell命令:
2. 运⾏pythonShell
1. 进⼊spark/bin⽬录
python入门教程 下载1. ./python-shell
2. 运⾏ScalaShell
1. 进⼊spark/bin⽬录
1. ./spark-shell
3. 稍等⽚刻会有类似springboot启动图标的spark图标[welcome to spark]
4. 开始编写sparkShell:
1. val lines = sc.textFile("/usr/local/spark/spark-
2.2.3-bin-hadoop2.7/README.md")
2. //第⼀步操作括号中的路径是我的安装⽬录,README.md是spark系统⽂件,请确保你们的⽂件也在此位置
3. unt() //输出总count⾏数
4. lines.first() //输出RDD中的第⼀个元素[README.md第⼀⾏]
5. ctrl+D退出shell
autoupgrade可以删除吗6. 以上的shell是如何运作的?
1. 变量lines其实就是⼀个RDD,是从电脑上的本地⽂本⽂件创建出来的
1. ⾄于RDD是什么,简单的说:
1. 在spark中,我们要进⾏计算,就需要通过分布式数据集的操作表达我们的计算意图
2. 这些计算会⾃动的在集上并⾏计算,这样的数据集就叫做RDD(resilient distributed dataset)弹性分布式数据
集
3. RDD就是spark对分布式数据和计算的基本抽象
2. 我们可以在这个RDD上运⾏各种并⾏操作,⽐如我们刚才的 count()和first()
examples中的java代码⽰例:
常用导数公式大全执⾏shell⽰例:
上⼀篇搭建Hadoop单机环境运⾏MapReduce后本来是计划搭建完全分布式环境的但是公司内部开会讨论后,考虑效率以及业务场景,决定不使⽤MapReduce做批计算原因是太慢....⽽且后期需要集成其他流处理框架,建模才能满⾜不同需求
现决定采⽤spark技术栈做批处理和流处理,底层还是Hadoop的HDFS分布式⽂件系统Elasticsearch实时索引,logstash清洗数据,kafka队列
最近的⽂章都会以spark学习为主
有什么问题还是⼀块讨论,⼀块学习
ElasticsearchJavaApi⾼级使⽤和Springboot的教程抽空就会更新出来,有什么问题请⼤家及时指正,谢啦
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论