开发者社区> 异步社区> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

《Spark Cookbook 中文版》一1.8 使用Tachyon作为堆外存储层

简介:
+关注继续查看

本节书摘来异步社区《Spark Cookbook 中文版》一书中的第1章,第1.8节,作者: 【印度】Rishi Yadav(亚达夫)译者: 顾星竹 , 刘见康 责编: 胡俊英,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.8 使用Tachyon作为堆外存储层

Spark弹性分布式数据集(RDD)很适合在内存上存储数据集,可以在不同应用上存储大量备份。Tachyon可以解决Spark RDD管理的一些挑战性问题,如下所示。

RDD仅存在于Spark应用期间。
计算程序和RDD内存存储共享同样的执行过程;所以,如果一个进程崩溃了,那么内存存储也会消失。
即使处理同样的底层数据,不同作业的RDD是不能共享的,例如使用HDFS数据块。
慢速写入磁盘。
在内存中备份数据,更高的内存占用。
如果需要与其他应用程序共享输出,由于需要磁盘复制速度会非常慢。
Tachyon提供了堆外存储层来解决这些问题。该层(即堆外存储层)不受进程崩溃的影响也不会被垃圾回收器标记,同时也可以让RDD独立于特定的作业或对话之上实现跨应用共享。本质上,数据的一个存储在内存上的单一副本如图1-13所示。


13

1.8.1 具体步骤

1.下载并编译Tachyon(在默认情况下Tachyon配置的Hadoop版本为1.0.4,所以需要从源代码编译,选择正确的Hadoop版本)。替换当前版本,本书所写是版本为0.6.4。

$ wget https://github.com/amplab/tachyon/archive/v<version>.zip

2.解压源代码。

$ unzip  v-<version>.zip

3.为了方便,重命名Tachyon源文件名。

$ mv tachyon-<version> tachyon

4.修改Tachyon文件夹目录。

$ cd tachyon 
   $ mvn -Dhadoop.version=2.4.0 clean package -DskipTests=true
   $ cdconf
   $ sudo mkdir -p /var/tachyon/journal
   $ sudo chown -R hduser:hduser /var/tachyon/journal
   $ sudo mkdir -p /var/tachyon/ramdisk
   $ sudo chown -R hduser:hduser /var/tachyon/ramdisk

   $ mv tachyon-env.sh.template tachyon-env.sh
   $ vi tachyon-env.sh

5.注释下面这行。

export TACHYON_UNDERFS_ADDRESS=$TACHYON_HOME/underfs

6.去掉下面这行前面的注释。

export TACHYON_UNDERFS_ADDRESS=hdfs://localhost:9000

7.修改以下属性。

-Dtachyon.master.journal.folder=/var/tachyon/journal/

   export TACHYON_RAM_FOLDER=/var/tachyon/ramdisk    

   $ sudo mkdir -p /var/log/tachyon
   $ sudo chown -R hduser:hduser /var/log/tachyon
   $ vi log4j.properties

8.用/var/log/tachyon替换${tachyon.home}。

9.在conf目录下创建新文件core-site.xml。

$ sudo vi core-site.xml
 <configuration>
 <property>
     <name>fs.tachyon.impl</name>
     <value>tachyon.hadoop.TFS</value>
   </property>
 </configuration>
 $ cd ~
 $ sudo mv tachyon /opt/infoobjects/
 $ sudochown -R root:root /opt/infoobjects/tachyon
 $ sudochmod -R 755 /opt/infoobjects/tachyon

10.将< tachyon home>/bin加入路径。

$ echo "export PATH=$PATH:/opt/infoobjects/tachyon/bin" >> /home/
hduser/.bashrc

11.重启shell并格式化Tachyon。

$ tachyon format
$ tachyon-start.sh local //you need to enter root password as
RamFS needs to be formatted

Tachyon的网页端口是http://hostname:19998,如图1-14所示。


14

12.运行以下程序观测Tachyon是否运行良好,如图1-15所示。


15

13.以下命令可以随时停止Tachyon。

$ tachyon-stop.sh

14.在Spark上运行Tachyon。

$ spark-shell
    scala> val words = sc.textFile("tachyon://localhost:19998/words")
    scala> words.count
    scala> words.saveAsTextFile("tachyon://localhost:19998/w2")
    scala> val person = sc.textFile("hdfs://localhost:9000/user/
    hduser/person")
    scala> import org.apache.spark.api.java._
    scala> person.persist(StorageLevels.OFF_HEAP)

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
《Spark与Hadoop大数据分析》——3.4 Spark 应用程序
本节书摘来自华章计算机《Spark与Hadoop大数据分析》一书中的第3章,第3.4节,作者 [美]文卡特·安卡姆(Venkat Ankam),译 吴今朝,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1211 0
Spark应用(app jar)发布到Hadoop集群的过程
记录了Spark,Hadoop集群的开启,关闭,以及Spark应用提交到Hadoop集群的过程,通过web端监控运行状态。 1.绝对路径开启集群 (每次集群重启,默认配置的hadoop集群中tmp文件被清空所以需要重新format) 我的集群安装位置是/opt/hadoop下,可以根据自己路径修改。 /opt/hadoop/bin/hdfs namenode -f
1227 0
Spark-基础-Spark编译与部署--Hadoop编译安装
1、编译Hadooop 1.1 搭建环境 1.1.1 安装并设置maven 1. 下载maven安装包,建议安装3.0以上版本,本次安装选择的是maven3.
1053 0
Spark学习之Hadoop安装与测试
Spark是跑在Hadoop上(依赖YARN和HDFS)的内存计算引擎,内置了多种丰富组件如Spark SQL、Spark Stream等,是大数据分析挖掘的一种技术趋势。本文为学习Spark技术的第一篇日志,主要记录了Hadoop环境的搭建、安装与测试。 资源准备 操作系统:CentOS 7 ;JDK:1.7;Hadoop版本:hadoop-2.6.0.tar.gz(使用编译好的
1616 0
+关注
异步社区
异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
12049
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载