Ubuntu 15.10 下Tachyon安装
1 系统环境
Ubuntu 15.10, Java 1.7, Hadoop 2.6.0 HA, Spark-1.4.0
三台机器
spark-1423-0001: Master, Worker
spark-1423-0002: Master, Worker
spark-1423-0003: Worker
2 tachyon下载地址
源码:https://github.com/Alluxio/alluxio
可执行文件:https://github.com/Alluxio/alluxio/releases
我下载的是0.7.0:https://github.com/amplab/tachyon/archive/v0.7.0.zip
自己用Maven编译,当然也可以使用官网编译好的。
mvn -Dhadoop.version=2.6. clean package -DskipTests=true
因为Spark-1.4.0中已经集成了Tachyon(0.6.*),所以这里使用Tachyon-0.7.0是没有问题的。
3 修改配置文件
下面的配置都是在spark-1423-001上进行的。
3.1 修改tachyon-env.sh
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64 if [[ `uname -a` == Darwin* ]]; then
# Assuming Mac OS X
export JAVA_HOME=${JAVA_HOME:-$(/usr/libexec/java_home)}
export TACHYON_RAM_FOLDER=/Volumes/ramdisk
export TACHYON_JAVA_OPTS="-Djava.security.krb5.realm= -Djava.security.krb5.kdc="
else
# Assuming Linux
if [ -z "$JAVA_HOME" ]; then
if [ -d /usr/lib/jvm/java--oracle ]; then
export JAVA_HOME=/usr/lib/jvm/java--oracle
else
# openjdk will set this
if [ -d /usr/lib/jvm/jre-1.7. ]; then
export JAVA_HOME=/usr/lib/jvm/jre-1.7.
fi
fi
fi
export TACHYON_RAM_FOLDER=/mnt/ramdisk
fi if [ -z "$JAVA_HOME" ]; then
export JAVA_HOME="$(dirname $(which java))/.."
fi export JAVA="$JAVA_HOME/bin/java"
export TACHYON_MASTER_ADDRESS=spark-1423-0001
export TACHYON_UNDERFS_ADDRESS=hdfs://hadoop-cluster
#export TACHYON_UNDERFS_ADDRESS=hdfs://localhost:9000
export TACHYON_WORKER_MEMORY_SIZE=10GB
export TACHYON_UNDERFS_HDFS_IMPL=org.apache.hadoop.hdfs.DistributedFileSystem
export TACHYON_WORKER_MAX_WORKER_THREADS=
export TACHYON_MASTER_MAX_WORKER_THREADS= export TACHYON_SSH_FOREGROUND="yes"
export TACHYON_WORKER_SLEEP="0.02" # Prepend Tachyon classes before classes specified by TACHYON_CLASSPATH
# in the Java classpath. May be necessary if there are jar conflicts
#export TACHYON_PREPEND_TACHYON_CLASSES="yes" # Where log files are stored. $TACHYON_HOME/logs by default.
#export TACHYON_LOGS_DIR=$TACHYON_HOME/logs CONF_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" export TACHYON_JAVA_OPTS+="
-Dlog4j.configuration=file:$CONF_DIR/log4j.properties
-Dtachyon.debug=false
-Dtachyon.worker.tieredstore.level.max=1
-Dtachyon.worker.tieredstore.level0.alias=MEM
-Dtachyon.worker.tieredstore.level0.dirs.path=$TACHYON_RAM_FOLDER
-Dtachyon.worker.tieredstore.level0.dirs.quota=$TACHYON_WORKER_MEMORY_SIZE
-Dtachyon.underfs.address=$TACHYON_UNDERFS_ADDRESS
-Dtachyon.underfs.hdfs.impl=$TACHYON_UNDERFS_HDFS_IMPL
-Dtachyon.data.folder=$TACHYON_UNDERFS_ADDRESS/tmp/tachyon/data
-Dtachyon.worker.max.worker.threads=$TACHYON_WORKER_MAX_WORKER_THREADS
-Dtachyon.workers.folder=$TACHYON_UNDERFS_ADDRESS/tmp/tachyon/workers
-Dtachyon.worker.memory.size=$TACHYON_WORKER_MEMORY_SIZE
-Dtachyon.worker.data.folder=/tachyonworker/
-Dtachyon.master.max.worker.threads=$TACHYON_MASTER_MAX_WORKER_THREADS
-Dtachyon.master.worker.timeout.ms=60000
-Dtachyon.master.hostname=$TACHYON_MASTER_ADDRESS
-Dtachyon.master.journal.folder=$TACHYON_UNDERFS_ADDRESS/tachyon/journal/
-Dorg.apache.jasper.compiler.disablejsr199=true
-Djava.net.preferIPv4Stack=true
-Dtachyon.usezookeeper=true
-Dtachyon.zookeeper.address=spark-1421-0000:2181,spark-1421-0003:2181,spark-1421-0004:2181,spark-1421-0005:2181,spark-1421-0006:2181
" # Master specific parameters. Default to TACHYON_JAVA_OPTS.
export TACHYON_MASTER_JAVA_OPTS="$TACHYON_JAVA_OPTS" # Worker specific parameters that will be shared to all workers. Default to TACHYON_JAVA_OPTS.
export TACHYON_WORKER_JAVA_OPTS="$TACHYON_JAVA_OPTS"
这里需要设置Master IP,Hadoop 地址,我这里Hadoop是高可用的
3.2 修改Worker
spark-1423-0001
spark-1423-0002
spark-1423-0003
配置完成之后,将Tachyon分发到Spark-1421-0002,spark-1423-0003,同时修改spark-1423-0002 tachyon-env.sh中的MasterIP,其他不变
4 系统启动
下面的操作都是在spark-1423-0001上进行的,首次启动前需要格式化
tachyon format
然后启动
tachyon-start.sh all SudoMount
启动Tachyon有了更多的选项:
l./tachyon-start.sh all Mount在启动前自动挂载TachyonWorker所使用的RamFS,然后启动TachyonMaster和所有TachyonWorker。由于直接使用mount命令,所以需要用户为root;
l./tachyon-start.sh all SudoMount在启动前自动挂载TachyonWorker所使用的RamFS,然后启动TachyonMaster和所有TachyonWorker。由于使用sudo mount命令,所以需要用户有sudo权限;
l./tachyon-start.sh all NoMount认为RamFS已经挂载好,不执行挂载操作,只启动TachyonMaster和所有TachyonWorker
因此,如果不想每次启动Tachyon都挂载一次RamFS,可以先使用命令./tachyon-mount.sh Mount workers 或./tachyon-mount.sh SudoMount workers挂载好所有RamFS,然后使用./tachyon-start.sh all NoMount 命令启动Tachyon。
单机和集群式模式的区别就在于节点配置和启动步骤,事实上,也可以在集群模式下只设置一个TachyonWorker,此时就成为伪分布模式。
因为Tachyon设置了高可用,那么在spark-1423-002上需要启动Master
./tachyon-start.sh master
启动之后可以在:http://spark-1423-0001:19999上面看到Tachyon的启动情况
为了验证高可用,可以将spark-1423-0001中的Master进程杀死,系统会自行进行切换,大概需要花15秒
5 Spark on Tachyon
5.1 首先需要在SPARK_HOME/conf中新建core-site.xml,内容如下:
<configuration>
<property>
<name>fs.tachyon-ft.impl</name>
<value>tachyon.hadoop.TFSFT</value>
</property>
</configuration>
5.2 修改spark_env.conf,添加如下内容:
export SPARK_JAVA_OPTS="
-Dtachyon.zookeeper.address=spark--:,spark--:,spark--:,spark--:,spark--:
-Dtachyon.usezookeeper=true
$SPARK_JAVA_OPTS"
5.3 spark-shell中测试:
val s = sc.textFile("tachyon-ft://spark-1423-0001:19999/X")
s.count()
s.saveAsTextFile("tachyon-ft://spark-1423-0002:19999/Y")
这里需要注意一点,Tachyon读取文件的顺序是先从本机内存中读取,如果本机内存中没有,Tachyon会从集群中其他Worker节点中寻找,如果集群中Worker节点内存中也没有,那么Tachyon会从UnderFS中寻找,例如HDFS中。
在使用Spark-shell测试时,如果是用的Local模式,那么tachyon-ft://spark-1423-0002:19998 只能读取本机内存中的数据,Tachyon集群其他节点中内存的数据都读不到,HDFS中的数据也是读不到。
6 参考文献
http://www.cnblogs.com/shishanyuan/p/4775400.html
http://www.sxt.cn/u/756/blog/5410
http://www.tachyonproject.org/documentation/v0.7.1/Running-Spark-on-Tachyon.html
Ubuntu 15.10 下Tachyon安装的更多相关文章
- Ubuntu 15.10下droidbox安装使用
DroidBox是一个动态分析Android代码的的分析工具.其目前的安装环境为:Linux/Unix/MacOSX 下面是安装步骤 一. 安装Android SDK 并添加环境变量 export P ...
- Ubuntu 15.10 下Redis Cluster使用
1 Redis Standalone安装 可以参考这篇博文:http://www.cnblogs.com/_popc/p/3684835.html 2 Redis Cluster安装 2.1 环境介绍 ...
- Ubuntu 14.10 下DokuWiki安装
环境说明: Ubuntu 14.10 64位 1 下载DokuWiki:http://download.dokuwiki.org/ 2 解压到 /var/www/html下面 3 如果没有安装Apac ...
- Ubuntu 15.10下Qt5的安装实战
写照篇博客的目的就是因为最近要使用Qt,但是由于本人的系统是Ubuntu的,而网上大部分的讲解全是基于Windows的,所以就花费一些时间总结了一下我的安装过程,当然也是也为了能帮助到更多的博友. 第 ...
- Ubuntu 15.10下的WebStorm-11.0.3完美破解
由于最新的JetBrains 发布了最新版本的IntelliJ IDEA的各个版本,而且更换了注册机的使用方式,这就导致了之前对WebStorm的破解方法不能在使用了.所以我们就必须另寻他法咯.如题, ...
- Ubuntu 15.10 下Scala 操作Redis Cluster
1 前言 Redis Standalone,Redis Cluster的安装在前面介绍过,地址:http://www.cnblogs.com/liuchangchun/p/5063477.html,这 ...
- Ubuntu 14.10 下Eclipse安装Hadoop插件
准备环境 1 安装好了Hadoop,之前安装了Hadoop 2.5.0,安装参考http://www.cnblogs.com/liuchangchun/p/4097286.html 2 安装Eclip ...
- Ubuntu 15.04 下apt-get安装JDK
[From] http://blog.csdn.net/skykingf/article/details/45250017 1.删除自带的OpenJDK [python] view plain cop ...
- 求助下 Ubuntu 15.10(64 位)下安装 pyspider 下的问题 - V2EX
https://www.v2ex.com/t/279405 求助下 Ubuntu 15.10(64 位)下安装 pyspider 下的问题 - V2EX pip 更新到最新 sudo apt inst ...
随机推荐
- 汉化DevExpress
现在的DevExpress组件包提供了TcxLocalizer,拖一个放到Form上. 然后设置相关的属性: 即可完成汉化了!怎么样,够简单!!! 需要DevChs.ini文件的朋友,点击链接加入群聊 ...
- Java学习笔记(3)
1.Math类提供三类方法 三角函数 sin(radians) 返回弧度的正弦值 cos(radians) 返回弧度的余弦值 tan(radians) 返回弧度的正切值(余切求倒数即可) ...
- c# 在.NET使用Newtonsoft.Json转换,读取,写入json
转自:http://blog.sina.com.cn/s/blog_70686f3a0101kemg.html 首先,大家要明白什么是json,了解更多关于json方面资料大家可以点击https:/ ...
- linux Posix线程同步(条件变量) 实例
条件变量:与互斥量一起使用,暂时申请不到某资源时进入条件阻塞等待,当资源具备时线程恢复运行 应用场合:生产线程不断的生产资源,并通知产生资源的条件,消费线程在没有资源情况下进入条件等待,一直等到条件信 ...
- 数学paper写作注意事项
[转载请注明出处]http://www.cnblogs.com/mashiqi 2019/03/20 Introduction一定要好好写,写好后要至少读一遍,保证流畅.editor会读introdu ...
- word中编辑论文公式对齐问题
这里只说在word中编辑公式时,公式居中,编号右对齐的情况. 在编辑公式时,我平时就是右对齐,然后通过敲击空格键进行公式的居中,然而这样并不美观.所以接下来学习一下: 1)首先打开视图-->标尺 ...
- 2.8 break和continue
一.区别: break:终止整个循环. continue:中止一次循环,进入下一次循环. 1.1 break: public class Test14{ public static void main ...
- sql执行内部操作期间检测到不一致性解决方案
解决方法:重启下SQL服务,把下面脚本运行即可.运行后,坏掉的数据库可能会丢失. --mydb 为坏了的数据库名--mytable 为坏了的据库表--master 这里不需要更改 use mydb ...
- 《构建之法》chapter5,6 读书心得
<构建之法>第五章用体育运动等团队例子引出软件开发团队的形式,用更加生活化.形象化的例子让读者更能理解软件开发团队的形式.软件团队形式多样,适用于不同的人员与需求.团队可能会演变的模式有: ...
- Javascript 3.3 编写DOM脚本的四个基本方法
id属性的用途是给某个元素加上独一无二的标识符,搭配"#"使用 class搭配"."使用 getElementById()方法:方法名称的大小写不能写错,方法将 ...