每周学点大数据 | No.73 在 HDFS 上使用 Spark

编者按:灯塔大数据将每周持续推出《从零开始学大数据算法》的连载,本书为哈尔滨工业大学著名教授王宏志老师的扛鼎力作,以对话的形式深入浅出的从何为大数据说到大数据算法再到大数据技术的应用,带我们在大数据技术的海洋里徜徉~每周五定期更新

上期回顾&查看方式

在上一期,我们学习了在 Spark 上实现 WordCount 的相关内容。PS:了解了上期详细内容,请在自定义菜单栏中点击“灯塔数据”—“技术连载”进行查看;或者滑到文末【往期推荐】查看

No.73

在 HDFS 上使用 Spark

小可 :Spark 不是一个并行计算平台吗?如果我们读取文件时都从本地读取的话,那么Spark 不就仅仅运行在一台计算机上了吗?

Mr. 王笑着说:你能想到这个问题非常好。没错,如果我们希望 Spark 运行在多台计算机上,还要有一个分布式文件系统予以支持,如果输入输出文件存放在多台计算机上,那么 Spark 也就自然在多台计算机上运行了。

小可 :分布式文件系统……在学习 Hadoop 时,我们使用的是 HDFS,这次我们还用HDFS 可以吗?

Mr. 王 :很好,Spark 依然可以将输入输出文件放在 HDFS 上,以便于在多台计算机上运行 Spark 程序。这次,输入文件将不再来自于本地磁盘,而是来自于 HDFS。

首先,我们要启动 HDFS 服务。

然后,还要记得格式化 HDFS。

最后,我们去 HDFS 的 Web 页面检查一下 HDFS 是不是已经正常启动并格式化好了。用浏览器打开 URL :localhost:50070

小可 :嗯,又看到熟悉的画面了,HDFS 的NameNode 状态信息显示出来了,HDFS 已经可以正常启动了。

Mr. 王 :我们再用 HDFS 的 ls 命令查看一下此时这里面的文件。

现在我们在本地创建一个包含一些随机句子的文本文件。

实验使用的文本文件的内容如下 :

然后将它放入 HDFS 中,使用 HDFS 的 -put 命令,依然要注意放置文件的路径关系。

再用 ls 命令查看一下,文件是不是已经成功地放进去了。

小可 :找到了,这就是我们刚刚放进去的文本文件!

Mr. 王 :好的,接下来可以去 Spark 那里,执行下一步工作了。

使用切换目录的命令 :

Mr. 王 :接下来还是一样启动 Python Spark Shell。

在大段提示信息之后,出现“>>>”命令提示符。

我们依然采用下面的格式来输入文本文件。

这里注意,输入文件如果来自于 HDFS,则要在文件路径前面加 hdfs://,以便系统识别。后面部分是 HDFS 的访问路径,由于本实验是在本地进行的,所以输入 localhost:9000,这是访问 HDFS 的路径。接下来就是文件放置的位置,和前面放进HDFS 时是一致的。

在完成了从 HDFS 加载文件之后,我们就可以按照需要完成接下来的操作了。我们要做的是选出所有句子中带有“Spark”关键词的句子,并将它们返回。

程序的输出结果如下 :

注意观察输出结果的最后一行,三个引号里面的部分分别是 I am a rookie of Spark、Spark is a good platform、Have fun with Spark 三个句子。对比一下之前我们输入的文件,这的确是Spark 出现的三个地方,运行结果还是比较准确的。

另外,还记得我们在学习 WordCount 时用过的saveAsTextFile 函数吗?

我们同样可以使用下面这条命令,将运行结果存储到 HDFS 中,这样更加符合分布式并行计算产生结果的数据量同样比较大这个特点。

下期精彩预告

经过学习,我们研究了在 HDFS 上使用 Spark涉及到的一些具体问题。在下一期中,我们将进一步了解Spark 的核心操作——Transformation 和 Action的相关内容。更多精彩内容,敬请关注灯塔大数据,每周五不见不散呦!

文章作者:王宏志

文章编辑:天天

原文发布于微信公众号 - 灯塔大数据(DTbigdata)

原文发表时间:2018-02-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏about云

spark零基础学习线路指导

问题导读 1.你认为spark该如何入门? 2.你认为spark入门编程需要哪些步骤? 3.本文介绍了spark哪些编程知识? ? spark...

4085
来自专栏知识分享

串口通信DMA中断

这是以前学32的时候写的,那时候学了32之后感觉32真是太强大了,比51强的没影。关于dma网上有许多的资料,亲们搜搜,这里只贴代码了,其实我也想详详细细地叙述...

3267
来自专栏about云

spark入门基础知识常见问答整理

一. Spark基础知识 1.Spark是什么? UCBerkeley AMPlab所开源的类HadoopMapReduce的通用的并行计算框架 dfsSpa...

36610
来自专栏悦思悦读

Spark为什么比Hadoop快那么多?

在2014年11月5日举行的Daytona Gray Sort 100TB Benchmark竞赛中,Databricks 用构建于206个运算节点之上的spa...

53311
来自专栏技术专栏

MapReduce学习笔记

wordcount: 统计文件中每个单词出现的次数需求:1) 文件内容小:shell2)文件内容很大:TB GB ??? 如何解决大数据量的统计分析==> ur...

1302
来自专栏企鹅号快讯

简谈Spark Streaming的实时计算整合

基于Spark通用计算平台,可以很好地扩展各种计算类型的应用,尤其是Spark提供了内建的计算库支持,像Spark Streaming、Spark SQL、ML...

3698
来自专栏Python小屋

Python大数据处理扩展库pySpark用法精要

Spark是一个开源的、通用的并行计算与分布式计算框架,其活跃度在Apache基金会所有开源项目中排第三位,最大特点是基于内存计算,适合迭代计算,兼容多种应用场...

4496
来自专栏懒人开发

hadoop(1):hadoop概述

hadoop是 Doug Cutting 在 Lucene 之后的一个项目 主要用于 计算 是一个 开源,可靠,可扩展 的分布式计算框架 主要有

1063
来自专栏祝威廉

Spark 2.0 Structured Streaming 分析

Spark 2.0 将流式计算也统一到DataFrame里去了,提出了Structured Streaming的概念,将数据源映射为一张无线长度的表,同时将流式...

1503
来自专栏Albert陈凯

2.0Spark编程模型

循序渐进学Saprk 与Hadoop相比,Spark最初为提升性能而诞生。Spark是Hadoop MapReduce的演化和改进,并兼容了一些数据库的基本思想...

3908

扫码关注云+社区

领取腾讯云代金券