分布式内存文件系统alluxio实战

author author     2022-08-17     465

关键词:

前言

        Alluxio是一个分布式内存文件系统,可以在集群里以访问内存的速度来访问存在Alluxio里的文件。把Alluxio是架构在最底层的分布式文件存储和上层的各种计算框架之间的一种中间件,其前身为Tachyon

      Alluxio起源于Alluxio公司创始人李浩源读博期间在 UC Berkeley AMPLab实验室的博士课题。自从Alluxio的第一个开源版本发布之后,项目发展迅猛。社区贡献者人数已经迅速增加到200多个,这200多人来自50多家公司,其中不乏国际巨头,例如Barclays,IBM,Intel等等。另外更多的公司将Alluxio部署到了自己的生产环境中。

官方网站:http://www.alluxio.org/

技术分享技术分享

规划

master 10.64.8.3

slave  10.64.8.3、10.64.8.4、10.64.8.5


一:安装

  • slave1、slave2、slave3

(1)安装jdk

$ wget http://download.oracle.com/otn-pub/java/jdk/8u112-b15/jdk-8u112-linux-x64.tar.gz
$ tar xf jdk-8u112-linux-x64.tar.gz -C /opt
$ vim /etc/profile
增加
export JAVA_HOME=/opt/jdk1.8.0_112
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
$ source /etc/profile

(2)安装alluxio

$ cd opt
$ wget http://downloads.alluxio.org/downloads/files/1.3.0/alluxio-1.3.0-bin.tar.gz
$ tar xf alluxio-1.3.0-bin.tar.gz
$ cd alluxio-1.3.0


二:集群配置

  • slave1、slave2、slave3

1:使用conf/alluxio-env.sh.template复制一份配置。

$ cp conf/alluxio-env.sh.template conf/alluxio-env.sh
#!/usr/bin/env bash
#alluxio的安装目录
ALLUXIO_HOME=/opt/alluxio-1.3.0
# Log目录 (默认: ${ALLUXIO_HOME}/logs).
#ALLUXIO_LOGS_DIR=/var/log/alluxio
# master的主机名
ALLUXIO_MASTER_HOSTNAME=slave1
# master节点ip,将在V2版本废弃该配置
# ALLUXIO_MASTER_ADDRESS=10.64.8.3
# worker节点保存in-memory数据的目录 (Default: /mnt/ramdisk).
#ALLUXIO_RAM_FOLDER
# 底层存储系统的地址,默认为本地文件系统 (Default: ${ALLUXIO_HOME}/underFSStorage)
#ALLUXIO_UNDERFS_ADDRESS
# worker节点的内存设置. (Default: 1GB)
ALLUXIO_WORKER_MEMORY_SIZE= 50GB
# 下面jmx的远程调试
# ALLUXIO_JAVA_OPTS
# ALLUXIO_MASTER_JAVA_OPTS
# ALLUXIO_WORKER_JAVA_OPTS
# ALLUXIO_USER_JAVA_OPTS

2:配置worker节点

$ vim conf/workers
10.64.8.3
10.64.8.4
10.64.8.5


三:启动

(1)格式化Alluxio日志和工作程序存储目录。

  • slave1、slave2、slave3

$ ./bin/alluxio format

(2)启动master节点,使用local参数同时启动master和worker。

  • slave1

$ ./bin/alluxio-start.sh local

技术分享技术分享

(3)启动worker节点

  • slave2、slave3

$ ./bin/alluxio-start.sh worker

技术分享

技术分享



四:访问

(1)访问的http://localhost:19999看到Alluxio的master

技术分享


(2)能看到所有alluxio中的文件。

技术分享


(3)worker里面能看到所有worker的状态

技术分享


(4)访问http://localhost:30000看到当前worker的信息。

技术分享


五:使用alluxio命令行

(1)查看aullio,默认使用本地地址端口

$ ./bin/alluxio fs ls alluxio://10.64.8.3:19999/
$ ./bin/alluxio fs ls /

技术分享

(2)从本地文件系统copy文件到alluxio

$ ./bin/alluxio fs copyFromLocal /opt/cassandra/conf/ /cassandra
Copied /opt/cassandra to /cassandra

技术分享

(3)cat命令可以输出文件内容

$ ./bin/alluxio fs cat /test.txt

技术分享

(4)从alluxio拷贝文件到本地

$ ./bin/alluxio fs copyToLocal /602.txt /tmp/602.txt
Copied /602.txt to /tmp/602.txt

技术分享


(5)将alluxio数据持久化到本地

alluxio的数据是存在内存中的,默认使用本地的文件系统作为底层的系统,可以将alluxio中的数据持久化到本地文件系。路径由ALLUXIO_UNDERFS_ADDRESS指定,默认为./underFSStorage/

$ ./bin/alluxio fs persist /cassandra
$ ls ./underFSStorage/
cassandra


(6)常见支持的命令,与linux系统命令用法相同。

./bin/alluxio fs cat
./bin/alluxio fs chmod
./bin/alluxio fs chown
./bin/alluxio fs cp
./bin/alluxio fs mv
./bin/alluxio fs rm
./bin/alluxio fs touch
./bin/alluxio fs mkdir


