文档章节

整合 Tachyon 运行 Spark(译)

Ryan-瑞恩
 Ryan-瑞恩
发布于 2015/10/19 17:11
字数 731
阅读 603
收藏 0

整合 Tachyon 运行 Spark

兼容性

如果你计划运行Spark 结合使用 Tachyon,以下版本的搭配将共同开箱即用。如果你计划使用不同版本而不是默认支持版本。请重新编译Spark 的正确版本,通过在 spark/core/pom.xml 中改变 tachyon-client 的版本。

Spark Version Tachyon Version
1.0.x and Below v0.4.1
1.1.x v0.5.0
1.2.x v0.5.0
1.3.x v0.5.0
1.4.x v0.6.4
1.5.x and Above v0.7.1

Tachyon的输入/输出数据

这些额外的先决条件是Spark(0.6 或者更高版本)。我们还猜测到用户运行 Tachyon 0.7.1 或更高版本,按照这些指导 Local Mode 或Cluster Mode 并已建立的Tachyon和Hadoop。

We also assume that the user is running on Tachyon 0.7.1 or later and has set up Tachyon and Hadoop in accordance to these guides Local Mode or Cluster Mode.

如果你运行Spark 版本低于 1.0.0, 请增加以下内容给 spark/conf/spark-env.sh:

export SPARK_CLASSPATH=/pathToTachyon/client/target/tachyon-client-0.7.1-jar-with-dependencies.jar:$SPARK_CLASSPATH

如果运行一个Hadoop 1.x 集群,创建新文件 spark/conf/core-site.xml 增加以下内容:

<configuration>
  <property>
    <name>fs.tachyon.impl</name>
    <value>tachyon.hadoop.TFS</value>
  </property>
</configuration>

把一个文件X 放入HDFS运行 Spark shell:

$ ./spark-shell
$ val s = sc.textFile("tachyon://localhost:19998/X")
$ s.count()
$ s.saveAsTextFile("tachyon://localhost:19998/Y")

浏览器中看看 http://localhost:19999. 应该有一个输出文件Y包含 x 文件中一定数量单词 。放文件 X 放置到HDFS运行Spark shell:

如果你使用sbt 或者从别的框架类似使用sbt 方式触发Spark Job:

val conf = new SparkConf()
val sc = new SparkContext(conf)
sc.hadoopConfiguration.set("fs.tachyon.impl", "tachyon.hadoop.TFS")

如果你将 tachyon 结合 zookeeper 容错模式运行,Hadoop 集群是 1.x 集群,另外添加新条目前创建 spark/conf/core-site.xml :

<property>
    <name>fs.tachyon-ft.impl</name>
    <value>tachyon.hadoop.TFSFT</value>
</property>

添加以下内容在 spark/conf/spark-env.sh:

export SPARK_JAVA_OPTS="
  -Dtachyon.zookeeper.address=zookeeperHost1:2181,zookeeperHost2:2181
  -Dtachyon.usezookeeper=true
  $SPARK_JAVA_OPTS
"

将文件放入 HDFS中,当运行一个Spark Shell,你现在可以指向任何一个Tachyon master:

$ ./spark-shell
$ val s = sc.textFile("tachyon-ft://stanbyHost:19998/X")
$ s.count()
$ s.saveAsTextFile("tachyon-ft://activeHost:19998/Y")

持久化Spark RDDs 到 Tachyon

