我Apache Spark
在AWS中创建了一个3节点(1个主节点,2个工作人员)集群。我可以将作业从主服务器提交到群集,但是我无法使其在远程工作。
/* SimpleApp.scala */
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
object SimpleApp {
def main(args: Array[String]) {
val logFile = "/usr/local/spark/README.md" // Should be some file on your system
val conf = new SparkConf().setAppName("Simple Application").setMaster("spark://ec2-54-245-111-320.compute-1.amazonaws.com:7077")
val sc = new SparkContext(conf)
val logData = sc.textFile(logFile, 2).cache()
val numAs = logData.filter(line => line.contains("a")).count()
val numBs = logData.filter(line => line.contains("b")).count()
println(s"Lines with a: $numAs, Lines with b: $numBs")
sc.stop()
}
}
我可以从主人那里看到:
Spark Master at spark://ip-171-13-22-125.ec2.internal:7077
URL: spark://ip-171-13-22-125.ec2.internal:7077
REST URL: spark://ip-171-13-22-125.ec2.internal:6066 (cluster mode)
因此,当我SimpleApp.scala
从本地计算机执行时,它无法连接到Spark Master
:
2017-02-04 19:59:44,074 INFO [appclient-register-master-threadpool-0] client.StandaloneAppClient$ClientEndpoint (Logging.scala:54) [] - Connecting to master spark://ec2-54-245-111-320.compute-1.amazonaws.com:7077...
2017-02-04 19:59:44,166 WARN [appclient-register-master-threadpool-0] client.StandaloneAppClient$ClientEndpoint (Logging.scala:87) [] - Failed to connect to spark://ec2-54-245-111-320.compute-1.amazonaws.com:7077
org.apache.spark.SparkException: Exception thrown in awaitResult
at org.apache.spark.rpc.RpcTimeout$$anonfun$1.applyOrElse(RpcTimeout.scala:77) ~[spark-core_2.10-2.0.2.jar:2.0.2]
at org.apache.spark.rpc.RpcTimeout$$anonfun$1.applyOrElse(RpcTimeout.scala:75) ~[spark-core_2.10-2.0.2.jar:2.0.2]
at scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:33) ~[scala-library-2.10.0.jar:?]
at org.apache.spark.rpc.RpcTimeout$$anonfun$addMessageIfTimeout$1.applyOrElse(RpcTimeout.scala:59) ~[spark-core_2.10-2.0.2.jar:2.0.2]
但是,我知道如果将master设置为local
,它会起作用,因为那样它将在本地运行。但是,我希望客户端连接到该远程主服务器。我该怎么做?Apache配置外观文件。我什至可以远程登录到该公共DNS和端口,还/etc/hosts
为每个EC2
实例配置了公共DNS和主机名。我希望能够向该远程主服务器提交作业,我还缺少什么?
要绑定主主机名/ IP,请转到您的spark安装conf目录(spark-2.0.2-bin-hadoop2.7 /
conf),然后使用以下命令创建spark-env.sh文件。
cp spark-env.sh.template spark-env.sh
在vi编辑器中打开spark-env.sh文件,并在下面添加带有主服务器主机名/ IP的行。
SPARK_MASTER_HOST=ec2-54-245-111-320.compute-1.amazonaws.com
使用stop-all.sh和start-all.sh停止并启动Spark。现在您可以使用它来连接远程主机
val spark = SparkSession.builder()
.appName("SparkSample")
.master("spark://ec2-54-245-111-320.compute-1.amazonaws.com:7077")
.getOrCreate()
有关设置环境变量的更多信息,请检查http://spark.apache.org/docs/latest/spark-
standalone.html#cluster-launch-
scripts
因此,当我从本地计算机执行时,它无法连接到: 但是,我知道如果我将主程序设置为,它就会起作用,因为这样它就会在本地运行。但是,我想让我的客户端连接到这个远程主机。我怎么才能做到?Apache配置看起来是文件。我甚至可以远程登录到该公共DNS和端口,我还为每个实例配置了公共DNS和主机名。我希望能够向这个远程主机提交作业,我错过了什么?
我正在尝试使用JProfiler分析远程主机/服务器上的Web应用程序,但该过程似乎比我想象的要复杂。 我已经设法在我的开发工作副本上本地评测了,但结果在那里没有用处。 有没有一种方法可以将JProfiler连接到该服务器,而无需将其安装在远程机器/服务器上,因为这不是我拥有的选项。类似于远程调试,我在其中配置主机和端口并连接。 提前感谢!
使用VisualVM,我可以看到两种类型来连接远程主机。 > jstatd 所以我正在尝试使用JMX,我学习了很多教程,但到目前为止还没有成功。 目前,有我的桌面和一个运行java服务器应用程序的linux盒子。我正在尝试在桌面上设置VisualVM客户端,以查看在linux Box上运行的java应用程序。 我为Linux上的java应用程序在start.sh脚本上添加了以下JAVA_OPTS脚
问题内容: 我有以下骆驼对Redis进行投票: 而且效果很好。但是,当我将redisUri从 至 我收到以下错误: 我检查了通过telnet到并使用redis-cli可以访问elasticache。 连接到远程主机时出现此错误是什么? 我的本地redis和elasticache redis都运行2.8.24。运行骆驼2.17.1。 问题答案: 这是我的工作方式: 属性文件: 骆驼路线与以前相同。
我在Google Cloud DataProc上创建了一个3节点(1个master,2个workers)的Apache Spark集群。当通过ssh与主服务器连接时,我可以向集群提交作业,但是我不能让它远程工作。我找不到任何关于如何做到这一点的文档,除了AWS上的一个类似问题,但这对我不起作用。 以下是我正在尝试的
问题内容: 有没有办法以编程方式找到它?我需要此作为自动运行的一部分;因此,如果现有的远程API调用可以做到这一点,这将非常有帮助。 问题答案: 您无需解析HTML-通过添加URL后缀,可以将大多数Hudson页面转换为API调用,例如 拨打以下电话: http:// hudson:8080 / computer / api / json 如果您更喜欢json,则将json切换为xml或pytho