实现文件系统扫描程序和登录区域

irods-capability-automated-ingest的Python项目详细描述


IRODS自动摄取框架

自动接收框架为irods提供了一个企业解决方案,解决了两个主要的用例:获取管理中的现有数据和接收到达着陆区的传入数据。

基于python irods客户端和芹菜,这个框架可以扩展以满足来自仪器、卫星或并行文件系统的数据需求。

下面的示例图显示了一个文件系统扫描仪和一个登录区域。

自动摄取:文件系统扫描图

自动摄取:着陆区图

使用选项

redis选项

<表><广告>选项 效果默认值 < /广告><正文>redis_主机redis主机的域或ip地址本地主机redis_端口redis的端口号6379redis_数据库要用于接收的redis db号

S3选项

要扫描s3 bucket,最少需要--s3-u密钥对/bucket-name/path/to/root/folder形式的源路径

<表><广告>选项 效果默认值 < /广告><正文>S3 U键对S3密钥对文件的路径无S3_端点域S3端点域s3.amazonaws.comS3区名称S3地区名称美国东部1s3_proxy_urlS3访问代理的URL无

记录/分析选项

<表><广告>选项 效果默认值 < /广告><正文>日志文件名日志输出文件的路径无日志级别要记录的消息的最低级别无对数间隔滚动接收日志文件的时间间隔无登录时间日志间隔的类型/单位(请参阅TimeDrotingFileHandler)无

--profile允许您使用vis可视化芹菜工人在摄入作业期间的配置文件。

<表><广告>选项 效果默认值 < /广告><正文>配置文件名指定配置文件名的名称(json输出)无剖面图级别要记录的用于分析的最低消息级别无剖面图间隔滚动接收配置文件的时间间隔无当配置文件间隔的类型/单位(请参阅TimeDrotingFileHandler)无

摄取开始选项

这些选项用于摄取作业的"开始"。

