閱讀83 返回首頁    go 魔獸


Tachyon簡介及目前可用性分析

簡介

翻譯tachyon wiki上的介紹

Tachyon是一個高容錯的分布式文件係統,允許文件以內存的速度在集群框架中進行可靠的共享,就像Spark和 MapReduce那樣。通過利用信息繼承,內存侵入,Tachyon獲得了高性能。Tachyon工作集文件緩存在內存中,並且讓不同的 Jobs/Queries以及框架都能內存的速度來訪問緩存文件”。因此,Tachyon可以減少那些需要經常使用的數據集通過訪問磁盤來獲得的次數。


使用

鑒於Tachyon也是AMP實驗室開發的項目,屬Spark整個生態環境裏的一部分,原本打算嚐試讓Spark/Shark在Tachyon上跑,看看速度/性能有沒有一些提升。


Tachyon目前發布的release版本是0.2的,支持CDH3。支持CDH4的tachyon-0.3版本還未發布,不過可以在0.3-branch上下載到,需要自己編譯打包,依賴的jdk是1.7的。想要部署cluster,讓Spark和Shark在上麵跑的話,可以參考下麵幾份wiki,

https://github.com/amplab/tachyon/wiki/Running-Tachyon-on-a-Cluster
https://github.com/amplab/tachyon/wiki/Running-Spark-on-Tachyon
https://github.com/amplab/tachyon/wiki/Running-Shark-on-Tachyon
部署和使用還是很方便的,可以用

./start.sh SudoMount
啟動master和所有workers,然後在webui上看到worker情況以及FileSystem內已經存儲的文件情況。

./run-tests.sh
測試文件裏,寫死了$MASTER_ADDRESS的端口,如果在/conf/tachyon-env.sh裏修改了端口的話,需要保持一致。


可用性

最近新發布的shark-0.8,發布的pre-built版本是默認不支持tachyon的,因為shark-0.8的標配是spark-0.8,scala-2.9.3和cdh4,而tachyon的支持cdh4的0.3版本如上所述還未正式發布,所以我在shark-0.8上基於tachyon create table的時候,提示版本不支持。具體在SharkBuild.scala裏可以看到編譯的時候沒有enable:

// Shark version
  val SHARK_VERSION = "0.8.0"

  val SPARK_VERSION = "0.8.0-incubating"

  val SCALA_VERSION = "2.9.3"

  // Hadoop version to build against. For example, "0.20.2", "0.20.205.0", or
  // "1.0.1" for Apache releases, or "0.20.2-cdh3u3" for Cloudera Hadoop.
  val DEFAULT_HADOOP_VERSION = "1.0.4"

  lazy val hadoopVersion = env("SHARK_HADOOP_VERSION") orElse
                           env("SPARK_HADOOP_VERSION") getOrElse
                           DEFAULT_HADOOP_VERSION

  // Whether to build Shark with Yarn support
  val YARN_ENABLED = env("SHARK_YARN").getOrElse("false").toBoolean

  // Whether to build Shark with Tachyon jar.
  val TACHYON_ENABLED = false
另一方麵,我用shark-0.7跑的時候,會出一些奇怪的問題,在google的tachyon user上看了相關帖子,很多問題和bug都說會在0.3或者future release中解決,覺得tachyon還不夠成熟和穩定,暫時還不敢繼續嚐試使用。至少等到0.3正式發布,再觀望一下情況。

最後更新:2017-04-03 14:53:50

  上一篇:go Struts2中的<s:action>標簽
  下一篇:go Linux 常用C函數(中文版)