Spark系列一: 介绍及入门
一、Spark 是什么
spark是一个用来实现快速而通用的集群计算平台。
spark各组件:
1. Spark core实现了spark的基本功能,包括任务调度,内存管理,错误恢复,与存储系统交互等模块。
spark core中还包含了对弹性分布式数据集(resilient distributed dataset,RDD)对API定义。
RDD表示分布在多个计算节点上可以并行操作对原属集合,是spark主要对变成抽象,Spark Core提供创建和操作这些集合的多个API
2. Spark SQL 是Spark用来操作结构化数据的程序包。可以用SQL和Hive版本(HQL)来查询数据。支持多种数据源(Hive表、Parquet、JSON等),支持将SQL和RDD编程的数据操作方式结合。
3. Spark Streaming 是Spark提供的对实时数据进行流式计算的组件。提供用来操作数据流的API,与Spark Core中的RDD API高度对应(数据流:如生产环境中的网页服务器日志,或网络服务中用户提交的状态更新组成的消息队列)
4. MLlib: Spark中提供常见的机器学习(ML)功能的程序库,提供多种机器学习算法,包括分类、回归、聚类、协同过滤、一个通用的梯度下降优化算法等,还提供模型评估,数据导入等额外的支持功能。
5. GraphX 是用来操作图(比如社交网络朋友的关系图)的程序库,可以进行并行的图计算。扩展Spark的RDD API,能用来创建一个顶点和边都包含任意属性的有向图。
6. 集群管理器(cluster manager)
包括Hadoop YARN,Apache Mesos,以及Spark自带的一个简易调度器,叫做独立调度器。
7. Spark存储层次
可以将任何Hadoop分布式文件系统(HDFS)上的文件读取为分布式数据集,
支持其他支持Hadoop接口的系统,如本地文件、亚马逊S3,Cassandra、Hive、HBase等。
支持任何实现了Hadoop接口的存储系统。
支持Hadoop输入格式包括文本文件、SequenceFile、Avro、Parquet等
二、下载Spark
去官网下载压缩包
使用Spark自带交互式Shell, 可以作即时数据分析
spark官方文档快速入门指南:http://spark.apache.org/docs/latest/quick-start.html
(本系列示例都为Scala版本的,python版本的PySpark Shell:bin/pyspark)
打开Scala版本的shell:
进入spark安装目录,在shell里面输入:
bin/spark-shell