小编Jim*_*hse的帖子

我的Spark工作者无法连接Master.Akka有什么问题吗?

我想用我的两个虚拟机将Spark Standlone模式安装到Cluster.
使用spark-0.9.1-bin-hadoop1的版本,我在每个vm中成功执行spark-shell.我按照官方文档制作一个vm(ip:xx.xx.xx.223)作为Master和Worker,并将另一个(ip:xx.xx.xx.224)作为Worker.
但是224-ip vm无法连接223-ip vm.接下来是223(Master)的主日志:

[@tc-52-223 logs]# tail -100f spark-root-org.apache.spark.deploy.master.Master-1-tc-52-223.out
Spark Command: /usr/local/jdk/bin/java -cp :/data/test/spark-0.9.1-bin-hadoop1/conf:/data/test/spark-0.9.1-bin-hadoop1/assembly/target/scala-2.10/spark-assembly_2.10-0.9.1-hadoop1.0.4.jar -Dspark.akka.logLifecycleEvents=true -Djava.library.path= -Xms512m -Xmx512m org.apache.spark.deploy.master.Master --ip 10.11.52.223 --port 7077 --webui-port 8080

log4j:WARN No appenders could be found for logger (akka.event.slf4j.Slf4jLogger).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
14/04/14 22:17:03 INFO Master: Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
14/04/14 22:17:03 INFO Master: Starting Spark master at spark://10.11.52.223:7077
14/04/14 22:17:03 INFO MasterWebUI: Started Master web UI at http://tc-52-223:8080 …
Run Code Online (Sandbox Code Playgroud)

cluster-computing akka apache-spark

13
推荐指数
2
解决办法
3万
查看次数

删除JavaFX按钮填充?

我正在构建一个非常简单的计算器,我无法弄清楚这些按钮周围的填充来自哪里.以下是我构建流程窗格的方法:

private FlowPane addFlowPaneRightSide() {

    FlowPane flow = new FlowPane();
    //flow.setPadding(new Insets(0, 0, 0, 0));
    flow.setVgap(0);
    flow.setHgap(0);
    flow.setPrefWrapLength(WIDTH_OF_CENTER / 3); // width of function buttons
    flow.setStyle("-fx-background-color: 978c87;");

    // setup arrays to hold the buttons and images for the right column
    Button operatorButtons[] = new Button[NUM_OP_BUTTONS];
    ImageView operatorImages[] = new ImageView[NUM_OP_BUTTONS];

    for (int i=0; i < NUM_OP_BUTTONS; i++) {
        operatorImages[i] = new ImageView(
                new Image(Calculator.class.getResourceAsStream(
                "images/orange-"+(i)+".png")));
        operatorButtons[i] = new Button();
        operatorButtons[i].setGraphic(operatorImages[i]);
        operatorButtons[i].setId("orange-"+(i));
        flow.getChildren().add(operatorButtons[i]);
    }

    return flow;
}
Run Code Online (Sandbox Code Playgroud)

当我只是将图像放在流程窗格中时,它运行正常,但是当我开始在循环中创建按钮时,它给了我:

想象一下优胜美地计算器,但计算器上每个按钮之间的像素大约为10像素.

我的CSS:

