Spark学习笔记之简介篇

Apache Spark是一个效率极高的大数据处理引擎


各种快

在内存中运行程序比Hadoop MapReduce快100倍,在磁盘中快10倍

Spark使用先进的DAG(Directed Acyclic Graph)执行引擎并且支持循环数据流和内存计算。

引用官网的一张图:

Logistic regression in Hadoop and Spark

各种好用

在Java,Scala,Python等语言中非常简便快捷地编写程序

Spark提供了80多种操作指令,能够非常简单的开发并行应用程序,并且能在不同语言之间交互使用。

例如Spark’s Python实现的Word count:

1
2
3
4
text_file = spark.textFile("hdfs://...")
text_file.flatMap(lambda line: line.split())
.map(lambda word: (word, 1))
.reduceByKey(lambda a, b: a+b)

各种概要

包括SQL处理,流处理和复杂的数据分析

Spark提供了非常丰富的库,包括SQL出库库SQL and DataFrames,机器学习库MLlib,图形处理GraphX和流处理Spark Streaming,你可以在一个应用里无缝的整合这些库。

Spark的栈库:
spark-stack

各种运行

Spark可以运行在Hadoop,Mesos,standalone or cloud,可以访问各种不同的数据源,如:HDFS,Cassandra,HBase以及S3

可以在EC2上运行Spark的 standalone cluster mode,也可以在Hadoop YARN 或 Apache Mesos上运行,可以访问各种类型的数据如: HDFS, Cassandra, HBase, Hive, Tachyon。

spark-runs-everywhere:
spark-runs-everywhere