- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在 Ubuntu14.04 上运行的 Openstack 上创建了一个 Spark 集群,内存为 8gb。我创建了两个虚拟机,每个 3gb(为父操作系统保留 2gb)。此外,我从第一台虚拟机创建了一个主服务器和 2 个工作人员,从第二台机器创建了 3 个工作人员。
spark-env.sh 文件有基本设置
export SPARK_MASTER_IP=10.0.0.30
export SPARK_WORKER_INSTANCES=2
export SPARK_WORKER_MEMORY=1g
export SPARK_WORKER_CORES=1
每当我使用 start-all.sh 部署集群时,我都会收到“无法启动 org.apache.spark.deploy.worker.Worker”和有时“无法启动 org.apache.spark.deploy.master。掌握”。当我看到日志文件以查找错误时,我得到以下内容
Spark Command: /usr/lib/jvm/java-7-openjdk-amd64/bin/java -cp >/home/ubuntu/spark-1.5.1/sbin/../conf/:/home/ubuntu/spark->1.5.1/assembly/target/scala-2.10/spark-assembly-1.5.1->hadoop2.2.0.jar:/home/ubuntu/spark-1.5.1/lib_managed/jars/datanucleus-api->jdo-3.2.6.jar:/home/ubuntu/spark-1.5.1/lib_managed/jars/datanucleus-core->3.2.10.jar:/home/ubuntu/spark-1.5.1/lib_managed/jars/datanucleus-rdbms->3.2.9.jar -Xms1g -Xmx1g -XX:MaxPermSize=256m >org.apache.spark.deploy.master.Master --ip 10.0.0.30 --port 7077 --webui->port 8080
虽然我收到了失败消息,但 master 或 worker 几秒钟后就活了。
有人能解释一下原因吗?
最佳答案
Spark 配置系统是一堆环境变量、参数标志和 Java 属性文件。我只是花了几个小时来追踪相同的警告,并解开了 Spark 初始化过程,这是我发现的:
sbin/start-all.sh
调用 sbin/start-master.sh
(然后是 sbin/start-slaves.sh
) sbin/start-master.sh
调用sbin/spark-daemon.sh start org.apache.spark.deploy.master.Master ...
sbin/spark-daemon.sh start ...
fork 调用 bin/spark-class org.apache.spark.deploy.master.Master ...
,捕获结果进程id(pid),休眠2秒,然后检查pid的命令名是否为“java”bin/spark-class
是一个 bash 脚本,因此它以命令名称“bash”开始,然后继续:
bin/load-spark-env.sh
加载 Spark 环境java
可执行文件java ... org.apache.spark.launcher.Main ...
以获得 Spark 部署所需的完整类路径exec
将控制权移交给 java ... org.apache.spark.deploy.master.Master
,此时命令名称变为“ java ”如果步骤 4.1 到 4.5 花费的时间超过 2 秒,根据我(和你)的经验,在以前从未运行过 java
的新操作系统上,这似乎是不可避免的,你将得到“启动失败”消息,尽管实际上并没有失败。
slaves 会出于同样的原因提示,并反复尝试直到 master 实际可用,但他们应该不断重试直到成功连接到 master。
我有一个在 EC2 上运行的非常标准的 Spark 部署;我使用:
conf/spark-defaults.conf
设置 spark.executor.memory
并通过 spark.{driver,executor}.extraClassPath< 添加一些自定义 jar/
conf/spark-env.sh
设置 SPARK_WORKER_CORES=$(($(nproc) * 2))
conf/slaves
列出我的奴隶以下是我如何启动 Spark 部署,绕过一些 {bin,sbin}/*.sh
雷区/迷宫:
# on master, with SPARK_HOME and conf/slaves set appropriately
mapfile -t ARGS < <(java -cp $SPARK_HOME/lib/spark-assembly-1.6.1-hadoop2.6.0.jar org.apache.spark.launcher.Main org.apache.spark.deploy.master.Master | tr '\0' '\n')
# $ARGS now contains the full call to start the master, which I daemonize with nohup
SPARK_PUBLIC_DNS=0.0.0.0 nohup "${ARGS[@]}" >> $SPARK_HOME/master.log 2>&1 < /dev/null &
我仍在使用 sbin/start-daemon.sh
来启动从服务器,因为这比在 ssh
中调用 nohup
更容易命令:
MASTER=spark://$(hostname -i):7077
while read -r; do
ssh -o StrictHostKeyChecking=no $REPLY "$SPARK_HOME/sbin/spark-daemon.sh start org.apache.spark.deploy.worker.Worker 1 $MASTER" &
done <$SPARK_HOME/conf/slaves
# this forks the ssh calls, so wait for them to exit before you logout
那里!它假设我正在使用所有默认端口和东西,并且我没有做像在文件名中放置空格这样的愚蠢行为,但我认为这样更干净。
关于ubuntu - Apache Spark : "failed to launch org.apache.spark.deploy.worker.Worker" or Master,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35144559/
我是 DevOps 的新手。我为刚刚在 Digital Oceans 上创建的 Kubernetes 集群编写了一个 deployment.yaml 文件。创建部署不断出现我现在无法解码的错误。这只是
我需要能够在 Red5 运行时进行部署。我知道的唯一解决方案是使用 WAR 文件并将其放在文件夹中:webapp。 还有其他办法吗? 我使用的是 Red 5 v0.8。我使用 Eclipse 3.4
我收到以下错误: Recycling (Waiting for role to start... Sites are being deployed. [2012-12-17T05:30:10Z]) R
使用 TeamCity 6.5,我试图弄清楚如果可能的话,如何为特定的构建运行设置手动部署。 我希望能够做的是运行已经构建和测试的 TeamCity(仅需要部署工件 - 这不是 Web 应用程序或站点
我看到一个范围为环境的编辑变量权限。但是,似乎谁负责设置项目,谁就会负责创建变量,而其他一些安全实体将只负责修改值,特别是安全值。这可能吗? 编辑:再补充一点,我想我是在根据项目变量集请求权限。只有拥
在我通过命令部署到我的服务器后: bin/dep deploy 在“releases ”文件夹中,我有名为喜欢的文件夹 1 , 2 , 3 , ... 我怎样才能把它改成时间戳,所以在部署命令之后我会
问题: 我有一个手动干预步骤,其中包含执行部署的人员要遵循的文本步骤。 我想传递目标服务器的名称,这样这个人就不需要查找目标服务器名称。 例如,如下所示,我需要将它们解压缩到目标服务器上的某个位置。
这是一个系统 Octopus 部署变量: #{Octopus.Action[Deploy To Server].Output.Package.InstallationDirectoryPath} 文本
我正在尝试在 Octopus Deploy 中设置部署。与许多其他开发人员一样,我通过迭代来做到这一点:调整步骤/脚本/包 -> 单击“部署” -> 检查结果 -> 如果不满意,则重新开始。在 Oct
在使用 Network Deployment 安装 WebSphere Application Server 时,节点是: 物理机 操作系统实例 一组独立于物理机或操作系统实例的逻辑 WAS 实例 最
我知道目前有一个 feature request对于这样的事情,但我希望使用当前版本(1.6)有某种解决方法 我们从 TFS 中的开发分支为我们的开发和测试环境构建,并从 TFS 中的发布分支为我们的
我正在尝试运行由 MSBuild 生成的 ProjectName.deply.cmd 当参数 /p:DeployOnBuild=True通过。参数“ComputerName”之一将作为 https:/
有时首选和/或需要在单个服务器上托管数十个应用程序。不是说这是“对”或“错”,我只是说它发生了。 此配置的缺点是出现错误消息Waiting for the script in task [TASK I
部署准备使用的 erlang 应用程序时我 不要希望用户 在上找到正确的 erl 版本 互联网。 安装 erl vm 解压缩并确定梁文件的位置(与应用程序一起) 阅读自述文件 修改任何看起来像配置文件
使用Next.js创建的app部署到netlify时,出现如下错误,部署失败。 ────────────────────────────────────────────────────────────
我有一个包含两个模块的项目:客户端和服务器。在父 pom.xml 中,我添加了部署阶段的信息,以便部署到本地目录: 4.0.0 org.my myTest 0.1 pom m
我们正在运行 OD 1.6。 我想使用 OD 变量来更改不在应用设置部分中的值,例如 session 状态提供程序。 我知道我可以为此使用转换,但作为一家公司,我们更喜欢使用 OD 变量而不是转换,因
Plesk Obsidian 提供 GIT 部署,我们正在尝试将其配置为类似于我们之前在 CPANEL 上的配置(我们最近从与 CPANEL 的共享帐户升级到与 Plesk 的 VPS - Plesk
我对这个主题进行了大量研究,但找不到任何端到端解决方案来使用 TFS 2010 实现“一次构建并部署多次”。 基本上我在想的是有一个构建定义,它将构建一个解决方案,其中包含多个要部署的项目(Web 应
我已经阅读了关于如何使用 pm2 的几个问题和想法。在 Windows 机器下,不管你信不信,我以前的机器运行得很好......然后我不得不重新格式化它并完全忘记了我以前做过的事情:( 我已经安装了
我是一名优秀的程序员,十分优秀!