这个特性,你需要运行Spark(1.0 或以上)和 Tachyon(0.4.1 或以上)。请参考  Spark Doc 对这个功能的特性。你的Spark程序需要设置两个参数,spark.exernalBlockStore.url 和 spark.externalBlockStore.baseDir.externalBlockStore.url (默认情况下:tachyon://localhost:19998 ) 是Tachyon的文件系统中的TachyonStore的 URL地址。spark.externalBlockStore.baseDir(默认 java.io.tmpdir) 是Tachyon文件系统存储RDDs的基本目录。在Tachyon中可以以逗号分隔多个目录。为了持久化 RDD 到 Tachyon,你需要使用 StorageLevel.OFF_HEAP 参数,下面是以 Spark shell 的示例:


$ ./spark-shell
$ val rdd = sc.textFile(inputPath)
$ rdd.persist(StorageLevel.OFF_HEAP)


当Spark 应用正在运行,在Tachyon's WebUI 中看看 spark.externalBlockStore.baseDir (默认URI 是 http://localhost:19999)。应该有一堆文件;他们是RDD 数据块。 目前,当Spark应用运行完成这些文件将被清除掉。

你也可以使用Tachyon 作为Spark 应用的 输入 和 输出 源。上面的部分已经显示了指令。

© 著作权归作者所有

共有 人打赏支持
Ryan-瑞恩

Ryan-瑞恩

粉丝 152
博文 238
码字总数 184611
作品 0
西安
后端工程师
私信 提问
Spark(十二) -- Spark On Yarn & Spark as a Service & Spark On Tachyon

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq1010885678/article/details/46242143 Spark On Yarn: 从0.6.0版本其,就可以在在Yarn上运行Spark 通过Yar...

jchubby
2015/05/29
0
0
Tachyon:Spark生态系统中的分布式内存文件系统

Tachyon是Spark生态系统内快速崛起的一个新项目。 本质上, Tachyon是个分布式的内存文件系统, 它在减轻Spark内存压力的同时,也赋予了Spark内存快速大量数据读写的能力。Tachyon把内存存储...

cloud-coder
2015/07/07
0
0
【互动问答分享】第13期决胜云计算大数据时代Spark亚太研究院公益大讲堂

“决胜云计算大数据时代” Spark亚太研究院100期公益大讲堂 【第13期互动问答分享】 Q1:tachyon+spark框架现在有很多大公司在使用吧? Yahoo!已经在长期大规模使用; 国内也有公司在使用; ...

Spark亚太研究院
2014/09/24
0
0
A16Z 750万美元投资分布式文件系统 Tachyon

据 WSJ消息,Tachyon日前获得了硅谷风投 A16Z 750 万美元 A 轮投资。A16Z 的普通合伙人 Peter Levine 加入 Tachyon 董事会。 根据该项目官网的介绍,Tachyon 是一个以内存为中心的分布式文件...

oschina
2015/03/19
2.2K
3
Apache Spark 0.9.1 发布,集群计算环境

Apache Spark 0.9.1 发布,这是一个维护版本,主要是 bug 修复、性能提升以及 YARN 的稳定性提升。 下载地址:http://d3kbcqa49mib13.cloudfront.net/spark-0.9.1.tgz Spark 是一种与 Hadoop...

oschina
2014/04/19
2.5K
4

没有更多内容

加载失败,请刷新页面

加载更多

StringRedisTemplate的使用

《如何使用RedisTemplate访问Redis数据结构》

yan_liu
26分钟前
2
0
好程序员大数据教程Hadoop全分布安装(非HA)

  机器名称 启动服务   linux11 namenode secondrynamenode datanode   linux12 datanode   linux13 datanode   第一步:更改主机名,临时修改+永久修改   临时修改:hostname ...

好程序员IT
30分钟前
0
0
案例:通过shell脚本实现mysql数据备份与清理

Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行,实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核,不仅...

Linux就该这么学
35分钟前
4
0
springmvc源码解析之@EnableWebMvc五

说在前面 本次主要介绍springmvc配置解析。关注“天河聊架构”微信公众号有更多精彩。 springmvc配置解析 @EnableWebMvc这个注解干了什么,初始化HandlerExceptionResolver 进入到这个方法o...

天河2018
36分钟前
1
0
开源 java CMS - FreeCMS2.8 数据对象 user

项目地址:http://www.freeteam.cn/ user 在使用用户相关标签时,标签会封装user供页面调用。 属性 说明 id id ismail 是否接收互动信件 name 名称 unitNames 所属单位名称,多个之间用;号分...

freeteam
44分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部