使用sparkStreaming完成文件流(/opt/app/wordcount7/)wordcount计算

一,关于Spark与SparkStreaming

Spark由美国加利福尼亚大学伯克利分校的AMP实验室于2009年开发,是基于内存计算的大数据并行计算架构,可用于构建大型的、低延迟的数据分析应用程序。2013年Spark成为Apache孵化器项目后,开始获得迅猛的发展,如今已成为Apache软件基金会最重要的三大分布式计算系统开源项目(Hadoop,Spark,Flink)之一。

BDAS架构如图所示:

Spark Core:实现了 Spark 的基本功能,包含 RDD、任务调度、内存管理、错误恢复、与存储系统交互等模块。

Spark SQL:Spark 用来操作结构化数据的程序包。通过 Spark SQL,我们可以使用 SQL 操作数据。

Spark Streaming:Spark 提供的对实时数据进行流式计算的组件。提供了用来操作数据流的 API。

Spark MLlib:提供常见的机器学习(ML)功能的程序库。包括分类、回归、聚类、协同过滤等,还提供了模型评估、数据导入等额外的支持功能。

GraphX(图计算):Spark 中用于图计算的 API,性能良好,拥有丰富的功能和运算符,能在海量数据上自如地运行复杂的图算法。

集群管理器:Spark 设计为可以高效地在一个计算节点到数千个计算节点之间伸缩计算。

Structured Streaming:处理结构化流,统一了离线和实时的 API。

二,Spark VS Hadoop

尽管 Spark 相对于 Hadoop 而言具有较大优势,但 Spark 并不能完全替代 Hadoop,Spark 主要用于替代Hadoop中的 MapReduce 计算模型。存储依然可以使用 HDFS,但是中间结果可以存放在内存中;调度可以使用 Spark 内置的,也可以使用更成熟的调度系统 YARN 等。

三,使用sparkStreaming完成文件流(/opt/app/wordcount7/)wordcount计算

①启动hadoop集群

cd hadoop-2.7.3

cd sbin

./start-all.sh

②启动spark集群

cd spark-2.4.7-bin-hadoop-2.7

cd sbin

./start-all.sh

使用jps命令查看,出现Master和Worker两个节点,启动成功。

③spark-shell命令

cd /opt/app/spark

bin/spark-shell

import org.apache.spark._

import org.apache.spark.streaming._

val ssc=new StreamingContext(sc,Seconds(20));

val lines=ssc.textFileStream("file:///opt/app/wordcount7");

(1)将计算文件每行转化为单词

val words=lines.flatMap(x=>x.split(" "));

(2)将文件内容转化为(单词,1)的形式

val wordPair=words.map(x=>(x,1));

(3)得出workcount计算结果

val wordcount=wordPair.reduceByKey((x,y)=>x+y);

wordcount.print;

ssc.start;

cd /opt/app

touch 1.txt

vi 1.txt

内容·如下:

hello world

hello world hello

cp 1.txt wordcount7

SparkStreaming计算结果如下

四,计算结果保存到hdfs根目录下

①在spark-shell中运行

wordcount.saveAsTextFiles("hdfs://hadoop:9000/");

②使用hdfs命令查看根目录下的保存结果

cd hadoop-2.7.3

bin/hdfs dfs -ls /

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值