/* 
    Document …
Run Code Online (Sandbox Code Playgroud)

java javafx button padding

8
推荐指数
1
解决办法
1万
查看次数

Kryo序列化程序在底层Scala类WrappedArray上导致异常

两个问题,一般问题的答案将指导我如何最小化MVCE.

1)我怎么知道预先注册WrappedArray,(以及我可能使用的Scala中的其他所有类)?必须使用Kryo从库中注册类是否正常?

具体:

2)我该如何解决这个问题?(如果在这里反映一个错误的错误,我愿意承认我可能还有别的东西会搞错,所以不要为了重现这个而自杀

细节

使用与遗传学和统计相关的客户类,在Spark 1.4.1,Scala 2.11.5上使用SparkConf上的以下设置测试Java中的Spark程序:

// for kyro serializer it wants to register all classes that need to be serialized
Class[] kryoClassArray = new Class[]{DropResult.class, DropEvaluation.class, PrintHetSharing.class};

SparkConf sparkConf = new SparkConf().setAppName("PipeLinkageData")
                <SNIP other settings to declare master>
                .set("spark.serializer", "org.apache.spark.serializer.KryoSerializer")
                //require registration of all classes with Kryo
                .set("spark.kryo.registrationRequired", "true")
                .registerKryoClasses(kryoClassArray);
Run Code Online (Sandbox Code Playgroud)

获取此错误(在长错误列表结束时重复):

Caused by: java.lang.IllegalArgumentException: Class is not
registered: scala.collection.mutable.WrappedArray$ofRef Note: To
register this class use:
kryo.register(scala.collection.mutable.WrappedArray$ofRef.class);
Run Code Online (Sandbox Code Playgroud)

但我从来没有从我的代码中调用该类.我可以添加scala.collection.mutable.WrappedArray到kryoClassArray但它不能解决问题.如果我添加scala.collection.mutable.WrappedArray $ ofRef.class(如错误中所示)这是一个语法错误,我看到我不能在这里声明一个匿名函数?

MVCE:我已经启动了一个MVCE,但问题是,对我们的类做一个需要外部库和文本/数据文件.一旦我删除了我们的课程,我就没有问题.如果有人能够回答一般性问题,那么可能有助于指导我能够提出多少MVCE.

当我写这个问题时,我得到了更新到1.5.2,将看看是否有任何变化,如果有更新问题.

没有MVCE这里是我的班级声明:

public class …
Run Code Online (Sandbox Code Playgroud)

java serialization scala kryo apache-spark

6
推荐指数
1
解决办法
3737
查看次数

Spark spark-submit --jars参数想要逗号列表,如何声明jar的目录?

Spark文档中提交应用程序时,从1.6.0及更早版本开始,目前尚不清楚如何指定--jars参数,因为它显然不是冒号分隔的类路径而不是目录扩展.

文档说"捆绑jar的路径,包括你的应用程序和所有依赖项.URL必须在集群内部全局可见,例如,hdfs://路径或所有节点上都存在的file://路径. "

问题:在$ SPARK_HOME/bin的spark-submit脚本中使用--jars提交类路径的所有选项有哪些?任何未记录的内容可以作为文档的改进提交?

我问,因为当我测试 - 今天的时候,我们必须明确地提供每个jar的路径:

/usr/local/spark/bin/spark-submit --class jpsgcs.thold.PipeLinkageData ---jars=local:/usr/local/spark/jars/groovy-all-2.3.3.jar,local:/usr/local/spark/jars/guava-14.0.1.jar,local:/usr/local/spark/jars/jopt-simple-4.6.jar,local:/usr/local/spark/jars/jpsgcs-core-1.0.8-2.jar,local:/usr/local/spark/jars/jpsgcs-pipe-1.0.6-7.jar /usr/local/spark/jars/thold-0.0.1-1.jar
Run Code Online (Sandbox Code Playgroud)

我们选择在每个worker上的/ usr/local/spark/jars中使用所有jar预填充集群,似乎如果没有提供local:/ file:/或hdfs:那么默认为file:/并且驱动程序使驱动程序运行的Web服务器上的jar可用.我选择了本地,如上所述.

而且似乎我们不需要将主jar放在--jars参数中,我还没有测试过最后一个参数中的其他类(application-jar arg per docs,即/ usr/local/spark/jars/thold-0.0.1-1.jar)被发送给worker,或者如果我需要将application-jar放在-jars路径中以获取未在--class之后命名的类.

(并且使用--deploy-mode客户端使用Spark独立模式授予,您还必须在每个worker上放置驱动程序的副本,但您不知道哪个worker会运行驱动程序)

java scala jar cluster-computing apache-spark

5
推荐指数
1
解决办法
8538
查看次数

在 Spark 中嵌套并行化?什么是正确的做法?

嵌套并行化?

假设我正在尝试在 Spark 中执行相当于“嵌套 for 循环”的操作。就像在常规语言中一样,假设我在内部循环中有一个例程,它以 Pi 平均 Spark 示例的方式估计 Pi(请参阅估计 Pi)

i = 1000; j = 10^6; counter = 0.0;

for ( int i =0; i < iLimit; i++)
    for ( int j=0; j < jLimit ; j++)
        counter += PiEstimator();

estimateOfAllAverages = counter / i;
Run Code Online (Sandbox Code Playgroud)

我可以在 Spark 中嵌套并行化调用吗?我正在尝试并且还没有解决问题。很乐意发布错误和代码,但我想我在问一个更具概念性的问题,关于这是否是 Spark 中的正确方法。

我已经可以并行化单个 Spark Example / Pi Estimate,现在我想这样做 1000 次以查看它是否收敛于 Pi。(这与我们试图解决的一个更大的问题有关,如果需要更接近 MVCE 的东西,我很乐意添加)

底线问题我只需要有人直接回答:这是使用嵌套并行化调用的正确方法吗?如果不是请指点一下具体的,谢谢!这是我认为正确方法的伪代码方法:

// use accumulator to keep track of each Pi Estimate result

sparkContext.parallelize(arrayOf1000, slices).map{ …
Run Code Online (Sandbox Code Playgroud)

java parallel-processing nested apache-spark

2
推荐指数
1
解决办法
2647
查看次数

Spark/Gradle - 在build.gradle中获取IP地址以用于启动主服务器和工作服务器

我在基本层面上理解了build.gradle构建脚本的各种移动部分,但是很难将它们捆绑在一起.

在Apache Spark独立模式下,只需尝试在build.gradle的同一个框中启动master和worker.(稍后将使用$ SPARK_HOME/sbin/start-slaves调用masterIP的正确参数进行扩展.)

问题:如何将我的IP地址分配给Groovy/build.gradle中的变量,以便将其传递给Exec任务中的命令?我们希望这可以在几台不同的开发机器上运行.

我们有一个(我认为相当标准)/ etc/hosts配置,其FQDN和主机名分配给127.0.1.1.驱动程序可以解决这个问题,但启动主机和主机名的从机不是一个选项,我需要IP地址.

我在尝试:

task getMasterIP (type: Exec){
    // declare script scope variable using no def or
    executable "hostname"
    args += "-I"

    // need results of hostname call assigned to script scope variable
    sparkMasterIP = <resultsOfHostnameCall>
}

// added this because startSlave stops if Master is already running
task startSlaveOnly(dependsOn:'getMasterIP', type: Exec){
    executable "/usr/local/spark/sbin/start-slave.sh"
    args += "spark://$sparkMasterIP:7077"
    doLast {
        println "enslaved"
    }
}

// now make startSlave call startSlaveOnly after the initial startMaster
task startSlave(dependsOn:'startMaster', type: …
Run Code Online (Sandbox Code Playgroud)

groovy master gradle build.gradle apache-spark

2
推荐指数
1
解决办法
1220
查看次数

Scala“无法在Main类中访问构造函数秒表”

关于分辨率的摘要,我认为我正在处理一个Scala问题,但事实证明Stopwatch和Scala Logging具有私有构造函数,并且我没有调用适当的公共方法来实例化它们。以下gzm0的答案指出了这一点。


尝试使用Guava秒表和Scala日志记录,无论我是在Main中还是在实例化类中创建一个,new Stopwatch()还是new Logger()在Main类中创建此错误,我都将遇到以下错误gradle run

constructor Logger in class Logger cannot be accessed in class RedBlackTree4150
var loggerInst = new Logger()
constructor Stopwatch in class Stopwatch cannot be accessed in class RedBlackTree4150
var stopWatchInst = new Stopwatch()
Run Code Online (Sandbox Code Playgroud)

如果这是一个重复的这个这个问题我不知道够不够去实现它。我看了这个问题,但没有一个可接受的答案,我试图(只是为了好玩)将我的构造函数调用中的内容删除了,但没有用。

编写我的第一个Gradle / Scala项目以进行算法分配分析。我想如果我是在Java中,我会问的是静态还是非静态,不知道那是我要处理的问题类型。Scala不是作业的一部分,所以我没有使用作业标签。

这是我的调用方式,程序的第一部分,完整的.scala文件和build.gradle位于Github上

import com.google.common.base.Stopwatch
import com.typesafe.scalalogging.slf4j.Logger
import scala.collection.immutable.TreeMap
import java.util.concurrent.TimeUnit

object Main extends App {
  // var rbtree = new RedBlackTree4150(logger, stopWatch)
  var rbtree = …
Run Code Online (Sandbox Code Playgroud)

constructor scala slf4j guava

2
推荐指数
1
解决办法
3519
查看次数

为什么在 C 中取消引用引用?在 * 旁边使用 &amp;

我看着这个这个这个这个等等。

问题是

EdX 上的基本 C 编程 MOOC 展示了如何在通过指针传递结构时访问函数内结构的成员。他们到底为什么在&旁边使用*???

他们展示: scanf("%lf", &(*studptr).aveGrade);

为什么不只studptr.aveGrade在 scanf 中使用?

撇开单独的问题,“为什么要使用 scanf”

(被要求提供完整的例子)

void readStudent(struct student *studptr) {
    print("\nEnter a new student record: \n");
    printf("First name: ");
    scanf("%s", (*studptr).firstName);
    printf("Last name: ");
    scanf("%s", (*studptr).lastName);
    printf("Birth year: ");
    scanf("%d", &(*studptr).birthYear);
    printf("Average grade: ");
    scanf("%lf", &(*studptr).aveGrade);
}
Run Code Online (Sandbox Code Playgroud)

c pointers scanf pass-by-reference ampersand

2
推荐指数
2
解决办法
168
查看次数