六:使用NFS作为底层文件系统

(1)在master上面挂载nfs

$ /etc/init.d/rpcbind start
$ mount -t nfs -o vers=3,tcp 10.10.10.10:/Vol-01/alluxio /mnt/nfs

(2)修改alluxio配置

$ vim ./conf/alluxio-env.sh
#ALLUXIO_UNDERFS_ADDRESS=
改成
ALLUXIO_UNDERFS_ADDRESS=/mnt/nfs


(3)格式化

$ ./bin/alluxio format


(4)启动

master

$ ./bin/alluxio-start.sh master

worker

$ ./bin/alluxio-start.sh worker


(5)测试

创建一个文件在nfs中

$ echo 11111111111 >>/mnt/nfs/nfstest.txt

查看alluxio就能看到这个文件

$./bin/alluxio fs ls /
-rw-r--r--   root    root   12.00B  11-08-2016 17:22:34:477  Not In Memory  /nfstest.txt
$./bin/alluxio fs cat /nfstest.txt
11111111111


七:使用HDFS作为底层文件系统

(1)alluxio版本

默认的alluxio-1.3.0-bin.tar.gz安装包支持hdfs 2.2.0,使用其他版本的hdfs则需要下载对应的alluxio安装包。或者利用默认包进行重新编译,步骤如下

1:修改pom.xml中的,使用Hadoop2.2

<hadoop.version>2.2.0</hadoop.version>
修改为
<hadoop.version>2.6.0</hadoop.version>

2:重新编译

$ mvn clean package -DskipTests

编译成功后会在assembly/target目录中生成新的alluxio-assemblies-1.3.0-jar-with-dependencies.jar

(2)alluxio配置

1:修改conf/alluxio-env.sh

$ vim conf/alluxio-env.sh
ALLUXIO_UNDERFS_ADDRESS=hdfs://10.64.8.1:8020

(3)格式化

$ ./bin/alluxio format

(4)启动

master

$ ./bin/alluxio-start.sh master

worker

$ ./bin/alluxio-start.sh worker

(5)查看

$ ./bin/alluxio ls  /

发现hdfs中的文件都在alluxio中。

技术分享


技术分享


八:使用fuse挂载alluxio

  • Linux kernel 2.6.9及以上

  • JDK 1.8及以上

  • libfuse 2.9.3及以上 (2.8.3也能够工作,但会提示一些警告)

  • 需要根据源码包进行重新编译、需要jdk、maven、libfuse


(1)配置jdk

$ wget http://download.oracle.com/otn-pub/java/jdk/8u112-b15/jdk-8u112-linux-x64.tar.gz
$ tar xf jdk-8u112-linux-x64.tar.gz -C /opt
$ vim /etc/profile
增加
export JAVA_HOME=/opt/jdk1.8.0_112
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
$ source /etc/profile


(2)配置maven

$ wget http://mirrors.cnnic.cn/apache/maven/maven-3/3.0.5/binaries/apache-maven-3.0.5-bin.tar.gz
$ tar -zxvf apache-maven-3.0.5-bin.tar.gz
$vim /etc/profile
增加
export MAVEN_HOME=/opt/apache-maven-3.0.5
export PATH=$PATH:$MAVEN_HOME/bin
$ source /etc/profile


(2)安装libfuse

$ wget http://mirror.centos.org/centos/6/os/x86_64/Packages/fuse-libs-2.8.3-5.el6.x86_64.rpm
$ rpm -ivh fuse-libs-2.8.3-5.el6.x86_64.rpm


(3)编译安装

$ git clone git://github.com/alluxio/alluxio.git
$ cd alluxio
$ mvn install -DskipTests      ---需要download文件
若出现java.lang.OutOfMemoryError: Java heap space,请执行:
$ export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m"


(4)使用alluxio-fuse

以hdfs作为底层存储系统为例,其他存储也是这样。

格式化

$ ./bin/alluxio format

启动

$ ./bin/alluxio-start.sh worker

挂载

$ mkdir -p /data/test
$ ./bin/alluxio-fuse.sh mount /data/test

技术分享技术分享


本文出自 “酱酱酱子” 博客,请务必保留此出处http://heqin.blog.51cto.com/8931355/1881114

alluxio增强spark和mapreduce存储能力

Alluxio的前身为Tachyon。Alluxio是一个基于内存的分布式文件系统;Alluxio以内存为中心设计,他处在诸如AmazonS3、ApacheHDFS或OpenStackSwift存储系统和计算框架应用ApacheSpark或HadoopMapReduce中间,它是架构在底层分布式文件系统和上层分布... 查看详情

shuttle+alluxio加速内存shuffle起飞

...细介绍了Shuttle的架构和设计理念。Shuttle在设计之初选用分布式文件系统作为存储Shuffle数据的基座,灵活利用多种分布式存储的优势。同时,将存储计算剥离,不依赖本地存储介质,方便云上 查看详情