<表><广告>选项 效果默认值 < /广告><正文>工作名称摄取作业的参考名称生成的uuid间隔重新启动间隔(秒)。如果不存在,将只同步一次。无文件队列文件队列的名称。文件路径队列路径队列的名称。路径重新启动队列重新启动队列的名称。重新启动事件处理程序事件处理程序文件的路径无(请参阅下面的"事件处理程序方法"同步在同步作业完成之前阻止错误进度显示进度条和任务计数(必须有--同步标志)错误忽略缓存忽略缓存中的上次同步时间-如启动新同步错误

优化选项

<表><广告>选项 效果默认值 < /广告><正文>排除文件类型要排除的文件类型:常规、目录、字符、块、套接字、管道、链接无排除文件名一个用空格分隔的python正则表达式列表,用于定义要排除的文件名,例如"(\s+)"exclude"(\s+)。hidden"无排除目录名一个用空格分隔的python正则表达式列表,用于定义要排除的目录名,例如"(\s+)"exclude"(\s+)。hidden"无每个任务的文件数队列上给定任务中要处理的路径数初始摄入在初始摄取时使用此标志,以避免检查irods中已有的数据对象路径错误Irods_Idle_Disconnect_秒空闲时保持打开IRODS连接的秒数

可用的--事件处理程序方法

<表><广告>方法 效果默认值 < /广告><正文>预数据对象创建用户定义的python无创建post_data_obj_用户定义的python无修改前数据 用户定义的python无post_data_obj_modify用户定义的python无创建前COLL>用户定义的python无创建post_coll_用户定义的python无预科尔修改用户定义的python无post_coll_修改用户定义的python无作为用户作为此irods用户执行操作认证用户目标路径在irods服务器上设置装载路径,该路径可以不同于客户端装载路径客户端装载路径资源定义操作的目标资源请求由客户环境提供操作定义操作模式操作。注册同步最大重试次数定义失败时的最大重试次数超时定义作业超时前的秒数3600延迟定义重试之间的秒数

事件处理程序可以使用logger来编写日志。有关可用的日志记录方法和签名,请参见结构日志。

操作模式

<表><广告>操作 新文件 更新的文件 < /广告><正文>操作。寄存器同步(默认值)在目录中注册更新目录中的大小操作。注册为副本同步注册第一个或附加副本更新目录中的大小操作。输入将文件复制到目标保险库,并在目录中注册无动作操作。设置同步将文件复制到目标保险库,并在目录中注册再次复制整个文件,并更新目录操作.添加将文件复制到目标保险库,并在目录中注册仅复制文件的附加部分,并更新目录操作。无操作 "不"动作< /TD>无动作

--event_handler使用示例可以在examples目录中找到。

展开

基本:手动redis、芹菜、pip

运行同步作业和芹菜工人需要每个节点上经过身份验证的irods用户的有效irods环境文件。

启动redis服务器

安装redis服务器:

sudo yum install redis-server
sudo apt-get install redis-server

或者,自己构建:https://redis.io/topics/quickstart

启动redis:

redis-server

或者,该死的:

sudo service redis-server start
sudo systemctl start redis

redis文档也推荐了一个额外的步骤:

< Buff行情>

请确保将linux kernel overcommit memory设置设置为1。将vm.overcommit_memory=1添加到/etc/sysctl.conf,然后重新启动或运行命令sysctl vm.overcommit_memory=1,使其立即生效。

这允许Linux内核过度使用虚拟内存,即使这超出了主机上的物理内存。有关详细信息,请参见kernel.org文档。

注意:如果在分布式环境中运行,请通过编辑/etc/redis/redis.conf或/etc/redis.conf中的bind行,确保redis服务器接受连接。

设置虚拟环境

您可能需要升级pip:

pip install --upgrade pip

安装virtualenv:

pip install virtualenv

用python3创建一个virtualenv:

virtualenv -p python3 rodssync

激活虚拟环境:

source rodssync/bin/activate

安装此软件包

sudo yum install redis-server
0

为芹菜设置环境:

sudo yum install redis-server
1

启动芹菜工人:

sudo yum install redis-server
2

注意:确保队列名称与摄取作业的队列名称匹配(此处显示的是默认队列名称)。

运行测试

注意:测试套件需要python版本>;=3.5。 注意:测试应在不运行芹菜工人的情况下运行。

sudo yum install redis-server
3

启动同步作业

sudo yum install redis-server
4

列出作业

sudo yum install redis-server
5

停止作业

sudo yum install redis-server
6

监视作业(与使用--progress相同)

sudo yum install redis-server
7

中级:Dockerize,手动配置(芹菜需要更新)

/tmp/event_handler.py

sudo yum install redis-server
8

icommands.env

sudo yum install redis-server
9
sudo apt-get install redis-server
0
sudo apt-get install redis-server
1
sudo apt-get install redis-server
2
sudo apt-get install redis-server
3

高级:kubernetes(芹菜需要更新)

这并不假定您的irods安装在kubernetes中。

kubeadm

设置glusterfsheketi

创建存储类

创建持久卷声明数据

安装Minikube和Helm

将内存设置为至少8g,CPU设置为至少4

sudo apt-get install redis-server
4

在Minikube上启用入口

sudo apt-get install redis-server
5

装载主机目录

这里是数据和事件处理程序的位置。在此设置中,我们假设您的事件处理程序位于/tmp/host/event_handler下,而您的数据位于/tmp/host/data下。我们将把/tmp/host/data装载到minikube中的/host/data中,它将把/host/data装载到容器中的/data中,

/tmp/host/data->;minikube/host/data->;container/data

同样地,

/tmp/host/event_handler->;minikube/host/event_handler->;容器/event_handler。您的设置可能不同。

sudo apt-get install redis-server
6

/tmp/host/event_handler/event_handler.py

sudo apt-get install redis-server
7
sudo apt-get install redis-server
8

启用培养箱
sudo apt-get install redis-server
9

生成本地Docker映像(可选)

如果您想使用本地Docker图像,您可以将Docker图像构建成Minikube,如下所示:

redis-server
0

bash>/P> 啊! 啊! 是啊。 啊! 啊! 啊!

安装irods
postgresql
AAAAAAA 37 AAAAAAAAA 38 蟑螂 啊! 啊!

重新安装时,请运行

AAAAAAA 41

更新irods配置

<;repo>;/kubernetes/chart/values.yaml或--set命令行参数中设置配置。

安装图表

AAAAAAA 42

我们称之为我们的版本icai

啊!

缩放rq工作者

啊!

通过rest api访问(推荐)

提交作业

提交.yaml

啊!45!

啊!

bash

啊!

AAAAAAA 48

bash

AAAAAAA 49
列出作业

啊!

bash

啊!
删除作业

AAAAAAA 52

bash

AAAAAAA 53

通过命令行访问(不推荐)

提交作业
啊!
列出作业 啊!
删除作业
啊!

安装测井仪

安装带有设置日志级别的图表信息

啊! AAAAAAA 58

设置ElasticSearch的参数

啊! 啊!60!

格拉法纳

查找维修端口

AAAAAAA 61

前进端口

AAAAAAA 62

如果--set grafana.admin password="系统生成一个随机密码,则查找管理密码

AAAAAAA 63

打开浏览器urllocalhost:8000

使用用户名admin和密码admin登录 单击icai仪表板

基巴纳

<;repo>;kubernetes/elk目录下取消注释yaml文件中的kibana节

查找维修端口

AAAAAAA 64

前进端口

啊!

打开浏览器urllocalhost:8000

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java中ArrayList的超简单问题   Java 8在一段时间后过期   java如何创建具有用户定义维度的矩阵,并使用从上到下、从左到右的递增值填充它?   java从JDBC重启mysql   带有sqlite的java LiveData未更新UI   带有JDialog的java小程序在Mac OSX中未正确隐藏   java ActionListener无法从公共类引用数组?   java Apache Digester:NoSuchMethodException:没有这样的可访问方法   安卓中数据库中的java数据没有以正确的格式检索   java快速排序实现:使用random pivot时几乎排序   安卓 Java:高效的ArrayList过滤?   java如何在单独的文件中制作GUI程序   jasper报告如何从JSP或Java代码在JasperReport中传递参数值?