Hadoop安装及遇到问题解决——2.Linux 报错:Network error: Connection refused

本文介绍了如何检查SSH服务是否已安装及开启,并提供了详细的安装步骤。对于初次配置SSH的用户,文章还给出了常见错误提示及解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1、查看SSH服务有没有安装

        #rpm -qa | grep ssh 

         

     2、查看SSH服务有没有开启

       #/etc/init.d/sshd status

       

安装SSH服务

sudo apt-get install openssh-server

开启服务

ssh localhost

此时会有提示(SSH首次登陆提示),输入 yes 。然后按提示输入密码 hadoop,这样就登陆到本机了。

本人安装时出现这个错误,因为没有完全按照教程实施,没有开启SSH服务

参考:https://blog.csdn.net/congcong68/article/details/52965978

           http://dblab.xmu.edu.cn/blog/install-hadoop/

hadoop@master:~/桌面/code$ spark-submit hw1.py Traceback (most recent call last): File "/home/hadoop/桌面/code/hw1.py", line 20, in <module> second_degree = direct_pairs.join(parsed_data)\ File "/opt/spark/python/lib/pyspark.zip/pyspark/rdd.py", line 3670, in join File "/opt/spark/python/lib/pyspark.zip/pyspark/join.py", line 54, in python_join File "/opt/spark/python/lib/pyspark.zip/pyspark/join.py", line 41, in _do_python_join File "/opt/spark/python/lib/pyspark.zip/pyspark/rdd.py", line 1260, in union File "/opt/spark/python/lib/py4j-0.10.9.7-src.zip/py4j/java_gateway.py", line 1322, in __call__ File "/opt/spark/python/lib/pyspark.zip/pyspark/errors/exceptions/captured.py", line 179, in deco File "/opt/spark/python/lib/py4j-0.10.9.7-src.zip/py4j/protocol.py", line 326, in get_return_value py4j.protocol.Py4JJavaError: An error occurred while calling o33.union. : java.net.ConnectException: Call From master/127.0.1.1 to localhost:9000 failed on connection exception: java.net.ConnectException: 连接被拒绝; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at org.apache.hadoop.net.NetUtils.wrapWithMessage(NetUtils.java:930) at org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:845) at org.apache.hadoop.ipc.Client.getRpcResponse(Client.java:1588) at org.apache.hadoop.ipc.Client.call(Client.java:1530) at org.apache.hadoop.ipc.Client.call(Client.java:1427) at org.apache.hadoop.ipc.ProtobufRpcEngine2$Invoker.invoke(ProtobufRpcEngine2.java:258) at org.apache.hadoop.ipc.ProtobufRpcEngine2$Invoker.invoke(ProtobufRpcEngine2.java:139) at com.sun.proxy.$Proxy25.getFileInfo(Unknow
03-15
<think>好的,我现在需要解决用户遇到的Spark提交作业时出现的连接被拒绝问题,错误信息是py4j.protocol.Py4JJavaError: java.net.ConnectException。用户还提到了HadoopConnectionRefused,所以可能涉及到网络配置或服务未启动的问题。 首先,我应该回忆一下常见的Spark提交作业失败的原因。可能的原因包括:Spark集群的主节点(Master)未启动,网络配置错误导致无法连接到Master,防火墙或端口被阻塞,Hadoop相关服务未正确运行,或者资源管理器(如YARN)的配置问题。 接下来,用户提供的错误信息中有Py4JJavaError,这通常表示在Java层发生了异常。ConnectException表明Spark驱动程序无法连接到集群管理器。可能的情况是Spark Master的地址配置不正确,或者Master服务没有运行。 然后,用户提到使用docker network inspect hadoop时出现网络不存在的问题,这可能意味着Docker网络配置有误,导致Spark容器无法相互通信。需要检查Docker的网络设置,确保所有服务都在同一个网络中,并且能够通过主机名或IP地址互相访问。 可能的解决步骤包括: 1. 确认Spark Master是否正在运行,并检查其日志是否有错误。 2. 验证spark-submit命令中指定的master URL是否正确,比如spark://host:port。 3. 检查Hadoop相关服务(如HDFS、YARN)是否正常运行,特别是如果作业依赖Hadoop的话。 4. 确保Docker网络'hadoop'存在,并且容器连接到该网络,能够互相解析主机名。 5. 查看防火墙设置,确认所需的端口(如Spark的7077、8080,Hadoop的端口)是否开放。 6. 检查Spark和Hadoop的配置文件,如spark-env.sh、core-site.xml等,确认网络配置正确。 另外,引用中提到的错误[^2]指出Docker网络不存在,用户可能需要先创建该网络,或者检查容器启动时的网络参数。如果网络配置错误,Spark的各个节点可能无法通信,导致连接被拒绝。 最后,应该建议用户逐步排查这些可能性,从确认服务状态开始,逐步检查配置和网络连接,确保所有组件正常运行且能够相互访问。</think>### Spark提交作业时连接被拒绝的解决方案 #### 1. 检查Spark集群状态 - **确认Spark Master和Worker已启动** 使用命令 `jps` 检查进程是否包含 `Master` 和 `Worker`。若未启动,需通过 `start-master.sh` 和 `start-worker.sh <master-url>` 手动启动。 - **查看日志定位问题** Spark Master日志通常位于 `$SPARK_HOME/logs/spark--org.apache.spark.deploy.master.Master-*.out`,检查是否有端口冲突或资源不足的报错。 #### 2. 验证网络配置 - **检查Docker网络连通性** 若使用Docker部署,需确保容器间网络互通。执行 `docker network inspect hadoop` 确认网络存在且容器已加入该网络。若网络不存在,需通过 `docker network create hadoop` 创建。 - **检查防火墙和端口** Spark默认使用端口 `7077`(Master通信)、`8080`(Web UI)。使用 `netstat -tuln | grep <端口号>` 确认端口监听状态,并通过 `iptables` 或 `firewalld` 开放端口。 #### 3. 核对spark-submit参数 - **指定正确的Master URL** 提交作业时需明确Master地址,例如: ```bash spark-submit --master spark://<master-host>:7077 your_app.py ``` 若使用YARN模式,需确保Hadoop集群已启动且 `HADOOP_CONF_DIR` 环境变量正确配置。 #### 4. 检查Hadoop服务状态 - **确认HDFS/YARN正常运行** 执行 `hdfs dfsadmin -report` 和 `yarn node -list` 验证服务状态。若Hadoop服务未启动,需通过 `start-dfs.sh` 和 `start-yarn.sh` 启动。 - **排查Hadoop与Spark版本兼容性** 版本冲突可能导致连接失败,需确保Spark版本与Hadoop版本匹配(如Spark 3.x对应Hadoop 3.x)。 #### 5. 其他常见原因 - **Py4J版本冲突** 更新Py4J包至与Spark兼容的版本: ```bash pip install py4j==<版本号> ``` - **主机名解析问题** 在 `/etc/hosts` 中配置容器或节点的主机名与IP映射,避免因DNS解析失败导致连接超时。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值