Spark学习笔记1

Apache Spark is a fast and general-purpose cluster computing system.

  • spark 提供了 Java Scala Python and 的API。 在examples/src/main目录下有Java和Scala例子, 用 bin/run-example 运行。
  • 通过运行: ./bin/spark-shell –master local[2] 来进行交互式的操作,这是学习sprak最好的方式
  • 从1.4起spark也提供了R的api,./bin/sparkR –master local[2]

Quick Start

  • spark 提供了Scala 和 Python的交互式分析shell来学习api ./bin/spark-shell
  • RDD是分布式弹性数据集,可以理解为就是一个分布式的集合,这个集合的创建可以通过Hadoop 的 InputFormats,或者通过其他RDD转换而来。
  • RDD有动作,他能够返回值,以及转换操作,他会返回一个指针指向新的RDD,通过RDD的filter操作返回一个新的RDD.
  • RDD有很复杂的操作,他可以直接调用Scala Java的库方法,使用的时候需要使用:import java.lang.Math来引入。

Caching

  • spark 支持推送一个数据集到一个集群的缓存中,尤其是那种需要经常重复读取的数据。eg: linesWithSpark.cache()

Self-contained Applications(独立的应用程序)

  • 创建Maven项目。
  • pom.xml 文件如下:

   
      org.apache.spark
      spark-core_2.10
      1.4.0
    
    
      junit
      junit
      4.11
      test
    

  • 创建一个简单的spark程序:
public class SimpleApp {
    public static void main(String[] args) {
        // 文件路径
        String logFile = "/home/wm/apps/spark-1.4.0-bin-hadoop2.6/README.md";
        SparkConf conf = new SparkConf().setAppName("Simple Application");
        JavaSparkContext sc = new JavaSparkContext(conf);
        JavaRDD logData = sc.textFile(logFile).cache();
        @SuppressWarnings("serial")
        long numAs = logData.filter(new Function() {
            public Boolean call(String s) throws Exception {
                return s.contains("a");
            }
            
        }).count();
        @SuppressWarnings("serial")
        long numBs = logData.filter(new Function() {

            public Boolean call(String s) throws Exception {
                return s.contains("b");
            }
            
        }).count();
        System.out.println("Lines with a: " + numAs + ", lines with b: " + numBs);
        sc.close();
    }
}
  • mvn pckage
  • 将target目录下的sparkdemo2-0.0.1-SNAPSHOT.jar文件放在spark的安装目录下。
  • 在spark安装目录下执行jar包中的程序,但是要指定执行的class文件,这个class文件需要全路径。例如:
    ./bin/spark-submit --class "com.wm.test.sparkdemo" --master local[4] sparkdemo-0.0.1-SNAPSHOT.jar
    

你可能感兴趣的:(Spark学习笔记1)