Spark如何使用Netty?(How does Spark use Netty?)

我知道Storm现在在Netty上运行,用于节点之间的通信?

Apache Spark也使用Netty吗? 如果真是这样,那么是以哪种方式?


I know that Storm now runs on Netty for communication betwen nodes?

Does Apache Spark also use Netty? If so, in what way?


原文:https://stackoverflow.com/questions/23330449
2020-01-19 07:06

满意答案

Spark使用Akka Actor进行RPC和消息传递,而后者使用Netty。

另外,为了移动批量数据,使用Netty。

  • 对于混洗数据,可以选择使用Netty。 默认情况下,NIO直接用于传输洗牌数据。
  • 对于广播数据(驾驶员对所有员工的数据传输),默认情况下使用Jetty。

Spark uses Akka Actor for RPC and messaging, which in turn uses Netty.

Also, for moving bulk data, Netty is used.

  • For shuffle data, Netty can be optionally used. By default, NIO is directly used to do transfer shuffle data.
  • For broadcast data (driver-to-all-worker data transfer), Jetty is used by default.

相关问答

更多

netty如何使用

和spring , 先写一个类,然后与一般的bean同样配置 <!-- netty config example --> <bean id="tcpServer" class="com.yixun.collector.server.NettyTCPServer" init-method="createServerBootstrap" destroy-method="stopServer"> <property name="handshakePipelineFactory" ref="handsha...

spark为什么用netty 替代akka

Jedis已经足够强大,它的网络连接是基于阻塞式IO,实现非常简单易懂,但是OIO和NIO相比性能上有劣势,于是决定通过NIO来实现和Redis服务器的网络连接,现在业界最优秀的NIO框架非Netty莫属了,正好以前也学过Netty框架,所以决定基于Netty来实现

Spark:找不到CoarseGrainedScheduler(Spark: Could not find CoarseGrainedScheduler)

是的,现在我知道那个神秘的例外的意思,执行者因为超过容器门槛而被杀死。 有几个原因可能会发生,但第一个罪魁祸首是检查你的工作或尝试添加更多的节点/执行者到你的集群。 Yeah now I know the meaning of that cryptic exception, the executor got killed because it exceeds the container threshold. There are couple of reasons that could happen...

Netty 4 ChannelInboundMessageHandlerAdapter(Netty 4 ChannelInboundMessageHandlerAdapter)

您只需覆盖messageReceived即可处理消息。 如果你想要一些“特殊”处理,你可以“覆盖”其他人。 You only need to override messageReceived to process messages. You "can" override others if you want some "special" handling.

在Spark中获取StreamChunkId时失败(Failure while fetching StreamChunkId in Spark)

此问题与Netty版本不匹配有关,您需要确保Hadoop和Spark以及HDFS以相同的Netty版本运行。 This issue related to Netty version mismatch,You need to make sure Hadoop and Spark and HDFS running with same Netty version.

在java spring应用程序中使用spark远程集群时出错(Error using spark remote cluster in java spring app)

正如@ErnestKiwele暗示的那样,这个问题是由Netty依赖造成的 Spring Boot 2.0(使用Spring 5)使用Netty 4.1.x,Spark 2.2.1使用Netty 4.0.x. 要解决这个问题,你可以在你的pom中覆盖Netty的依赖关系来使用旧版本: <dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <version>4.0.43.Fina...

spark.akka.frameSize仍然在spark 2.x中工作吗?(Will spark.akka.frameSize still work in spark 2.x?)

我认为你可以调整spark.rpc.message.maxSize配置参数。 这是在这里记录 I think you can tune the spark.rpc.message.maxSize config parameter. This is documented here

Spark如何使用Netty?(How does Spark use Netty?)

Spark使用Akka Actor进行RPC和消息传递,而后者使用Netty。 另外,为了移动批量数据,使用Netty。 对于混洗数据,可以选择使用Netty。 默认情况下,NIO直接用于传输洗牌数据。 对于广播数据(驾驶员对所有员工的数据传输),默认情况下使用Jetty。 Spark uses Akka Actor for RPC and messaging, which in turn uses Netty. Also, for moving bulk data, Netty is used....

Apache Spark错误的akka-remote netty版本(Apache Spark wrong akka-remote netty version)

这是一个陷阱 ! netty组织在过去发生了变化。 从org.jboss.netty到io.netty,但它们包含相同的包。 排除(“org.jboss.netty”,“netty”)解决我的问题。 It's a trap ! netty organisation changed in the past. from org.jboss.netty to io.netty, but they contain the same package. exclude("org.jboss.netty", "...

Netty版本与Spark + Elasticsearch Transport冲突(Netty Version Conflict with Spark + Elasticsearch Transport)

好吧,在经历了许多考验和磨难之后,我找到了答案。 问题不在于SBT未能排除图书馆,而是完全排除它们。 问题在于,即使我排除了任何不是4.1.11.Final的Netty版本,Spark也在使用自己的罐子,在SBT外部和我建造的jar。 当spark-submit运行时,它包含$SPARK_HOME/lib目录中的jar。 其中一个是Netty 4的旧版本。此调用显示了此问题: bootstrap.getClass().getProtectionDomain().getCodeSource() 其结...

相关文章

更多

[Netty 1] 初识Netty

1. 简介 最早接触netty是在阅读Zookeeper源码的时候,后来看到Storm的消息传输层也由 ...

为什么要使用Spark?

现有的hadoop生态系统中存在的问题 1)使用mapreduce进行批量离线分析; 2)使 ...

Apache Spark源码走读之8 -- Spark on Yarn

欢迎转载,转载请注明出处,徽沪一郎。 概要 Hadoop2中的Yarn是一个分布式计算资源的管理平台 ...

