通过Python Client访问Alluxio
详细用法:
Alluxio Python API v0.1.1 — Alluxio Python API 0.1.1 documentation (alluxio-py.readthedocs.io)
Alluxio 有一个 Python 客户端,这个客户端提供了 REST API 来和 Alluxio 交互。它提供了一个和 Alluxio Java API 类似的 API。查看这篇文档来了解有关所有可用方法的详细文档。通过示例来了解如何在 Alluxio 上执行基本的文件系统操作。
Alluxio代理依赖
这个Python客户端通过由Alluxio代理提供的REST API来和Alluxio相互交流。 这个代理服务器是一个独立的服务器,可以通过${ALLUXIO_HOME}/bin/alluxio-start.sh proxy
来开启它和通过命令${ALLUXIO_HOME}/bin/alluxio-stop.sh proxy
来关闭它。默认情况下,可以通过端口39999来使用REST API。 使用HTTP代理服务器有性能上的影响。特别的是,使用这个代理服务器需要一个额外的跳。为了达到最佳性能,运行这个代理服务器的时候推荐在每个计算节点上分配一个Alluxio worker。
安装python的Alluxio客户端库
$ pip install alluxio
提示:切换到需要的Python环境
(base) [mca@clu01 ~]$ conda activate odc
使用示例
下面的程序示例包括了如何在Alluxio创建目录、下载、上传、检查文件是否存在以及文件列表状态。
(python2版本)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import json
import sys
import alluxio
from alluxio import option
def colorize(code):
def _(text, bold=False):
c = code
if bold:
c = '1;%s' % c
return '\033[%sm%s\033[0m' % (c, text)
return _
green = colorize('32')
def info(s):
print green(s)
def pretty_json(obj):
return json.dumps(obj, indent=2)
def main():
py_test_root_dir = '/py-test-dir'
py_test_nested_dir = '/py-test-dir/nested'
py_test = py_test_nested_dir + '/py-test'
py_test_renamed = py_test_root_dir + '/py-test-renamed'