您好,我对云计算非常陌生,所以我对(也许)这个愚蠢的问题表示歉意。我需要帮助才能知道我所做的实际上是在集群上计算还是只是在主服务器上计算(无用的东西)。
我可以做什么: 我可以使用 AWS 控制台设置一个由一定数量的节点组成的集群,并在所有节点上安装 Spark。我可以通过 SSH 连接到主节点。那么需要什么才能在集群上运行我的带有 Spark 代码的 jar。
我会做什么: 我会调用spark-submit来运行我的代码:
spark-submit --class cc.Main /home/ubuntu/MySparkCode.jar 3 [arguments]
Run Code Online (Sandbox Code Playgroud)
我的疑问:
是否需要使用 --master 和 master 的“spark://”引用来指定 master ?我在哪里可以找到该参考资料?我应该运行 sbin/start-master.sh 中的脚本来启动独立集群管理器还是已经设置了?如果我运行上面的代码,我想该代码只能在主服务器上本地运行,对吧?
我可以将输入文件仅保留在主节点上吗?假设我要统计一个巨大文本文件的字数,我可以只将其保存在master的磁盘上吗?或者为了保持并行性,我需要像 HDFS 这样的分布式内存?我不明白这一点,如果适合的话,我会将其保留在主节点磁盘上。
谢谢您的回复。
UPDATE1: 我尝试在集群上运行 Pi 示例,但无法得到结果。
$ sudo spark-submit --class org.apache.spark.examples.SparkPi --master yarn --deploy-mode cluster /usr/lib/spark/examples/jars/spark-examples.jar 10
Run Code Online (Sandbox Code Playgroud)
我希望得到一行 print ,Pi is roughly 3.14...而不是我得到:
17/04/15 13:16:01 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
17/04/15 13:16:03 INFO RMProxy: Connecting to ResourceManager …Run Code Online (Sandbox Code Playgroud) 我有一个 XYZ 文本文件,由 CNC 铣床上的雷尼绍接触式测头生成,我试图在 MeshLab 中打开该文件。导入后我什么也看不到。这是一个仅包含 XYZ 位置的简单文件。一个简短的例子:
X04.0000Y01.1374Z-01.5000
X04.5000Y00.9715Z-01.5000
X05.0000Y00.7969Z-01.5000
X05.0000Y00.8322Z-01.3356
X04.5000Y01.0022Z-01.3431
X04.0000Y01.1603Z-01.3500
X03.9000Y01.1708Z-01.3491
X03.8000Y01.1392Z-01.3472
X03.7000Y01.1236Z-01.3461
Run Code Online (Sandbox Code Playgroud)
这个例子太短了,如果你连接这些点,它只是一条线。我尝试按照导入对话框的要求在每个值之间添加空格,但屏幕上没有显示任何内容。关于如何实现这一点的文档很少或根本没有。
任何人都可以打开这个简单的文本文件并提供完成此操作的步骤吗?
我正在评估将使用 docker-compose 的应用程序迁移到 Kubernates,并发现了两种解决方案:Kompose 和 compose-on-kubernetes。
我想知道它们在功能/易用性方面的差异,以便决定哪一个更适合。
我在 Azure 中使用 Ubuntu 操作系统映像创建了 VMSS。目前,我有 3 台机器正在运行,磁盘大小为 30GB。如何在 Linux VMSS 实例中扩展到 64GB 或 128GB 磁盘?我尝试使用托管磁盘和非托管磁盘创建 VMSS,可以选择添加数据磁盘,但没有选择增加现有磁盘的大小。
帮助我了解如何扩展或增加 Azure 中运行的现有 VMSS 实例的磁盘默认大小?
提前致谢。如果您需要更多信息,请告诉我,我们很乐意提供任何其他信息。
cloud virtual-machine azure azure-virtual-machine public-cloud
在我的业务应用程序中,我必须定期批处理来自某个主题的所有消息,因为它比以先到先服务的方式处理它们要便宜。我目前计划的方法是让cronjob订阅者每小时运行一次T。我当前正在解决的问题是如何在处理完所有消息后终止订阅者。cronjob我想每小时启动一次T,让订阅者消耗主题队列中的所有消息并终止。据我了解,没有pub-subJava API 告诉我主题队列是否为空。我想出了以下2个解决方案:
创建一个异步拉取的订阅者。t minutes在它消耗所有消息时休眠,然后使用 终止它subscriber.stopAsync().awaitTerminated();。在这种方法中,我有可能在终止订阅者之前不会消耗所有消息。谷歌的例子在这里
用于Pub/Sub Cloud monitoring查找指标的值 subscription/num_undelivered_messages。然后使用Google 提供的同步拉取示例拉取那么多消息。然后终止订阅者。
有一个更好的方法吗?
谢谢!
cloud publish-subscribe google-cloud-platform google-cloud-pubsub
我正在尝试获取预签名 URL以将文件上传到 S3 存储桶。这是我的工作流程:
1. 调用 Lambda -> 2. 获取预签名 URL -> 3. 使用文件点击 URL (PUT)
1. 调用Lambda
我确保 AWS 密钥具有正确的权限。事实上,它具有完全访问权限。这是源代码:
AWS.config.update({
accessKeyId: '*****************',
secretAccessKey: '*****************',
region: 'us-east-1',
signatureVersion: 'v4'
});
let requestObject = JSON.parse(event["body"]);
let fileName = requestObject.fileName;
let fileType = requestObject.fileType;
const myBucket = 'jobobo-resumes';
s3.getSignedUrl('putObject', {
"Bucket": myBucket,
"Key": fileName,
"ContentType": fileType
}, function (err, url) {
if (err) {
mainCallback(null, err);
} else {
mainCallback(null, url);
}
}
Run Code Online (Sandbox Code Playgroud)
因此,我从请求中获取文件名、文件类型(MIME)并使用它来创建签名。
2. 获取预签名 URL 当我点击 Lambda …
我是 Docker 新手,并试图了解容器之间的网络。我正在运行两个容器,一个用于 Node.js API 服务器的容器,一个用于保存前端 React UI 的容器。在本地运行它们时一切正常。API 服务器公开端口 3001,我可以从我的 React 站点调用 localhost:3001/api。
鉴于容器的思想是可以在任何地方运行,那么如何保证这两个容器服务在不在本地机器上运行时可以连接?我知道可以在 docker 容器之间设置网络,但这似乎不适用于这种情况,因为反应容器没有发出请求,而是客户端访问反应容器(因此 localhost 现在将引用他们的机器而不是我的 API 容器)。
部署此类架构的最佳实践是什么?
需要什么样的设置来保证这些容器可以在云部署中进行通信,其中 API 主机可以在部署时动态生成?
如果相关的话,我正在专门寻找部署到 AWS ECS 的方法。
编辑:
package.json 代理仅在开发中相关,因为代理在 React 应用程序的生产构建中不会生效。
我尝试在 AWS EB 中设置 Flask 应用程序,并在日志上运行此问题。
Failed to find attribute 'application' in 'app'.
我的应用程序正在使用应用程序工厂,因此 init 是在函数中设置的。
def create_app(config_name):
app = Flask(__name__)
from .api.routes import api
app.register_blueprint(api, url_prefix="/api/v1")
from .main import main
app.register_blueprint(main)
app.run()
return app
Run Code Online (Sandbox Code Playgroud)
我已更改 WSGIPath 以匹配我的应用程序名称和对象:
aws:elasticbeanstalk:container:python:
NumProcesses: '1'
NumThreads: '15'
WSGIPath: app
Run Code Online (Sandbox Code Playgroud)
我的应用程序结构如下所示:
__init__.py(empty)
app.py
main.py
requirements.txt
api/
__init___.py (empty)
routes.py
Run Code Online (Sandbox Code Playgroud)
我缺少什么?我感觉自己如此亲近,同时又如此遥远。
感谢您的帮助。
我对这三个术语感到困惑。我所知道的OCI是Oracle提供的基础设施,IAM是用户,IDCS是身份云服务。但我不明白差异和术语。
Is IAM user and normal user are same?
is OCI and IDCS are same?
What exactly IDCS is?
Run Code Online (Sandbox Code Playgroud) cloud oracle plsqldeveloper oracle-sqldeveloper oracle-cloud-infrastructure
cloud ×10
amazon-ecs ×1
amazon-s3 ×1
apache-spark ×1
aws-lambda ×1
azure ×1
deployment ×1
docker ×1
emr ×1
flask ×1
hdfs ×1
import ×1
kubernetes ×1
meshlab ×1
migration ×1
networking ×1
oracle ×1
oracle-cloud-infrastructure ×1
point ×1
public-cloud ×1
python ×1
text ×1