sdap数据导入的辅助工具
项目描述
SDAP数据集导入管理器
先决条件
python 3
为python 3安装anaconda。例如,对于macos,使用图形安装。
https://anaconda.net.cn/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
安装、配置和运行
安装
以用户身份登录
$ pip install sdap-ingest-manager
配置导入系统
在安装输出的末尾捕获消息
--------------------------------------------------------------
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
按照注释中的说明编辑和更新新创建的文件。
请注意,如果没有在.ini
文件中配置值,将使用.ini.default
文件。因此,您可以有一个只包含您特定配置的简化.ini
文件。不要将您的特定配置放在.ini.default
文件中,因为它将在您升级软件包时被替换。
.ini
文件的示例
[COLLECTIONS_YAML_CONFIG]
yaml_file = collections.yml
[OPTIONS]
# set to False to actually call the ingestion command for each granule
dry_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 deployed
kubernetes_namespace = nexus-dev
配置收集
您可以在sdap_ingest_manager.ini
文件中引用的本地yaml文件中配置它。
它也可以在Google表格中。
如果两者都配置了,将使用本地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 release中发布。
在文件setup.py中更改版本
$ python setup.py test
$ git tag <version>
$ git push origin <version>
发布将通过github action自动推送到pypi。
容器化
Docker
(开发版本)
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_ingest_config/_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
要发布docker镜像到dockerhub,请执行(对于kubernetes部署是必要的步骤)
docker login
docker push tloubrieu/sdap-ingest-manager:latest
Kubernetes
为您的部署创建configMap
从现有的本地配置文件准备一个configMap
kubectl create configmap collection-ingester-config --from-file=venv/.sdap_ingest_manager -n sdap
如果您从的不是您需要的配置,您可以手动更新configMap
kubectl get configmap collection-ingester-config -o yaml -n sdap > containers/kubernetes/sdap_ingester_config.yml
手动编辑yml文件,只保留与部署相关的配置(如果与当前配置不同)
替换configmap
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
项目详情
下载文件
下载适用于您的平台文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
构建分布
sdap_ingest_manager-0.3.0rc3.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 74cc805a44b2506a9442e9b3d636d3ed5a69bc4054672e12e2ea4622f972d58c |
|
MD5 | f10acfc0dc9be53d1f902a300a38057d |
|
BLAKE2b-256 | 78ea1a9fe139dfa12fcd2f1007847153ab45ebe123758719fdbfa633f15bafc5 |
sdap_ingest_manager-0.3.0rc3-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2715511249a76c55851ed70ad0f55a503ab6aab1c495bac573703e69928d76b5 |
|
MD5 | fe98df4d0fa624f6dd4d4129d4812e56 |
|
BLAKE2b-256 | 6900d8bb7c1c61f0ab1a96146ed4cdbd2580b580d89d9fb0a8c179fd5be1a6a1 |