Spark Shell 监听本地主机而不是配置的 IP 地址

2024-04-25

我正在尝试通过 Spark-Shell 运行一个简单的 Spark 作业,它看起来像 Spark-shell 的 BlockManager 侦听本地主机而不是配置的 IP 导致 Spark 作业失败的地址。抛出的异常是“无法连接到本地主机" .

这是我的配置:

机器1(ubunt64):Spark主控[192.168.253.136]

机器2(ubuntu64服务器):Spark Slave [192.168.253.137]

机器3(ubuntu64 server2):Spark Shell客户端[192.168.253.138]

火花版本:Spark-1.3.0-bin-hadoop2.4环境:乌班图14.04

Spark Shell 中执行的源代码:

    import org.apache.spark.SparkConf
    import org.apache.spark.SparkContext

    var conf = new SparkConf().setMaster("spark://192.168.253.136:7077")
    conf.set("spark.driver.host","192.168.253.138")
    conf.set("spark.local.ip","192.168.253.138")
    sc.stop
    var sc = new SparkContext(conf)
    val textFile = sc.textFile("README.md")
    textFile.count()

如果我在从机所在的机器 2 上运行上面的代码,它就可以工作 正在运行,但在机器 1(Master)和机器 3(Spark Shell)上失败。

不知道为什么 Spark shell 监听本地主机而不是 配置的IP地址。我也在 .bashrc 中使用 Spark-env.sh 在机器 3 上设置了 SPARK_LOCAL_IP(导出 SPARK_LOCAL_IP=192.168.253.138)。我确认 Spark shell java 程序确实侦听端口 44015。不知道为什么 Spark shell 广播本地主机地址。

任何帮助解决此问题的帮助都将受到高度赞赏。大概我就是 缺少一些配置设置。

Logs:

斯卡拉> val textFile = sc.textFile("README.md")

15/04/22 18:15:22 INFO MemoryStore:使用 curMem=0、maxMem=280248975 调用 EnsureFreeSpace(163705)

15/04/22 18:15:22 INFO MemoryStore:块broadcast_0作为值存储在内存中(估计大小159.9 KB,可用267.1 MB)

15/04/22 18:15:22 INFO MemoryStore:使用 curMem=163705、maxMem=280248975 调用 EnsureFreeSpace(22692)

15/04/22 18:15:22 INFO MemoryStore:块broadcast_0_piece0 以字节形式存储在内存中(估计大小 22.2 KB,可用 267.1 MB)

15/04/22 18:15:22 INFO BlockManagerInfo:在本地主机上的内存中添加了broadcast_0_piece0:44015(大小:22.2 KB,免费:267.2 MB)

斯卡拉> textFile.count()

15/04/22 18:16:07 INFO DAGScheduler:提交阶段 0 中缺少的 2 个任务(README.md MapPartitionsRDD[1] at textFile at :25)

15/04/22 18:16:07 INFO TaskSchedulerImpl:添加任务集 0.0 和 2 个任务

15/04/22 18:16:08 INFO TaskSetManager:在阶段 0.0 中启动任务 0.0(TID 0,ubuntu64server,PROCESS_LOCAL,1326 字节)

15/04/22 18:16:23 INFO TaskSetManager:在阶段 0.0 中启动任务 1.0(TID 1,ubuntu64server,PROCESS_LOCAL,1326 字节)

15/04/22 18:16:23 警告 TaskSetManager:在阶段 0.0 中丢失任务 0.0(TID 0,ubuntu64server):java.io.IOException:无法连接到 localhost/127.0.0.1:44015 在 org.apache.spark.network.client.TransportClientFactory.createClient(TransportClientFactory.java:191) 在 org.apache.spark.network.client.TransportClientFactory.createClient(TransportClientFactory.java:156) 在 org.apache.spark.network.netty.NettyBlockTransferService$$anon$1.createAndStart(NettyBlockTransferService.scala:78) 在 org.apache.spark.network.shuffle.RetryingBlockFetcher.fetchAllOutstanding(RetryingBlockFetcher.java:140) 在 org.apache.spark.network.shuffle.RetryingBlockFetcher.access$200(RetryingBlockFetcher.java:43) 在 org.apache.spark.network.shuffle.RetryingBlockFetcher$1.run(RetryingBlockFetcher.java:170) 在 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 在 java.util.concurrent.FutureTask.run(FutureTask.java:262) 在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 在 java.lang.Thread.run(Thread.java:745)


通过在 shell 启动时提供 Spark 主地址(或者可以在 Spark-defaults.conf 中)找到了解决此 BlockManager localhost 问题的方法。

./spark-shell --master spark://192.168.253.136:7077 

这样,我不必停止 Spark 上下文,原始上下文就能够读取文件以及从 Cassandra 表中读取数据。

这是 BlockManager 在 localhost 上侦听的日志(停止并动态创建上下文),该日志失败并显示“无法连接异常”

15/04/25 07:10:27 INFO BlockManagerInfo: Added broadcast_1_piece0 in memory on localhost:40235 (size: 1966.0 B, free: 267.2 MB)

与监听实际服务器名称(如果在命令行提供 Spark Master)相比,效果更好

15/04/25 07:12:47 INFO BlockManagerInfo: Added broadcast_1_piece0 in memory on ubuntu64server2:33301 (size: 1966.0 B, free: 267.2 MB)

当上下文在 shell 中动态创建时,看起来像是 BlockManager 代码中的错误。

希望这对某人有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spark Shell 监听本地主机而不是配置的 IP 地址 的相关文章

