添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

当使用 bin/spark-shell 命令或使用 spark-submit 提交任务时,会遇到如下报错。

Setting default log level to “WARN”.
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
19/12/24 09:58:13 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable
19/12/24 09:58:15 WARN util.Utils: Service ‘sparkDriver’ could not bind on port 0. Attempting port 1.
19/12/24 09:58:15 WARN util.Utils: Service ‘sparkDriver’ could not bind on port 0. Attempting port 1.
19/12/24 09:58:15 WARN util.Utils: Service ‘sparkDriver’ could not bind on port 0. Attempting port 1.
19/12/24 09:58:15 WARN util.Utils: Service ‘sparkDriver’ could not bind on port 0. Attempting port 1.
19/12/24 09:58:15 WARN util.Utils: Service ‘sparkDriver’ could not bind on port 0. Attempting port 1.
19/12/24 09:58:15 WARN util.Utils: Service ‘sparkDriver’ could not bind on port 0. Attempting port 1.
19/12/24 09:58:15 WARN util.Utils: Service ‘sparkDriver’ could not bind on port 0. Attempting port 1.
19/12/24 09:58:15 WARN util.Utils: Service ‘sparkDriver’ could not bind on port 0. Attempting port 1.
19/12/24 09:58:15 WARN util.Utils: Service ‘sparkDriver’ could not bind on port 0. Attempting port 1.
19/12/24 09:58:15 WARN util.Utils: Service ‘sparkDriver’ could not bind on port 0. Attempting port 1.
19/12/24 09:58:15 WARN util.Utils: Service ‘sparkDriver’ could not bind on port 0. Attempting port 1.
19/12/24 09:58:15 WARN util.Utils: Service ‘sparkDriver’ could not bind on port 0. Attempting port 1.
19/12/24 09:58:15 WARN util.Utils: Service ‘sparkDriver’ could not bind on port 0. Attempting port 1.
19/12/24 09:58:15 WARN util.Utils: Service ‘sparkDriver’ could not bind on port 0. Attempting port 1.
19/12/24 09:58:15 WARN util.Utils: Service ‘sparkDriver’ could not bind on port 0. Attempting port 1.
19/12/24 09:58:15 WARN util.Utils: Service ‘sparkDriver’ could not bind on port 0. Attempting port 1.
19/12/24 09:58:15 ERROR spark.SparkContext: Error initializing SparkContext.
java.net.BindException: Cannot assign requested address: Service ‘sparkDriver’ failed after 16 retries (starting from 0)! Consider explicitly setting the appropriate port for the service ‘sparkDriver’ (for example spark.ui.port for SparkUI) to an available port or increasing spark.port.maxRetries.
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Net.java:433)
at sun.nio.ch.Net.bind(Net.java:425)
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
at io.netty.channel.socket.nio.NioServerSocketChannel.doBind(NioServerSocketChannel.java:127)
at io.netty.channel.AbstractChannel A b s t r a c t U n s a f e . b i n d ( A b s t r a c t C h a n n e l . j a v a : 5 0 1 ) a t i o . n e t t y . c h a n n e l . D e f a u l t C h a n n e l P i p e l i n e HeadContext.bind(DefaultChannelPipeline.java:1218)
at io.netty.channel.AbstractChannelHandlerContext.invokeBind(AbstractChannelHandlerContext.java:496)
at io.netty.channel.AbstractChannelHandlerContext.bind(AbstractChannelHandlerContext.java:481)
at io.netty.channel.DefaultChannelPipeline.bind(DefaultChannelPipeline.java:965)
at io.netty.channel.AbstractChannel.bind(AbstractChannel.java:210)
at io.netty.bootstrap.AbstractBootstrap$2.run(AbstractBootstrap.java:353)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:399)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:446)
at io.netty.util.concurrent.SingleThreadEventExecutor 2.run(SingleThreadEventExecutor.java:131) at io.netty.util.concurrent.DefaultThreadFactory 2 . r u n ( S i n g l e T h r e a d E v e n t E x e c u t o r . j a v a : 1 3 1 ) a t i o . n e t t y . u t i l . c o n c u r r e n t . D e f a u l t T h r e a d F a c t o r y DefaultRunnableDecorator.run(DefaultThreadFactory.java:144)
at java.lang.Thread.run(Thread.java:748)

可以从错误日志看出,spark无法连接地址,无法执行spark任务。也就是spark本身并未出现bug,而是网络环境的问题。

我的集群是在阿里云上搭建的,首先想到的是阿里云端口未开放。于是我开放阿里云所有的端口发现问题还存在。
在这里插入图片描述

在查询了一些资料之后,我发现问题出现在了hosts上。注意!划重点了!
阿里云服务器会有两个ip地址,一个对应内网,一个对应外网。而我hosts中用户名对应的ip地址为外网。而当spark本地运行时,会默认寻找用户名对应的ip地址,但找到了外网的地址,所以造成无法连接的问题。

首先不推荐更改hosts,因为这是系统文件。它的更改不仅应用于spark还用影响整个环境下的所有组件。
在不影响环境的情况下,我们可以向spark-env.sh文件中添加一条变量,让spark启动时默认找到本地ip。
vim spark-env.sh

SPARK_LOCAL_IP=127.0.0.1
                    问题经过当使用bin/spark-shell命令或使用spark-submit提交任务时,会遇到如下报错。Setting default log level to “WARN”.To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).19/12/24 09:58...
				