Apache Spark源码走读之8 -- Spark on Yarn

欢迎转载,转载请注明出处,徽沪一郎。 概要 Hadoop2中的Yarn是一个分布式计算资源的管理平台 ...

Netty环境配置

netty是一个java事件驱动的网络通信框架,也就是一个jar包,只要在项目里引用即可。

Netty开发环境配置

最新版本的Netty 4.x和JDK 1.6及更高版本

初步了解Spark生态系统及Spark Streaming

一、 场景 ◆ Spark[4]: Scope: a MapReduce-like cluster ...

Hadoop vs Spark性能对比

基于Spark-0.4和Hadoop-0.20.2 系列文章见: Spark随谈 http:// ...

Netty源码分析

Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户 ...

从Storm和Spark 学习流式实时分布式计算的设计

0. 背景 最近我在做流式实时分布式计算系统的架构设计,而正好又要参加CSDN博文大赛的决赛。本来想就 ...

最新问答

更多

java中的Base64二进制数据类型(Base64 binary data type in java)

Base-64编码是一种将任意字节转换为适合ASCII编码的文本字符范围内的字节的方法。 这是在没有任何解释的情况下完成的 - 原始字节在发送者端被转换为base-64; 接收器将它们转换回字节流,这就是它的全部内容。 当您的代码打印encoded1.getClass().getName() ,它获取的只是字节数组的静态类型。 为了将base-64中编码的数据解释为对程序有意义的内容,您需要知道作为base-64传输的基础数据的格式。 一旦字节传递给你(在你的情况下,这是encoded1的1字节

SQL Select Distinct基于条件(SQL Select Distinct based on Conditional)

你可以试试这个, SELECT ASN, CASE WHEN MAX_STATUS = 2 THEN 'MISCOUNT' WHEN MAX_STATUS = 0 THEN 'NOT STARTED' WHEN MAX_STATUS = 1 AND MIN_STATUS = 1 THEN 'VERIFIED' WHEN MAX_STATUS = 1 AND MIN_STATUS = 0 THEN 'I

带有Category和SubCategory的嵌套类别表(Nested Category table with Category and SubCategory)

检查公用表表达式,这些表达式允许您创建“递归选择”。 http://www.mssqltips.com/sqlservertip/1520/recursive-queries-using-common-table-expressions-cte-in-sql-server/ Check for Common Table Expressions, those allow you to create "recursive-selects". http://www.mssqltips.com/sqls

我的应用程序中有两个http请求,但我只想使用一个'http_proxy'(I have two http requests in my application, but I want only one use 'http_proxy')

我的解决方案是改变lib。 我正在使用SOAPpy,现在我正在使用SUDS并且工作。 由于某种原因,SOAPpy中的param http_proxy错误地使用了代理。 My solution was to change the lib. I was using SOAPpy, now Im using SUDS and worked. For some reason the param http_proxy in SOAPpy was using the proxy incorrectly.

记录样本的GNU无线电文件格式(GNU Radio File Format for the recorded samples)

文件接收器只是数据流的转储。 如果数据流内容是简单字节,那么文件的内容很简单。 如果数据流包含复数,则该文件将包含复数列表,其中每个复数由两个浮点数给出,每个浮点数(通常)为4个字节。 有关gnuradio文件读写块的实现,请参阅文件gnuradio / gnuradio-core / src / lib / io / gr_file_sink.cc和gr_file_source.cc。 您还可以使用python和gnuradio将文件转换为其他格式。 from gnuradio import

在Windows下的package.json脚本中设置环境变量(Setting environment variables in package.json scripts under Windows)

我设法解决了这个问题,有趣的是,删除了空间: "buildDev": "set NODE_ENV=development&& webpack" 哪个(至少对我来说)似乎是错的。 我预计这将导致语法错误和development&&的NODE_ENV值,但它完美地工作 - 尽管是丑陋的。 Make it cross-platform by using cross-env: "buildDev": "cross-env NODE_ENV=development webpack"

无法使用Renderer将Object实例设置为JComboBox的选定项(Unable to set Object instance as selected item of JComboBox with Renderer)

如果要通过使用对象的不同实例来执行此操作,但具有相同的属性,则需要覆盖类的equals和hashcode方法,以便属性组合是唯一的。 这非常重要,这是一种关系期望,任何equal另一个的对象都将具有相同的hashcode 这是一个非常快速的示例,我使用IDE的自动生成过程(因为我很懒),但是,如果您的Registration类具有在与类的实例进行比较时应该考虑的其他属性,则需要将其修改为支持他们(再次,任何好的IDE都应该能够做到这一点) public class Registration {

在表单提交上,在Codeiginiter验证之前首先进行jquery检查(On Form Submission, do jquery checking first before Codeiginiter validation)

如果您想在提交表单之前在客户端进行验证,则以下内容将起作用: // view echo form_open('basic_controller/submission'); echo form_input( array('name'=>'text', 'id'=>'text_input') ); echo form_submit('my_submit', 'Enter', "id='my_submit'"); echo form_close(); // controller function s

返回然后作为未定义。(Returning Then as Undefined. Q in NodeJS)

您的主要功能landingPage没有返回值。 其中的代码产生一个承诺,但你也应该返回它。 当你想要返回deferred持有的promise时,你应该延迟一个在外部函数作用域中定义的变量,这样你就可以返回它定义的promise( deferred.promise ): var landingPage = function (dir) { var deferred = Q.defer(); // *** define here Uni.get('https://'+getDirec

在同一个类中调用方法(Calling a method within the same class)

这不是一种扩展方法。 你需要使方法静态并调用它们: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication4 { class arraymod { static void Main( string[] args ) { int[]