我的环境中正在ECS cluster运行,它配置了任务、存储库和服务以及自动缩放。
我正在发现该AWS Batch服务,当我创建一个新的服务时,compute environment一个新的集群将被添加到该ECS服务中。我想知道如何将 a 设置compute environment为我已有的集群?
如果我运行后端的单个 docker 容器,它运行良好并连接到在主机上运行的 mongodb。但是当我使用 docker-compose 运行后端时,它不会连接到 mongodb 并打印到控制台:
MongoError: failed to connect to server [12.345.678.912:27017] on first connect [MongoError: connection 0 to 12.345.678.912:27017 timed out]
Run Code Online (Sandbox Code Playgroud)
docker-compose.yml 内容:
version: "3"
services:
web:
image: __BE-IMAGE__
deploy:
replicas: 1
restart_policy:
condition: on-failure
resources:
limits:
cpus: "0.1"
memory: 2048M
ports:
- "1337:8080"
networks:
- webnet
visualizer:
image: dockersamples/visualizer:stable
ports:
- "1340:8080"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
deploy:
placement:
constraints: [node.role == manager]
networks:
- webnet
networks:
webnet:
Run Code Online (Sandbox Code Playgroud)
我如何运行单个 docker 容器:
docker run -p 1337:8080 BE-IMAGE
Run Code Online (Sandbox Code Playgroud) 我创建了一个无头服务:
apiVersion: v1
kind: Service
metadata:
name: myapp-service-headless
spec:
ports:
- port: 80
selector:
app: myapp
clusterIP: None
Run Code Online (Sandbox Code Playgroud)
从 Kubernetes 仪表板我可以看到它Internal endpoints:
myapp-service-headless:80 TCP
myapp-service-headless:0 TCP
Run Code Online (Sandbox Code Playgroud)
在此应用程序中,我还将内部端点设置为:
http://myapp-service-headless
Run Code Online (Sandbox Code Playgroud)
但是从外部如何访问其IP来连接API呢?
比如我的Kubernetes的IP是192.168.99.100,那么连接192.168.99.100可以吗?
我最初的问题是如何在集群上运行 CVX 工具箱(具有学术许可证)。我无法找到直接的方法来做到这一点,所以我决定以不同的方式解决这个问题。
CVX 许可证依赖于硬件,每个学术许可证与 4 个硬件绑定。我想将其中一个节点(可能是两个)添加到许可证列表中。为此,我需要始终在相同的硬件或节点上运行 CVX(我知道这可能不是一种有效的方法)。有什么办法可以做到吗?
我已经通过运行以下命令安装了 databricks cli 工具
pip install databricks-cli使用适合您的 Python 安装的 pip 版本。如果您使用的是 Python 3,请运行 pip3。
然后,通过创建 PAT(Databricks 中的个人访问令牌),我运行以下 .sh bash 脚本:
# You can run this on Windows as well, just change to a batch files
# Note: You need the Databricks CLI installed and you need a token configued
#!/bin/bash
echo "Creating DBFS direcrtory"
dbfs mkdirs dbfs:/databricks/packages
echo "Uploading cluster init script"
dbfs cp --overwrite python_dependencies.sh dbfs:/databricks/packages/python_dependencies.sh
echo "Listing DBFS direcrtory"
dbfs ls dbfs:/databricks/packages
Run Code Online (Sandbox Code Playgroud)
python_dependency.sh 脚本
#!/bin/bash
# Restart …Run Code Online (Sandbox Code Playgroud) 我之前在LSF集群上使用过snakemake,一切都工作得很好。然而,最近我迁移到 SGE 集群,当我尝试使用多个通配符运行一项作业时,出现了一个非常奇怪的错误。
当我尝试根据此规则提交作业时
rule download_reads :
threads : 1
output : "data/{sp}/raw_reads/{accesion}_1.fastq.gz"
shell : "scripts/download_reads.sh {wildcards.sp} {wildcards.accesion} data/{wildcards.sp}/raw_reads/{wildcards.accesion}"
Run Code Online (Sandbox Code Playgroud)
我收到以下错误(snakemake_clust.sh详细信息如下)
./snakemake_clust.sh data/Ecol1/raw_reads/SRA123456_1.fastq.gz
Building DAG of jobs...
Using shell: /bin/bash
Provided cluster nodes: 10
Job counts:
count jobs
1 download_reads
1
[Thu Jul 30 12:08:57 2020]
rule download_reads:
output: data/Ecol1/raw_reads/SRA123456_1.fastq.gz
jobid: 0
wildcards: sp=Ecol1, accesion=SRA123456
scripts/download_reads.sh Ecol1 SRA123456 data/Ecol1/raw_reads/SRA123456
Unable to run job: ERROR! two files are specified for the same host
ERROR! two files are specified for the …Run Code Online (Sandbox Code Playgroud) 我试图找出为什么在使用 Databricks Job API 时出现以下错误。
{ "error_code": "INVALID_PARAMETER_VALUE", "message": "集群验证错误:缺少必填字段:settings.cluster_spec.new_cluster.size" }
我做了什么:
{
"new_cluster": {
"spark_version": "7.5.x-scala2.12",
"spark_conf": {
"spark.master": "local[*]",
"spark.databricks.cluster.profile": "singleNode"
},
"azure_attributes": {
"availability": "ON_DEMAND_AZURE",
"first_on_demand": 1,
"spot_bid_max_price": -1
},
"node_type_id": "Standard_DS3_v2",
"driver_node_type_id": "Standard_DS3_v2",
"custom_tags": {
"ResourceClass": "SingleNode"
},
"enable_elastic_disk": true
},
"libraries": [
{
"pypi": {
"package": "koalas==1.5.0"
}
}
],
"notebook_task": {
"notebook_path": "/pathtoNotebook/TheNotebook",
"base_parameters": {
"param1": "test"
}
}, …Run Code Online (Sandbox Code Playgroud) Node 说它cluster.isMaster已被弃用,我们应该使用cluster.isPrimary. 但是,虽然isMaster毫无问题地返回我 true,但当我undefined尝试时我得到cluster.isPrimary:
const cluster = require("cluster");
console.log(cluster.isPrimary); /// undefined
console.log(cluster.isMaster); /// true
Run Code Online (Sandbox Code Playgroud)
为什么会发生这种情况?
multithreading cluster-computing child-process node.js node-cluster
我们有许多 Python Databricks 作业,它们都使用相同的底层 Wheel 包来安装其依赖项。即使节点已在池中闲置,安装此 Wheel 软件包仍需要 90 秒。
其中一些作业运行时间非常长,因此我们希望使用作业计算机集群来降低 DBU 的成本。
其中一些作业的运行时间要短得多(<10 秒),其中 90 秒的安装时间似乎更重要。我们一直在考虑使用热集群(通用计算)来完成这些较短的作业。如果可能的话,我们希望避免通用计算的额外成本。
阅读 Databricks 文档表明池中的空闲实例是为我们保留的,但不会消耗我们的 DBU。有没有办法让我们在空闲实例上预安装所需的库,以便当作业完成时我们能够立即开始处理它?
是否有替代方法可以满足类似的用例?
我创建了一个cluster.yaml包含以下信息的文件:
---\napiVersion: eksctl.io/v1alpha5\nkind: ClusterConfig\nmetadata:\n name: eks-litmus-demo\n region: ${AWS_REGION}\n version: "1.21"\nmanagedNodeGroups:\n - instanceType: m5.large\n amiFamily: AmazonLinux2\n name: eks-litmus-demo-ng\n desiredCapacity: 2\n minSize: 2\n maxSize: 4\nEOF\nRun Code Online (Sandbox Code Playgroud)\n当我$ eksctl create cluster -f cluster.yaml通过终端运行创建集群时,出现以下错误:
错误:检查 AWS STS 访问 \xe2\x80\x93 无法获取当前会话的角色 ARN:MissingEndpoint:此服务需要“端点”配置
\n我该如何解决这个问题?请帮忙!!!
\n注意:我将 STS 下的全球和区域终端节点设置为“在所有 AWS 区域均有效”。
\nyaml cluster-computing amazon-web-services amazon-eks eksctl
databricks ×2
python ×2
amazon-ecs ×1
amazon-eks ×1
apache-spark ×1
api ×1
azure ×1
bash ×1
cvx ×1
docker-swarm ×1
eksctl ×1
endpoint ×1
internals ×1
ip ×1
jobs ×1
kubernetes ×1
linux ×1
mongodb ×1
node-cluster ×1
node.js ×1
pool ×1
slurm ×1
snakemake ×1
solution ×1
yaml ×1