博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《Spark Cookbook 中文版》一1.8 使用Tachyon作为堆外存储层
阅读量:6575 次
发布时间:2019-06-24

本文共 2519 字,大约阅读时间需要 8 分钟。

本节书摘来异步社区《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
.zip

2.解压源代码。

$ unzip  v-
.zip

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

$ mv tachyon-
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 
fs.tachyon.impl
tachyon.hadoop.TFS
$ 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 asRamFS needs to be formatted

Tachyon的网页端口是,如图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)

转载地址:http://ohmjo.baihongyu.com/

你可能感兴趣的文章
新技术将让硬盘密度再提五倍
查看>>
PMC联手云合作伙伴Canonical加入其Ubuntu OpenStack互通性实验室
查看>>
物联网还是泄秘网?嗅探流量即可知用户动向
查看>>
顺势而为,戴尔加速流动文件系统进化
查看>>
关于视频监控线缆的常识
查看>>
美国科技投资交易约4.1%来自中国 投资仍然很困难
查看>>
维基解密:科技公司获得安全漏洞信息须答应几个条件
查看>>
两化融合:唐山探路重工业城市智慧转型
查看>>
大数据将植物学研究带入新境界
查看>>
网络分解的时代即将到来,云服务商正在铺路 | 分析师洞察
查看>>
探索测试探索思路
查看>>
Mysql数据库远程授权
查看>>
测试设备商泰瑞达Q3净利6379万 同比减10.72%
查看>>
如何在Ubuntu 13.04, 13.10上安装Sublime Text 3
查看>>
C++语言基础 例程 派生类的声明与构成
查看>>
时间都去哪了?BPC电波授时信号的“零成本”伪造
查看>>
大数据workshop:《云数据·大计算:海量日志数据分析与应用》之《社交数据分析:好友推荐》篇...
查看>>
Python的类方法
查看>>
吐槽一下J2Cache
查看>>
PHP的语言构造器
查看>>