小编Man*_*ing的帖子

Apache Spark:驱动程序(而不仅仅是执行程序)尝试连接到Cassandra

我想我还没有完全理解Spark是如何工作的.

这是我的设置:

我在独立模式下运行Spark集群.我正在使用4台机器:一台是大师,另外三台是工人.

我编写了一个从Cassandra集群读取数据的应用程序(请参阅https://github.com/journeymonitor/analyze/blob/master/spark/src/main/scala/SparkApp.scala#L118).

3节点Cassandra集群在同样承载Spark Worker节点的机器上运行.Spark Master节点不运行Cassandra节点:

Machine 1      Machine 2        Machine 3        Machine 4
Spark Master   Spark Worker     Spark Worker     Spark Worker
               Cassandra node   Cassandra node   Cassandra node
Run Code Online (Sandbox Code Playgroud)

这背后的原因是我想优化数据局部性 - 当在集群上运行我的Spark应用程序时,每个Worker只需要与其本地Cassandra节点通信.

现在,当通过spark-submit --deploy-mode client --master spark://machine-1从Machine 1(Spark Master)运行将我的Spark应用程序提交到集群时,我期望以下内容:

  • 在Spark Master上启动Driver实例
  • 驱动程序在每个Spark Worker上启动一个Executor
  • 驱动程序将我的应用程序分发给每个Executor
  • 我的应用程序在每个Executor上运行,并从那里与Cassandra通过谈话 127.0.0.1:9042

但是,情况似乎并非如此.相反,Spark Master尝试与Cassandra交谈(并且失败了,因为Machine 1主机上没有Cassandra节点).

我误解了什么?它的工作方式不同吗?事实上,驱动程序是否从Cassandra读取数据,并将数据分发给Executors?但是memory of Machine 1,即使我的集群的总内存足够,我也永远无法读取大于的数据.

或者,驱动程序是否与Cassandra联系不读取数据,而是查找如何对数据进行分区,并指示执行者读取数据中的"他们"部分?

如果有人能够引起我的兴趣,那将非常感激.

scala cassandra apache-spark

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

为什么在DCPU-16指令的二进制表示中存在前导1

我目前正在摆弄DCPU-16汇编程序(参见http://0x10c.com/doc/dcpu-16.txthttp://jazzychad.net/dcpu.html).

在汇编程序指令转换为十六进制/二进制的方式中,有一点我不明白.

作为一个例子,采取像这样的指令

SET B, 0x0002
Run Code Online (Sandbox Code Playgroud)

应该将寄存器B的值设置为十进制2(或十六进制0x0002或二进制0b000010)

DCPU-16的指令格式是

bbbbbbaaaaaaoooo
Run Code Online (Sandbox Code Playgroud)

因此,4位用于下端的操作码,6位用于第一个值,6位用于第二个值.

在手动转换指令时,我会这样做:

SET == 0x1    == 0b0001
  B == 0x01   == 0b000001
       0x0002 == 0b000010
Run Code Online (Sandbox Code Playgroud)

以完整的指令结束

0b0000100000010001 == 0x811
Run Code Online (Sandbox Code Playgroud)

但DCPU-16的正确值是

0b1000100000010001 == 0x8811
Run Code Online (Sandbox Code Playgroud)

也就是说,增加了领先1 - 为什么呢?

我对汇编程序和任何其他类型的硬核低级机器指令都很陌生,所以如果这是一个非常愚蠢的问题,请耐心等待.

binary assembly hex dcpu-16

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

标签 统计

apache-spark ×1

assembly ×1

binary ×1

cassandra ×1

dcpu-16 ×1

hex ×1

scala ×1