Spark集群下部署Tachyon-0.8.2

1. 简介

Tachyon是一个分布式内存文件系统,可以在集群里以访问内存的速度来访问存在tachyon里的文件。Tachyon是架构在最底层的分布式文件存储和上层的各种计算框架之间的一种中间件。主要职责是将那些不需要落地到DFS里的文件,落地到分布式内存文件系统中,来达到共享内存,从而提高效率。同时可以减少内存冗余,GC时间等。当前最新版本为1.0.0,并且改名为Alluxio。

2. 运行环境

在已搭建好的Hadoop2.6.4+Spark-1.6.0集群上部署Tachyon。

版本信息:

  • JDK:1.8.0_74 64位
  • Hadoop:2.6.4
  • Scala:2.12.0-M3
  • Spark:1.6.0
  • Tachyon: 0.8.2

3. 安装

下载tachyon-0.8.2-hadoop2.6-bin.tar.gz,解压缩到/home/hadoop/目录下。

4. 配置

4.1 slavers

在$TACHYON_HOME/conf目录下的workers节点添加各个从节点hadoop2,hadoop3…

4.2 tachyon-env.sh

在$TACHYON_HOME/conf目录下把tachyon-env.sh.template复制为tachyon-env.sh,在这里需要修改TachyonMaster地址及底层文件系统路径。

export JAVA_HOME=/home/hadoop/java/jdk1.8.0_74  
export JAVA="$JAVA_HOME/bin/java"  
export TACHYON_MASTER_ADDRESS=hadoop1  
export TACHYON_UNDERFS_ADDRESS=hdfs://hadoop1:9000  

5. 分发Tachyon

scp -r /home/hadoop/tachyon-0.8.2 hadoop@hadoop2:/home/hadoop/

6. 启动Tachyon

6.1 启动HDFS

hadoop-2.6.4/sbin/start-dfs.sh

6.2 格式化Tachyon

bin/tachyon format

6.3 启动Tachyon

bin/tachyon-start.sh all SudoMount 

6.4 验证

JPS  
TachyonMaster  
TachyonWorker

6.5 Web UI

http://hadoop1:19999

7. Tachyon上运行Spark

7.1 core-site.xml

在$SPARK_HOME/conf目录下新建core-site.xml,添加内容,并分发到各个从节点

<configuration>   
  <property>   
    <name>fs.tachyon.impl</name>   
    <value>tachyon.hadoop.TFS</value>   
  </property>   
</configuration>  

7.2 启动Spark集群

sbin/start-all.sh 

7.3 测试

  1. 使用Tachyon命令行准备测试数据文件

    cd /home/hadoop/tachyon-0.8.2/bin   
    ./tachyon tfs copyFromLocal /localdata /tachyoninput  
    ./tachyon tfs ls / 
    
  2. 启动Spark-shell

    bin/spark-shell  
    
  3. 对测试数据文件进行计数并另存为

    scala>val s = sc.textFile("tachyon://hadoop1:19998/tachyoninput")   
    scala>s.count()  
    scala>s.saveAsTextFile("tachyon://hadoop1:19998/outputdata")