Hadoop生态组件之Spark--第七讲

1、什么是Spark    

  Spark是一个针对大规模数据处理的快速通用引擎。
 类似MapReduce,都进行数据的处理

2、Spark的特点:

(1)基于Scala语言、Spark基于内存的计算
(2)快:基于内存
(3)易用:支持Scala、Java、Python
(4)兼容性:完全兼容Hadoop


3、Spark体系结构:主从结构

(1)主节点:Master
(2)从节点:Worker


4、搭建Spark的伪分布模式环境 

1、解压:tar -zxvf spark-2.1.0-bin-hadoop2.4.tgz  /root/training/

2、配置参数文件: 

  conf/spark-env.sh

      export JAVA_HOME=/jdk/jdk1.7.0_55
      export SPARK_MASTER_HOST=bogon  
              export SPARK_MASTER_PORT=7077

conf/slaves ----> 从节点的主机信息(把localhost修改为bogon)
  bogon
bogon为linux的主机名

3、启动Spark伪分布环境

        sbin/start-all.sh(在spark根目录下)

        Spark Web 控制台: http://192.168.40.116:8080   

Hadoop生态组件之Spark--第七讲

看到以上信息说明spark安装成功

5、实现WordCount单词统计

 Spark通过Scale语言进行分布式计算,首先需要打开Spark的shell,在spark的根目录下执行命令: /bin/spark-shell

Hadoop生态组件之Spark--第七讲

6、编辑scala脚本

1.输出到控制台

sc.textFile("hdfs://192.168.40.116:9000/data/input/data.txt") //加载要进行运算的源文件
 .flatMap(_.split(" "))// _(下划线代表任意字符)通过空格对所有字符进行拆分
 .map((_,1))//进行map操作 _(下划线代表被拆分的任意字符) ,并进行计数 1
 .reduceByKey(_+_) //把所有相同的Key ,他们的value 汇总
 .collect //输出到控制台

Hadoop生态组件之Spark--第七讲

2.输出到文件

sc.textFile("hdfs://192.168.40.116:9000/data/input/data.txt")
 .flatMap(_.split(" "))
 .map((_,1))
 .reduceByKey(_+_)
 .saveAsTextFile("hdfs://192.168.40.116:9000/data/output/spark/wc")

Hadoop生态组件之Spark--第七讲