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_55export 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
看到以上信息说明spark安装成功
5、实现WordCount单词统计
Spark通过Scale语言进行分布式计算,首先需要打开Spark的shell,在spark的根目录下执行命令: /bin/spark-shell
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 //输出到控制台
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")