在sdap中接收数据的助手

sdap-ingest-manager的Python项目详细描述


用于接收数据集的SDAP管理器

先决条件

python 3

为python3安装anaconda。从图形安装(例如macos):

https://www.anaconda.com/distribution/#macos

git lfs(用于开发)

Git lfs有关Git部署的信息,请参见https://git-lfs.github.com/

如果不可用,您必须获取netcdf文件进行测试,如果您确实需要测试。在

在kubernetes集群上部署nexus

见项目https://github.com/apache/incubator-sdap-nexus

$ helm install nexus .  --namespace=sdap --dependency-update -f ~/overridden-nexus-values.yml 

安装、配置和运行

安装

保持以用户身份登录

^{pr2}$

配置摄取系统

捕获安装输出结尾处的消息

--------------------------------------------------------------
Now, create configuration files in
***/<some path>>/.sdap_ingest_manager***
 Use templates and examples provided there
--------------------------------------------------------------

如果路径未显示在安装标准输出中,可以使用以下命令找到它:

python -c "import sys; print(f'{sys.prefix}/.sdap_ingest_manager')"

使用消息中显示的路径并创建您自己的配置文件:

$ cd /<some path>>/.sdap_ingest_manager
$ cp sdap_ingest_manager.ini.default sdap_ingest_manager.ini

按照注释中的说明编辑和更新新创建的文件。在

{{cd2>如果文件中的值是配置的,那么这个值将被使用。因此,您可以有一个简化的.ini文件,其中只包含您的特定配置。 不要将您的特定配置放在.ini.default文件中,它将在您升级包时被替换。在

简化的.ini文件示例:

[COLLECTIONS_YAML_CONFIG]yaml_file = collections.yml[OPTIONS]# set to False to actually call the ingestion command for each granuledry_run = False# set to True to automatically list the granules as seen on the nfs server when they are mounted on the local file system.deconstruct_nfs = True# number of parallel ingestion pods on kubernetes (1 per granule)parallel_pods = 2[INGEST]# kubernetes namespace where the sdap cluster is deployedkubernetes_namespace = nexus-dev

配置集合

您可以在sdap_ingest_manager.ini文件中引用的本地yaml文件中配置它。在

它也可以在谷歌电子表格中。在

如果两者都配置,则将使用本地yaml文件。在

运行摄入

在已配置集合的列表中:

$ run_collections

并行作业的数量可以在sdap_ingest_manager.ini文件中更新。在

如果中断(终止),进程将在原来的位置重新启动。在

对于开发者

部署项目

$ bash
$ git clone ...
$ cd sdap_ingest_manager
$ python -m venv venv
$ source ./venv/bin/activate
$ pip install .

注意命令pip install-e。不工作,因为它不部署配置文件。在

更新项目

用你最喜欢的IDE(例如pyCharm)更新代码和测试。在

测试并创建包

推送时,基于dev分支的包将在github版本中自动发布。在

更改文件中的版本设置.py在

$ python setup.py test
$ git tag <version>
$ git push origin <version>

发布将通过github操作自动推送到pypi。在

集装箱化

码头工人

(开发版)

cd containers/docker
docker build --no-cache --tag tloubrieu/sdap-ingest-manager:latest .    
docker run -it --name sdap-ingest-manager -v sdap_ingest_config:/usr/local/.sdap_ingest_manager tloubrieu/sdap-ingest-manager:latest
docker volume inspect sdap_ingest_config

您可以在命名卷的目录中看到配置文件(例如/var/lib/docker/volumes/sdap_insert_config/\u data)。在

注意:在macos上,要访问这个目录,您需要进入运行docker服务的虚拟机。要更新macos上的配置:

docker run --rm -it -v /:/vm-root alpine:edge /bin/ash
cd /vm-root/var/lib/docker/volumes/sdap_ingest_config/_data
cp sdap_ingest_manager.ini.default sdap_ingest_manager.ini
vi sdap_ingest_manager.ini

要在dockerhub do上发布docker映像(kubernetes部署所需的步骤):

docker login
docker push tloubrieu/sdap-ingest-manager:latest

库伯内特斯

为您的部署创建configMap

从现有本机配置文件准备配置映射:

kubectl create configmap collection-ingester-config --from-file=venv/.sdap_ingest_manager -n sdap

如果启动的配置映射不是所需的,则可以手动更新该配置映射:

kubectl get configmap collection-ingester-config -o yaml -n sdap > containers/kubernetes/sdap_ingester_config.yml

手动编辑yml文件以仅保留特定于部署的配置(如果与当前配置不同)

替换配置映射:

kubectl delete configmap collection-ingester-config -n sdap
kubectl apply -f containers/kubernetes/sdap_ingester_config.yml -n sdap

启动服务

kubectl apply -f containers/kubernetes/job.yml -n sdap

删除服务:

kubectl delete jobs --all -n sdap

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

推荐PyPI第三方库


热门话题
数据库在使用TDengine时,如何保持Java客户端的高可用性?   javajavax。命名。无法将引用转换为javax。sql。数据源错误   理解Java中的溢出问题   java如何将数据请求与数据更新过程同步?   java在使用多部分上传图像时如何在客户端获取进程   java如何在FusionCharts中使用json数组?   java哈希映射“无法解析”。可以执行方法,但不能打印   java如何让用户更改JtextArea的背景色   java我们应该如何使用@XMLRootElement配置响应对象而不使用out   java BigQuery BigQueryException更新或删除   java使用新对象更新ArrayList+删除旧对象   java Alarmmanager立即启动   javascript实时Html推送通知   安卓如何从java代码更改视图大小   java Kafka 1.1多个消费群体滞后   多线程Java使用FileWriter写入同一文件引入多线程   java Jdbc连接池,按用户名进行连接缓存   java错误使用OpenGL?