整合 Tachyon 运行Shark
前提是已经有 Shark , 我们也假设你已经安装了 Tachyon 和 Hadoop 根据 or 。
Shark 0.7 增加了一个新的存储格式支持从 Tachyon 高效率读取数据,这使得在 Shark 实例间数据共享和隔离。我们的聚会幻灯片()给出了使用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,在 or in , 及 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中创建这个表,你可以像其他表那样查询它。