spark 写本地文件_5分钟快速上手Alluxio和Spark

简介

Apache Spark给大数据计算带来了重大革新,将其与Alluxio配合使用时,其效果还将更加出色。Alluxio为Spark提供了可靠的数据共享层,通过Alluxio处理存储,Spark在执行应用程序逻辑时更加得心应手。Bazaarvoice使用Spark和Alluxio构建了实时大数据平台,该平台不仅能够在黑色星期五等高峰事件中处理15亿次页面浏览量,还能对这些数据进行实时分析(更多内容见此处)。在这种规模下,速度的提升能够给新工作负载赋能。我们已经构建了一个简洁的方法来集成Alluxio和Spark。

本博客面向那些对如何利用Alluxio和Spark感兴趣的新人,所有示例都可以通过简单步骤在本地计算机上复现。

常用链接

  • Alluxio项目官网
  • Alluxio在各大厂用例
  • 关注Alluxio微信公众号:Alluxio_China

准 备

要开始使用Alluxio和Spark,首先需要下载两个系统的发行版,安装Java8并下载示例数据以完成练习。

  • Alluxio 1.8.1
  • Spark 2.4.0
  • 安装Java-JDK 8
  • 示例数据文件

将Alluxio和Spark下载到工作目录。样本数据文件也可以下载和解压缩到此处,或者/tmp目录。Spark必须引用样本文件的完整路径。

配置Alluxio

  • 打开远程登录服务,以便能够成功ssh localhost。

cb2ee160a5128364ec68135749e2fde6.png
  • 为避免重复输入密码,可以将主机的公共SSH密钥添加到~/.ssh/authorized_keys。有关详细信息,请参阅本教程。

从Alluxio网站下载、解压并启动Alluxio的预编译版本

$tar -zxf alluxio-1.8.1-bin.tar.gz
$cd alluxio-1.8.1
$bin/alluxio bootstrap-conf localhost
$bin/alluxio-start.sh local -f

访问localhost:19999/home的WebUI,验证Alluxio系统是否正在运行。

配置Spark

解压缩Spark的预编译版本

$tar -zxf spark-2.4.0-bin-hadoop2.7.tgz
$cd spark-2.4.0-bin-hadoop

通过在Spark项目目录下运行以下命令来启动spark-shell程序。在交互式shell中,你可以处理来自各种源的数据,在当前情况下,数据源是本地文件系统。

集成Alluxio和Spark

Spark需要使用Alluxio客户端jar包才能让Spark程序与Alluxio交互;Alluxio客户端jar包是两个系统的集成点。使用--driver-class-path参数后跟客户端jar包的路径指定它,该客户端jar包位于Alluxio包的client目录中。

cd spark-2.4.0-bin-hadoop2.7
$bin/spark-shell --driver-class-path<PATH>/alluxio-1.8.1/client/ alluxio-1.8.1-client.jar

运行一个简单的示例

作为第一个示例,我们将使用Alluxio和Spark从本地存储读取数据,借此来熟悉两个系统的集成。之前下载的示例数据文件包含了大小为2gb的文件,该文件的内容为从英语词典中随机生成的单词。

$cd /tmp
$tar -zxf sample-2g.tar.gz

在Spark中处理2gb样本文件并计算其中的行数。确保指定了正确的文件路径。

scala>val file = sc.textFile("/tmp/sample-2g")
scala>file.count()

Alluxio还可以用作数据的源或接收点。你可以将文件保存到Alluxio,并且类似地对Alluxio的数据执行相同的操作,就像对本地文件系统一样。

scala>file.saveAsTextFile("alluxio://localhost:19998/sample-2g")
scala>val alluxioFile = sc.textFile("alluxio://localhost:19998/sample-2g")
scala>alluxioFile.count()

结 论

本文是使用Alluxio和Spark的简单介绍。我们后续的博客将详细介绍利用Alluxio和Spark的优势:

  • 多个作业之间的数据共享:只有一个作业需要从冷数据中慢速读取
  • 作业失败易恢复:Alluxio在作业失败或重新启动时保留数据
  • 托管存储:Alluxio优化了跨应用程序分配的存储的利用率
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值