tachyon、spark、hdfs集群整合

一、环境

spark 2.0.1
hadoop 2.7.1
tachyon 0.8.2

二、原理及参考文档

1.Spark入门实战系列--10.分布式内存文件系统Tachyon介绍及安装部署
2.Tachyon--Spark 缺省的 off-heap 内存框架
3.在Tachyon运行spark应用程序
4.《SPARK/TACHYON:基于内存的分布式存储系统》-史鸣飞(英特尔亚太研发有限公司大数据软件部工程师)
5.Tachyon 项目官方网站

三、安装搭建tachyon集群

1.下载tachyon

官网上下载最新版本tachyon-0.8.2-bin.tar.gz

2.master上/home/cms下安装tachyon
tar xvfz tachyon-0.8.2-bin.tar.gz
3.conf创建配置文件,并配置
cp tachyon-env.sh.template tachyon-env.sh

修改配置文件

export JAVA="${JAVA_HOME}/bin/java"
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export TACHYON_MASTER_ADDRESS=master
export HADOOP_HOME=$HOME/hadoop-2.7.1
export TACHYON_UNDERFS_ADDRESS=hdfs://master:9000
#export TACHYON_UNDERFS_ADDRESS=${TACHYON_UNDERFS_ADDRESS:-hdfs://localhost:9000}
export TACHYON_WORKER_MEMORY_SIZE=0.5GB
JAVA_HOME:系统中java的安装路径
TACHYON_MASTER_ADDRESS:启动TachyonMaster的地址,默认为localhost,所以在单机模式下不用更改
TACHYON_UNDERFS_ADDRESS:Tachyon使用的底层文件系统的路径,在单机模式下可以直接使用本地文件系统,如"/tmp/tachyon",也可以使用HDFS,如"hdfs://ip:port"
TACHYON_WORKER_MEMORY_SIZE:每个TachyonWorker使用的RamFS大小
```
#####4.在workers下添加work节点机器名
```
master
slave1
slave2
```
#####5.配置环境变量
/etc/profile
```
export TACHYON_HOME=$HOME/tachyon-0.8.2
path=$TACHYON_HOME/bin:$PATH
```
```
source /etc/profile
```
#####6.向slave1,slave2复制tachyon-0.8.2文件
```
sudo scp -r tachyon-0.8.2 cms@slave1:/home/cms/
sudo scp -r tachyon-0.8.2 cms@slave2:/home/cms/
```
#####7.配置slave1,slave2的环境变量
####四、测试tachyon集群
#####1.启动hdfs
```
start-all.sh
```
#####2.格式化tachyon
```
tachyon format
```
#####3.启动tachyon集群
```
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

#####4.验证启动
jps,没有TachyonWorker和TachyonMaster进程
查找tachyon-0.8.2下的logs
master.log
报个一个错
```
Exception thrown when trying to get FileSystem for hdfs://master:9000
org.apache.hadoop.ipc.RemoteException: Server IPC version 9 cannot communicate with client version 4
```
查看官网 当前的tachyon 0.8的版本与hadoop 2.7.1版本不兼容
解决办法:mvn 重新编译

![](http://upload-images.jianshu.io/upload_images/1908836-fabc76d9b4810191.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
方法一:
将```${ALLUXIO_HOME}/pom.xm```l中的```<hadoop.version>1.4.0</hadoop.version>```改为```<hadoop.version>2.7.1</hadoop.version>```
然后执行:
```
 mvn clean package -DskipTests
```
方法二:
```
mvn -Dhadoop.version=2.7.1 clean package -DskipTests
```
此过程需要的时间非常漫长。。。
重新format 然后启动 然后 jps
master:

![](http://upload-images.jianshu.io/upload_images/1908836-7f91333d5d3ab9eb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
slave:

![](http://upload-images.jianshu.io/upload_images/1908836-3a294ea427ae2e07.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

![](http://upload-images.jianshu.io/upload_images/1908836-162095b49870339e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
可以在浏览器内打开Tachyon的WebUI,如 http://hadoop1:19999,查看整个Tachyon的状态,各个TachyonWorker的运行情况、各项配置信息和浏览文件系统等。

![](http://upload-images.jianshu.io/upload_images/1908836-ecaf89e2055e79ce.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

![](http://upload-images.jianshu.io/upload_images/1908836-2800d3bb587fdf18.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
####五、tachyon命令行的使用
例如
```tachyon tfs mkdir /tmp```

![](http://upload-images.jianshu.io/upload_images/1908836-09fb21ff1a0526f7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
####六、在Tachyon运行spark
#####1.添加core-site.xml
具体操作是在$SPARK_HOME/conf目录下创建core-site.xml文件
```
$cd /app/hadoop/spark-1.1.0/conf
$touch core-site.xml
$vi core-site.xml
```
在该配置文件中添加如下内容:
```
<configuration>
  <property>
    <name>fs.tachyon.impl</name>
    <value>tachyon.hadoop.TFS</value>
  </property>
</configuration>
```
#####2.启动spark集群
#####3.准备文件
现在在hdfs先上传一个文件
```
hadoop fs -put u.data tmp/ml-100k/u.data
```
这个时候,可以通过tachyon来获取u.data文件
#####4.代码 tatest.py
```
from pyspark import SparkContext, SparkConf
appName="shashibiya"
conf=SparkConf().setAppName(appName).setMaster("local")
sc = SparkContext(conf=conf)
user_data=sc.textFile("tachyon://master:19998/tmp/ml-100k/u.data")
user_fields=user_data.map(lambda line:line.split("|"))
print user_fields.take(5)
```
shell的形式我运行暂时失败
总是找不到blabla  class
我就采用 独立应用的方式 并把jar包 包含进去
```
spark-submit --jars /home/cms/tachyon-0.8.2/clients/client/target/tachyon-client-0.8.2-jar-with-dependencies.jar tatest.py
```
运行结果:

![](http://upload-images.jianshu.io/upload_images/1908836-950fd9b8f4d7d815.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
其中,tachyon://master:19998就是你的tachyon的通信地址,那怎么获取得到hdfs上的文件的呢?因为通过```export TACHYON_UNDERFS_ADDRESS=hdfs://master:9000```配置,就可通过tachyon找到那个文件了
查看tachyon下的目录


![](http://upload-images.jianshu.io/upload_images/1908836-b2a8581dba74d048.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

**然而。。。**
直接从hdfs上读取文件
```
user_data=sc.textFile("hadoop://master:9000/tmp/ml-100k/u.data")
```
运行时间4s多,远比tachyon快,why?待探索

![](http://upload-images.jianshu.io/upload_images/1908836-93ac75b355421a2f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,393评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,790评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,391评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,703评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,613评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,003评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,507评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,158评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,300评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,256评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,274评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,984评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,569评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,662评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,899评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,268评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,840评论 2 339

推荐阅读更多精彩内容