随机推荐

  • 选项卡视觉选择

    In many GUIs when I select a section of text and then hit the Tab or Shift Tab button the selected section will indent i
  • XML-RPC Odoo - C# 多个搜索条件

    当使用 CookComputing XML RPC net 尝试仅使用一个条件搜索 mail notification 模型时 这相当简单 因为您只需调用 object args new object 1 object subargs ne
  • 从 SQLDataReader 读取结果时出现无效转换异常

    我的存储过程 UserName nvarchar 64 AS BEGIN SELECT MPU UserName SUM TS Monday as Monday TS Monday contains float value FROM dbo
  • 如何更改 vuetify v2 中 scss 中的断点?

    我正在使用 scss 文件 我想更改 vuetify v2 中 css 端的断点 我在 vuetify 升级指南中找不到任何参考 在 1 5 版本中我做了 style x styl grid breakpoints xs 0 sm 476p
  • Laravel - 获取客户端 IP 地址 - 始终获取 127.0.0.1 结果

    我无法获取客户端的 IP 地址 我需要该地址来确定他的当前位置 我使用了 request gt ip SERVER REMOTE ADDR 并且总是得到 127 0 0 1 结果 这不是我想要的 我究竟做错了什么 有时您的客户端通过代理使用
  • pyQt4 - 如何选择表格行并禁用编辑单元格

    我使用以下命令创建 QTableWidget self table QtGui QTableWidget self table setObjectName table self table setSelectionBehavior QtGu
  • 如何使用实体框架和成员资格表初始化数据库

    我有一个使用 Entity Framework 5 0 Code First 的 MVC4 Web 应用程序 在 Global asax cs 中 我有一个引导程序 用于初始化 Entity Database 强制初始化数据库并初始化成员资
  • 如何将谓词与包含的属性一起包含在内?

    目前 我有一个函数 允许我查询数据库 同时在结果中包含一些其他相关表 以防止返回数据库 否则如果我不这样做 我知道会发生这种情况 public class EntityRepository
  • 如何拦截来自 iframe 的 http 请求?

    我以编程方式在网页中设置 iframe 的 URL 我必须知道此 URL 更改会触发哪些 http 请求 CSS 脚本 图像等加载的 URL 我拦截了 XMLHttpRequest 但这个对象从未被调用过 如何拦截这些http请求 是否有另
  • Node.js (Express) 带有路由器的错误处理中间件

    这是我的应用程序结构 app js routes index js The ExpressJS应用程序创建错误处理程序development and production环境 这是来自的代码片段app js app use routes r
  • 物化滑动选项卡在模态中不起作用

    我遇到了一个奇怪的问题 我在物化选项卡上使用滑动 当我在没有模式的情况下滑动时 它工作正常 但是当我将它们包含在模式中时 滑动功能不再工作 document ready function modal modal tabs tabs swip
  • 如何获取可公开访问的 crashlytics 报告 url?

    我想与一些第三方分享我的 crashlytics 崩溃报告 如何获得如下所示的可公开访问的网址 http crashes to s 419b5b28766 http crashes to s 419b5b28766 我是新来的 这是一个旧的
  • SchedPolicy:set_timerslack_ns 写入失败:不允许操作

    当我运行 Android 应用程序时 我在 Logcat 中遇到了这个问题 有谁知道这个问题以及如何解决它 依赖项是 implementation com android support appcompat v7 25 3 0 implem
  • 32x8 寄存器文件 VHDL 测试台

    我已经用 vhdl 编写了该电路的汇编代码 我想用测试台来模拟它 RegWrite 1 位输入 时钟 写寄存器个数 3位输入 写地址 写入数据 32 位输入 数据输入 读取 寄存器编号 A 3 位输入 读取地址 读取寄存器编号 B 3 位输
  • Spring Cloud 配置服务器无法使用本地属性文件

    我一直在玩弄位于此处的 github 上的 Spring Cloud 项目 https github com spring cloud spring cloud config https github com spring cloud sp
  • redis-cli 重定向到 127.0.0.1

    我在PC1上启动Redis集群 然后在PC2上连接它 当需要重定向到另一个集群节点时 它会显示Redirected to slot 7785 located at 127 0 0 1 但应该显示Redirected to slot 7785
  • 壁纸更换事件

    我可以在广播接收器中获取壁纸更改事件吗 我需要检测用户是否更改了壁纸 我怎样才能做到呢 我正在做的是这样的 我有一个可以自动更改壁纸的应用程序 如果用户使用不同的应用程序手动更改它 我想注意到它并询问用户是否要将新壁纸添加到我的应用程序的列
  • Kafka 消费者通过 JMX 滞后

    我正在尝试监控 Kafka 0 10 中消费者组的滞后情况 我们的消费者在 Kafka 而不是 ZooKeper 中跟踪他们的偏移量 这意味着我可以使用以下方式获取数据 bin kafka consumer groups sh bootst
  • 如何在 QScrollArea() 之上显示 QPropertyAnimation()?

    1 Intro 我工作于Python 3 7在 Windows 10 上并使用PyQt5对于图形用户界面 在我的申请中 我得到了一个QScrollArea 里面有一系列按钮 单击时 按钮必须移到该区域之外 我用一个QPropertyAnim
  • Spark Shell 监听本地主机而不是配置的 IP 地址

    我正在尝试通过 Spark Shell 运行一个简单的 Spark 作业 它看起来像 Spark shell 的 BlockManager 侦听本地主机而不是配置的 IP 导致 Spark 作业失败的地址 抛出的异常是 无法连接到本地主机