华为拥抱开源alluxio:内存将成重要战略平台

...Horowitz资助的初创企业。FusionStorage则属于华为公司旗下的分布式软件定义存储系统。其最新Fusi 查看详情

tachyon与ignite系统对比(代码片段)

...(原Tachyon)是以内存为中心(memory-centric)的虚拟的分布式存储系统,拥有高性能和容错能力,能够为集群框架(如Spark、MapReduce)提供可靠的内存级速度的文件共享服务。Tachyon诞生于UCBerkeley的AMPLab,由... 查看详情

tachyon与ignite系统对比(代码片段)

...(原Tachyon)是以内存为中心(memory-centric)的虚拟的分布式存储系统,拥有高性能和容错能力,能够为集群框架(如Spark、MapReduce)提供可靠的内存级速度的文件共享服务。Tachyon诞生于UCBerkeley 查看详情

alluxio架构场景与部分配置参数详解(代码片段)

...:架构及数据流-简书(jianshu.com)Alluxio-基于内存的虚拟分布式存储系统_机器爱上学习的博客-CSDN博客_alluxio1架构1.1概述​Alluxio作为大数据和机器学习生态系统中的一个新的数据访问层,配置在任何持久性存储系统(如AmazonS3... 查看详情

如何用alluxio加速云上深度学习训练?

...快速度并且降低成本,许多企业开始逐步在云上实施分布式训练的方案,本期内容将结合阿里、微软等实际应用案例,分享如何通过Alluxio加速云上深度学习。内容主要围绕两个部分展开:内容概要:Alluxio及其... 查看详情

mfs分布式文件系统架构实战

MFS分布式文件系统架构实战MFS文件系统的组成架构:如图元数据服务器(Master):负责管理文件系统,维护元数据;元数据日志服务器(c):备份Master服务器的变化日志文件;数据存储服务器(ChunkServer):真正存储数据的服务... 查看详情

认识一下mrs里的“中间人”alluxio

...。2.Alluxio的架构AlluxioMaster主要负责管理元数据,执行分布式存储元数据操作,Secondarymaster用户checkpoint日志(journal)和容错AlluxioWorker负责存储块数据,每个worker管理自己存储的块的元信息,执行底层基于... 查看详情

分布式文件系统--------glusterfs最佳实战

1.背景   GlusterFS是一个开源的分布式文件系统,具有强大的横向扩展能力,通过扩展能够支持数PB存储容量和处理数千客户端。GlusterFS借助TCP/IP或InfiniBandRDMA(一种支持多并发链接的“转换线缆”技术)网络将物理分布的... 查看详情

iceberg+alluxio助力加速数据通道(下篇)

...队的技术负责人,并为Twitter的数据平台构建了大规模分布式SQL系统。他在性能优化、分布式缓存和大数据方面有12年的工作经验。王北南博士毕业于雪城大学计算机工程专业,专业方向是对分 查看详情

iceberg+alluxio助力加速数据通道(下篇)

...队的技术负责人,并为Twitter的数据平台构建了大规模分布式SQL系统。他在性能优化、分布式缓存和大数据方面有12年的工作经验。王北南博士毕业于雪城大学计算机工程专业,专业方向是对分 查看详情

apachehive部署与实战客户端使用

 Spark是大数据体系的明星产品,是一款高性能的分布式内存迭代计算框架,可以处理海量规模的数据。下面就带大家一起来开始学Spark!▼往期内容汇总:大数据导论Linux操作系统概述VMwareWorkstation虚拟机使用Linux... 查看详情

iceberg+alluxio助力加速数据通道(上篇)

...罗格斯大学电子与计算机工程系,专业方向是大规模分布式系统的性能与稳定性优化。王北南:Alluxio软件工程师,也是PrestoDB的committer。加入Alluxio之前,北南博 查看详情

iceberg+alluxio助力加速数据通道(上篇)

...罗格斯大学电子与计算机工程系,专业方向是大规模分布式系统的性能与稳定性优化。王北南:Alluxio软件工程师,也是PrestoDB的committer。加入Alluxio之前,北南博 查看详情

hadoop应用实战100讲-hadoop分布式文件系统

...访问的模式可以运行到普通的商用服务器集群上,完成了分布式存储的功能,同时也向客户开放了HDFS相应的访问接口,以满足不同的需求。以下是我为大家准备的几个精品专栏,喜欢的小伙伴可自行订阅,你的支持就是我不断... 查看详情

新生代工程师手把手教你玩转alluxio+ml(上篇)

...xff0c;它上面包括了像PyTorch,Tensorflow等一系列训练的软件。分布式缓存而Alluxio与很多的缓存解决方案的不同点就在于我们其实 查看详情

deeptech深科技专访丨分布式系统开源项目领跑者alluxio获5000万美元c轮融资

...—即数据编排平台。Alluxio应运而生Alluxio系统是全球首个分布式超大规模数据编排系统,孵化于加州大学伯克利分校AMP实验室。自项目开源以来,已有超过来自300多个组织机构的1100多位贡献者参与开发,包括全球最头... 查看详情