Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark Spark Shell在本地主机上侦听,而不是在配置的IP地址上侦听_Apache Spark - Fatal编程技术网

Apache spark Spark Shell在本地主机上侦听,而不是在配置的IP地址上侦听

Apache spark Spark Shell在本地主机上侦听,而不是在配置的IP地址上侦听,apache-spark,Apache Spark,我试图通过spark shell运行一个简单的spark作业,它看起来像 spark shell的BlockManager在本地主机上侦听,而不是在配置的IP上侦听 导致spark作业失败的地址。引发的异常为“未能连接到本地主机” 以下是我的配置: 机器1(ubunt64):火花主机[192.168.253.136] 机器2(UBUNTU64服务器):火花从机[192.168.253.137] 机器3(ubuntu64server2):Spark Shell客户端[192.168.253.138

我试图通过spark shell运行一个简单的spark作业,它看起来像 spark shell的BlockManager在本地主机上侦听,而不是在配置的IP上侦听 导致spark作业失败的地址。引发的异常为“未能连接到本地主机”

以下是我的配置:

机器1(ubunt64):火花主机[192.168.253.136]

机器2(UBUNTU64服务器):火花从机[192.168.253.137]

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

Spark版本:Spark-1.3.0-bin-hadoop2.4 环境:Ubuntu 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(主机)和机器3(火花壳)上出现故障

不确定spark shell为什么在本地主机上侦听而不是 配置的IP地址。我已经在机器3上使用SPARK-env.sh以及在.bashrc中设置了SPARK_LOCAL_IP(export SPARK_LOCAL_IP=192.168.253.138)。我确认spark shell java程序确实在端口44015上侦听。不确定spark shell为什么广播本地主机地址

我们将非常感谢您为解决此问题提供的任何帮助。可能是吧 缺少一些配置设置

日志:

scala>val textFile=sc.textFile(“README.md”)

15/04/22 18:15:22信息内存存储:使用curMem=0、maxMem=280248975调用EnsureRefreeSpace(163705)

15/04/22 18:15:22信息内存存储:块广播0存储为内存中的值(估计大小159.9 KB,可用容量267.1 MB)

15/04/22 18:15:22信息内存存储:使用curMem=163705、maxMem=280248975调用EnsureRefreeSpace(22692)

15/04/22 18:15:22信息存储器存储:块广播\u 0\u片段0以字节形式存储在内存中(估计大小为22.2 KB,可用容量为267.1 MB)

15/04/22 18:15:22信息块管理信息:在本地主机44015的内存中添加了广播块0(大小:22.2 KB,可用空间:267.2 MB)

scala>textFile.count()

15/04/22 18:16:07信息计划程序:提交阶段0中缺少的2个任务(位于:25的文本文件中的README.md MapPartitionsRDD[1])

15/04/22 18:16:07信息TaskSchedulerImpl:添加包含2个任务的任务集0.0

15/04/22 18:16:08信息任务集管理器:在阶段0.0中启动任务0.0(TID 0,ubuntu64server,PROCESS_LOCAL,1326字节)

15/04/22 18:16:23信息任务集管理器:在阶段0.0中启动任务1.0(TID 1,ubuntu64server,PROCESS_LOCAL,1326字节)

15/04/22 18:16:23警告TaskSetManager:在阶段0.0(TID 0,ubuntu64server)中丢失任务0.0:java.io.IOException:无法连接到本地主机/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本地主机问题的方法

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

以下是BlockManager在本地主机上侦听的日志(停止并动态创建上下文),该日志因“连接失败异常”而失败

比较监听实际的服务器名(如果命令行中提供了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代码中的错误


希望这对其他人有所帮助。

检查过您的/etc/hosts文件条目吗?谢谢@hnahak。ubuntu64server2(spark shell主机)上/etc/hosts的内容。192.168.253.138 ubuntu64server2 192.168.253.136 ubuntu64 192.168.253.137 ubuntu64server#127.0.0.1本地主机仍收到相同错误:15/04/23 05:52:29警告TaskSetManager:在阶段0.0中丢失任务0.0(TID 0,ubuntu64server):java.io.IOException:无法连接到localhost/127.0.0.1:54083我可以看到ubuntu64server2正在侦听端口54083,但在主机0.0.0.0.0.0:54083 0.0.0:*侦听
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)
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)