Alluxio1.0.1最新版(Tachyon为其前身)介绍,+HDFS分布式环境搭建

Alluxio(以前名为Tachyon)是世界上第一个之内存为中心的虚拟的分布式存储系统。它统一了数据访问的方式,为上层计算框架和底层存储系统构建了桥梁。 应用只须要链接Alluxio便可访问存储在底层任意存储系统中的数据。此外,Alluxio的之内存为中心的架构使得数据的访问速度能比现有常规方案快几个数量级。在大数据生态系统中,Alluxio介于计算框架(如Apache Spark,Apache MapReduce,Apache Flink)和现有的存储系统(如Amazon S3,OpenStack Swift,GlusterFS,HDFS, Ceph,OSS)之间。 Alluxio为大数据软件栈带来了显著的性能提高。例如,百度采用Alluxio使他们数据分析流水线的吞吐量提高了30倍。 巴克莱银行使用Alluxio将他们的做业分析的耗时从小时级降到秒级。 除性能外,Alluxio为新型大数据应用做用于传统存储系统的数据创建了桥梁。 用户能够以独立集群方式(如Amazon EC2)运行Alluxio,也能够从Apache Mesos或Apache YARN上启动Alluxio。Alluxio与Hadoop是兼容的。这意味着已有的Spark和MapReduce程序能够不修改代码直接在Alluxio上运行。Alluxio是一个已在多家公司部署的开源项目(Apache License 2.0)。 Alluxio是发展最快的开源大数据项目之一。自2013年4月开源以来, 已有超过50个组织机构的 200多贡献者参与到Alluxio的开发中。包括 阿里巴巴Alluxio百度CMUIBMIntelRed HatUC Berkeley和 Yahoo。Alluxio处于伯克利数据分析栈( BDAS)的存储层,也是Fedora发行版的一部分。html

以上这段概要从官网摘下,本身再总结一下:java

首先,它是和Hadoop兼容的,因此不少Spark,MapReduce程序能够直接跑,那为何还要用到Alluxio呢?    git

  答:由于它是基于内存的,能够把中间结果文件,或者一些文件缓存起来,能够选择刷到磁盘上或者其余不少读写方式,简化了分布式系统中内存的管理,减小读写磁盘.github

第二,该文件系统对于一个文件只能写一次,就是在你建立的时候能够写,以后你就只能读了.(在官方的文档上有)centos

第三,该文件系统能够和zookeeper整合起来,(虽然笔者没有试),可是Alluxio自身是没法加分布式锁的,因此他的应用场景可能比较特殊,我认为比较适合只读的状况比较好,当并发的写入同一个文件时,可能没法获得保证.浏览器

架构部分缓存

在明确了他的特色后,就和看病同样总得理解它有哪些部位,因此架构仍是有必要了解,本身学习的时候开始总很差好看官方文档会浪费时间.架构主要分为三个角色,master,worker,client.master与worker构成服务端,而咱们的程序只和client端打交道.这里提供官方网站--架构部分(中文版)很是好理解才一页.http://alluxio.org/documentation/v1.0.1/cn/Architecture.html.我就不敖述了.架构

 

开始动手搭建.并发

须要1.java运行环境 2.hdfs搭建 3.搭建Alluxio4.操做系统为centos7框架

本文java版本为1.7.0_71  HDFS版本为hadoop-2.7.1  Alluxio版本为当前最新alluxio-1.0.1 (多是版本问题,Tachyon 0.8没法链接hdfs.走了不少弯路)

我在两台机器暂且称为A B. A做为MASTER B做为SLAVE2.在此前已经配置完HDFS.

能够访问Master端的50070确认HDFS是否正常也能够 用jps命令.该命令能够看到全部的JAVA运行程序的PID.

此时A机器上会有一个SecondaryNameNode,NameNode. B机器上会有DataNode 进程.

搭建步骤:

1.在master机器上运行

wget http://alluxio.org/downloads/files/1.0.1/alluxio-1.0.1-bin.tar.gz
tar xvfz alluxio-1.0.1-bin.tar.gz

2.安装完毕后

  将alluxio-1.0.1/conf 中的alluxio-env.sh.template 拷贝一份命名为alluxio-env.sh.该脚本其实就是配置文件.

  主要配置几个地方(仅贴上修改处 其余都没有变更)    

export ALLUXIO_MASTER_ADDRESS=${ALLUXIO_MASTER_ADDRESS:-master}
export ALLUXIO_UNDERFS_ADDRESS=${ALLUXIO_UNDERFS_ADDRESS:-hdfs://master:9000/alluxio}

 这里"/alluxio"是我已经在HDFS中建立的文件夹.也能够不写. 还有一个问题这里的-master是什么意思? 此前我并无配置master.他怎么会知道呢.

 答:alluxio会从/etc/hosts 中去寻找映射,因此你必须给master 和slave配上对应的ip地址.(图为我本身的hosts配置)       

 

  此时最后还须要修改conf/workers(以前tachyon 一致没搞懂 竟然又有slave 文件又有workder.)在里面把localhost注释,加上你集群中的节点.  

 到这里配置所有结束.

 cd到alluxio目录下执行(该命令会把该目录scp到全部的节点上)

./bin/alluxio copyDir .

 此时执行(官网推荐是all Mount 不过不要紧.)

$ ./bin/alluxio format
$ ./bin/alluxio-start.sh all NoMount

 (期间会要你输入不少密码,原理就是它会ssh到各个机器上去启动worker 不过不要紧,咱们能够百度ssh免密码登录,这个帖子太多,可是有两个小细节 第一就是 authoried_keys权限必须是600 并且你的用户好比我是imdb 那么 /home/imdb的权限必须是700 网上博客都没说!!!!!以后能够jps一下 发现master端多了AlluxioWorker和AlluxioMaster slave端多了AlluxioWorker. 能够用去测试.应该是经过的.

$ ./bin/alluxio runTests

打开浏览器输入http://master:19999/home

就搞定了.在本地模式的API官网上有,只需把 alluxio中assembly/target/alluxio-assemblies-1.0.1-jar-with-dependencies.jar加到eclipse里面API官网有就很少讲.

可是,不得不说,分布式的读写API我官网上没有找到文档,博客也都是很是老旧.惟一办法是从它文件夹里的Test案例本身摸索...网上的文章太少,因此特此写一下,有错误请你们纠正.

相关文章
相关标签/搜索