启动hive时报: Call From hadoop /192.168.1.128 to hadoop :9000 failed on connection的原因之一hadoop启动没有Namenod

昨天上午启动集群,发现master莫名其妙引导坏了,修了半天也修不好,无奈之下把原来搭的集群的master“嫁接”到这个集群里(动态节点增删)。
昨天shutdown now关机后,今天开机启动hive又不行了,

主要部分错误代码:

Exception in thread "main" java.lang.RuntimeException: java.net.ConnectException: 
Call From master/192.168.80.128 to master:9000 
failed on connection exception: java.net.ConnectException: 拒绝连接; 
Caused by: java.net.ConnectException: 拒绝连接
	at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
	at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
	at org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:206)
	at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:531)
	at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:495)
	at org.apache.hadoop.ipc.Client$Connection.setupConnection(Client.java:614)
	at org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:712)
	at org.apache.hadoop.ipc.Client$Connection.access$2900(Client.java:375)
	at org.apache.hadoop.ipc.Client.getConnection(Client.java:1528)
	at org.apache.hadoop.ipc.Client.call(Client.java:1451)
	... 29 more

我百度了一下,这个原因有很多,什么安全模式没关啊,hadoop集群没有启动,或者防火墙,selinux没关,集群处于安全模式啊之类的。
但是上述条件我都不符合,安全模式也关了,在master运行jps发现,没有Namenode
主节点
在这里插入图片描述
关闭hadoop也显示no namenode to stop
在这里插入图片描述
分析到此,报错的元凶只能是它了↑↑↑↑↑↑↑↑↑↑,然后接下来就是解决hadoop启动没有Namenode:
如果没有Namenode的话,在浏览器访问master:50070也会访问失败。

解决过程:
切换到hadoop的core-site.xml下配置的hadoop.tmp.dir所指向的目录

在这里插入图片描述

cd $HADOOP_HOME/etc/hadoop
ls
vim core-site.xml

找到下图里头这个目录,然后将其删除后,重新建立
在这里插入图片描述

cd /usr/hadoop/hadoop-2.7.3/hdfs/tmp
rm -rf hdfs
mkdir -p hdfs/tmp

下一步,格式化namdenode

hadoop namenode -format

之后重新启动一下集群
再重新运行start-all.sh
可以看到Namenode已经出现在jps中,hive也可以正常运行。

在这里插入图片描述
在这里插入图片描述
以后改行专业修集群在这里插入图片描述

  • 11
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
这个错误提示是因为在 Hive 初始化后,它尝试连接到 Hadoop 的资源管理器(ResourceManager)和节点管理器(NodeManager)上,以获取集群中的资源信息,但是连接失败了。 您可以按照以下步骤来解决这个问题: 1. 确认 Hadoop 集群正常运行,并且 ResourceManager 和 NodeManager 都已经启动。您可以通过访问 ResourceManager 的 Web 界面(http://<resource_manager>:8088)和 NodeManager 的 Web 界面(http://<node_manager>:8042)来验证。 2. 确认 Hive 配置文件中的以下属性已正确配置: ``` <property> <name>yarn.resourcemanager.address</name> <value><resource_manager>:<resource_manager_port></value> <description>The ResourceManager host and port for the YARN application</description> </property> <property> <name>yarn.nodemanager.address</name> <value><node_manager>:<node_manager_port></value> <description>The NodeManager host and port for the YARN application</description> </property> ``` 其中,<resource_manager> 和 <node_manager> 分别是 ResourceManager 和 NodeManager 的主机名或 IP 地址,<resource_manager_port> 和 <node_manager_port> 分别是 ResourceManager 和 NodeManager 的端口号。 3. 确认 Hive 服务是否已启动,并且已经在 Hadoop 集群中注册。您可以在 Hive 的日志文件中查看是否有类似于以下信息: ``` INFO [main] org.apache.hadoop.hive.metastore.HiveMetaStore: Starting metastore ... INFO [main] org.apache.hadoop.hive.metastore.HiveMetaStore: Trying to connect to metastore with URI thrift://<hive_metastore>:9083 INFO [main] org.apache.hadoop.hive.metastore.HiveMetaStore: Connected to metastore. ``` 其中,<hive_metastore> 是 Hive 元数据存储的主机名或 IP 地址,9083 是 Hive 元数据存储的默认端口号。 如果 Hive 服务未启动或者未在 Hadoop 集群中注册,则需要启动 Hive 服务并将其注册到 Hadoop 集群中。 4. 检查 Hadoop 集群的防火墙设置,确保端口 8088(ResourceManager)和 8042(NodeManager)已经打开。 如果您仍然无法解决问题,请提供更多详细信息,例如 HiveHadoop 的版本号,以及配置文件中的详细信息,这样我可以更好地帮助您解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高哥的代码没Bug

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值