记一次Spark Local 模式下的错误:报错日记:[root@steve-lidiliang /user/coding/Conclusions/JavaBasic]# spark-shell 2018-05-02 13:51:20 WARN NativeCodeLoader:62 - Unable to load native-hadoop library for your platfor...
18/10/25 13:07:58 WARN Utils: Service 'sparkDriver' could not bind on port 0. Attempting port 1. 18/10/25 13:07:58 WARN Utils: Service 'sparkDriver' could not bind on port 0. Attempting port 1. 18/10/...
bug描述 py4j.protocol.Py4JJavaError: An error occurred while calling None.org.apache.spark.api.java.JavaSparkContext. java.net.BindException: Can’t assign requested address: ServicesparkDriver’ faile...
做linux运维常常于见的问题! Mar 21 21:25:02 VM_0_9_centos httpd: (98)Address already in use: AH00072: make_sock: could not bind to address [::]:80 Mar 21 21:25:02 VM_0_9_centos httpd: (98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80 Mar 21 21:25:02 VM_0_9_centos httpd: no li
var a = { first : 'Robert' } ; var b = { last : 'Wagner' } ; var c = { company : 'Ship Shape' } ; Ember . assign ( a , b , c ) ; // a === { first: 'Robert', last: 'Wagner', c num1 = int(input(请输入起始序数n1:)) num2 = int(input(请输入结束序数n2:)) fuc = input(请输入以n为变量的通项公式(eg:2*n+1):) list_fuc = [] if ^ in fuc: ^ = ** #问题处 for n in range(num1,num2+1): list_fuc.append(eval(fuc)) print(该数列的和为:+str(sum(list_fuc))) File C:\U 当拉取请求打开时,将审阅者添加到拉取请求的动作。 :play_button: 用法 创建用于运行自动分配操作的工作流(例如.github/workflows/action.yml有关更多详细信息,请参阅“ )。 name : ' Auto Assign ' pull_request : types : [opened, ready_for_review] jobs : add-reviews : runs-on : ubuntu-latest steps : - uses : kentaro-m/auto-assign-action@v1.1.2 with : configuration-path : " .github/some_name_for_configs.yml " # Only needed
部署CDH6的客户端后,使用spark-shell --master yarn 进入spark后报Attempted to request executors before the AM has registered! 如下错误: [test_user@user1 ~]$ spark-shell --master yarn Setting default log level to "WARN". To adjust logging level use sc.setLogLevel(newLe...
压测时,应用服务器报错:Cannot assign requested address (connect failed) 经检查,由于应用服务器,频繁发起http请求,由于每次连接都在很短的时间内结束,导致很多的TIME_WAIT,以至于用光了可用的端 口号,所以新的连接没办法绑定端口 “Cannot assign requested address.”是由于linux分配的客户端连接端口用尽...
### 回答1: java.net.bindexception: cannot assign requested address: bind是一个网络编程异常,通常是由于在绑定socket时指定的IP地址不正确或已被占用所引起的。这个异常通常发生在服务器端程序中,当服务器尝试绑定一个已经被占用的端口或者一个不存在的IP地址时,就会抛出这个异常。解决这个问题的方法是检查IP地址和端口号是否正确,并确保它们没有被其他程序占用。 ### 回答2: java.net.bindexception: cannot assign requested address: bind 错误是当一个 Java 应用程序尝试绑定到一个 IP 地址和端口时,发生的异常错误。通常情况下,这个错误在以下2个主要原因下发生: 1. 系统中已经有一个程序在占用该 IP 地址和端口。 2. Java 应用程序正在尝试绑定到无效或不可用的 IP 地址和端口。 对于第一种情况,可以通过使用 netstat 命令来查找哪个程序正在占用该 IP 地址和端口,并停止该程序。例如,在 Windows 系统中,可以使用以下命令: netstat -ano | findstr :端口号 这将显示占用指定端口的进程 ID。从进程管理器中找到该进程并结束它。 对于第二种情况,可能是由于误配置或连接不可到达导致。确保 IP 地址和端口号是有效的,并且可以被应用程序访问。大多数情况下,可以通过更改应用程序配置文件中的 IP 地址和端口号来解析此问题。 另外,也可能是防火墙或代理服务器的设置阻止了对指定 IP 地址和端口的访问,需要检查这些设置并相应进行修改。 总之,java.net.bindexception: cannot assign requested address: bind 错误是由于绑定 IP 地址和端口时出现问题引起的。解决此问题需要确定哪个程序占用了该端口,以及检查应用程序配置文件中的 IP 地址和端口号是否有效。 ### 回答3: java.net.BindException: Cannot assign requested address: bind,通常出现在 Java 程序中,它指的是在服务器程序启动的时候,发现无法绑定请求的套接字地址。通俗易懂的来说,就是你设置的 IP 地址不存在或被占用。 这种情况的原因有很多,其中一个原因就是网络端口已经被占用。如果你运行的程序尝试在一个被占用的端口上进行绑定,那么它就会遇到这个问题。 要解决 java.net.BindException,可以尝试以下方法: 1.检查 IP 地址和端口是否正确或已被占用。 2.尝试更改 IP 地址和端口。 3.检查主机名是否正确。主机名必须是一个有效的 IP 地址或域名,它应该指向您要绑定的服务器的地址。 4.检查网络连接是否正常。网络连接异常可能会导致 BindException 错误。 5.如果您使用的是第三方库或框架,请确保它们和您的程序兼容并且正确配置。一些框架可以帮助您解决这种问题。 总之,要解决 java.net.BindException: Cannot assign requested address: bind 这个问题,首先要找出引起该问题的原因,然后针对性的解决问题。在解决过程中,需要耐心和细心,注意检查每个可能存在问题的地方,才能排除此类异常。