zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

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

存储Spark 中文版 作为 1.8 Cookbook 使用
2023-09-11 14:17:46 时间

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

7月31日Spark钉钉群直播【Apache Spark 在存储计算分离趋势下的数据缓存】 在数据上云的大背景下,存储计算分离逐渐成为了大数据处理的一大趋势,计算引擎需要通过网络读写远端的数据,很多情况下 IO 成为了整个计算任务的瓶颈,因而数据缓存成为此类场景下的一个重要的优化手段。本次分享将介绍 Spark 在数据缓存上的一些做法,并将介绍 EMR 自研的 Jindo 存储系统在数据缓存上的应用。
Spark in action on Kubernetes - 存储篇(一) 在上篇文章中,我们分析了Spark Operator内部的机制,今天我们会讨论一个在大数据领域中最重要的话题 - 存储。大数据已经无声无息的融入了每个人的生活中。大到旅游买房,小到外卖打车,都可以看到通过大数据提供数据分析、数据推荐、数据决策的使用场景。
《Spark Cookbook 中文版》一导读 随着Hadoop这个大数据平台的成功,用户的期望也水涨船高,他们既希望解决不同分析问题的功能提高,又希望减少延迟。由此,各类工具应运而生。Apache Spark这个可以解决所有问题的单一平台也出现在了Hadoop的大舞台上。
异步社区 异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。