整合 Tachyon 运行Shark(译)

整合 Tachyon 运行Shark

前提是已经有 Shark , 我们也假设你已经安装了 Tachyon 和 Hadoop  根据  Local Mode or  Cluster Mode。

Shark 0.7 增加了一个新的存储格式支持从 Tachyon 高效率读取数据,这使得在 Shark 实例间数据共享和隔离。我们的聚会幻灯片(slide)给出了使用Tachyon 缓存 Shark's 表的好处一个很好的概述。总之,以下四个是主要的:

  • 内存中的数据共享多个 Shark 实例 (即:加强隔离)

  • 即时恢复内存中的表

  • 减少 Shark 的堆大小导致的频繁GC 问题

  • 如果表的大小超出了可用内存总数,只有常用列会被缓存在内存中(译者注:根据使用频率缓存)

Shark 兼容性

Tachyon 版本 Shark 版本
0.2.1 0.7.x
0.3.0 0.8.1
0.4.0 0.9.0
0.4.1 0.9.1 +
0.5.0 0.9.1 +

配置

为了基于Tachyon运行 Shark,首先需要配置Tachyon,在 Local Mode or in Cluster Mode, 及 HDFS 。

然后添加以下行内容在 shark-env.sh:

export TACHYON_MASTER="tachyon://TachyonMasterHost:TachyonMasterPort" export TACHYON_WAREHOUSE_PATH=/sharktables

缓存 Shark tables 到 Tachyon

组合方式在Tachyon 上创建缓存表,运行这些查询需要一些数据已经在 文件系统 或加载到 Shark。

指定 TBLPROPERTIES(“shark.cache” = “tachyon”), 示例:
CREATE TABLE data TBLPROPERTIES(“shark.cache” = “tachyon”) AS SELECT a, b, c from data_on_disk WHERE month=“May”;
指定表名字必须以 _tachyon 结尾,示例:

CREATE TABLE orders_tachyon AS SELECT * FROM orders;

之后再Tachyon中创建这个表,你可以像其他表那样查询它。

你可能感兴趣的:(Tachyon)