如何通过API调用alluxio 文件系统
来源:互联网 发布:大学软件测试专业 编辑:程序博客网 时间:2024/06/09 21:50
如何通过API调用alluxio 文件系统
一般来说,不论从spark,hfds等等大数据分布式框架,甚至使用公有云api,来说,与集群进行交互不外乎以下这些套路:
- 设置configuration(有很重要的主节点host,port,等等)
- 通过configuration生成context
- 通过context,得到一个client
- 这时候,通过这个client去调用各种法方法
当然alluxio文件系统,也不例外,但是也稍微有那么一点点小个性。
我们可以先介绍一下,alluxio的对外接口 alluxio.client.file.FileSystem
我们可以看到FileSystem有一个内部类Factory,然后就是一些方法,基本囊括了文件系统的各种方法,当然其中也有个别方法已经在现在版本不建议使用,未来甚至可能被移除(如loadMetadata)。
风格也是一致,每种功能都有两个重载方法,一个只需要 AlluxioURI一个参数,另外一个除了AlluxioURI,还需要一个对应的Options参数。
Options这个参数阿里云api中的Options很像,他们是一个类,用成员变量记录了该操作的各种参数。拿createFile举例说明,我们如果想要按照自己搭建的alluxio集群的配置文件中的设置去创建文件(若未设置某配置项,则为默认值),我们就使用createFile(AlluxioURI) 这个方法,在FIleSystem的实现类BaseFileSystem的createFile(AlluxioURI)中,会调用一个CreateFileOption的defaults()方法,这个方法就是从配置项中读取各个操作参数到自己实例的成员变量中,这样用这么一个Opthions,进行创建。倘若,你想使用的创建方式不是集群里配置的那样,但是又不想停掉集群,更改配置,那么你就可以自己创建一个Options,设置好各个成员,然后作为参数传入,就能达到效果。这体现了接口的灵活性。
以下为得到FIleSystem的方法:
Configuration.set(PropertyKey.MASTER_HOSTNAME,host);ClientContext.init();FileSystem fs = FileSystem.Factory.get();
这里alluxio 与spark 不同,并不需要那样得到conf,再通过conf得到context,这样一直传参数。
alluxio:
首先,使用Configuration的set方法,传入一个枚举的MASTER_HOSTNAME,和一个String的参数(这里可以是能解析的域名,主机名,ip地址),这样,就在Configuration中,配置了好了最重要的一项,master的地址。port可以不用写,因为它有默认的19998。
然后,ClientContext.init方法,可以将从设置好的Configuration读到master的地址和端口,并传给ClientContext。
最后,我们通过FileSystem的内部类Factory的get方法得到FileSystem的实现类BaseFileSystem。
有了这个fs,之后就可能各种调用啦。~~~~
谢谢。
- 如何通过API调用alluxio 文件系统
- 如何通过python调用新浪微博的API
- 如何通过python调用新浪微博的API
- 如何通过API调用来分析恶意软件
- 如何通过API调用来分析恶意软件
- (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
- Alluxio安装(以HDFS作为底层文件系统)
- 通过JAVA API操作HDFS文件系统
- alluxio
- Alluxio
- 通过Rest API调用OpenStack
- Alluxio文件操作Java API示例
- 如何通过SAXParser类解析调用 Google Weather API接口返回的XML结果
- 在asp.net中如何在服务器端调用计算机硬件设备(不是在客户端通过Activex调用API)
- Tachyon(现名:Alluxio):Spark生态系统中的分布式内存文件系统
- 分布式内存文件系统alluxio的安装,底层存储使用hdfs
- 通过HDFS的API访问文件系统的例子
- 如何调用 Windows API 第一节
- spring boot
- iOS runtime的理解
- 设计模式学习--简单工厂模式
- 摆动序列
- SQL 存储过程 where 条件 动态拼接
- 如何通过API调用alluxio 文件系统
- 无需Get更多技能,快速打造一个可持久化的任务调度
- 371. Sum of Two Integers
- 开源库 Natasha2016 ,让IL编程跑起来
- 旋涡JAVA笔记
- android UiAutomator写一个等待元素出现并点击的方法
- 如何在STM32F429上使用DSP库
- [LeetCode]301. Remove Invalid Parentheses
- WEB_Rember Me(自动登录) 的几种实现思路