Hadoop | 解决启动Hadoop,jps后无namenode,datanode等进程

问题描述

最近因为想修改一下主机名,用户名什么的
但是一开始没有注意到主机名和用户名对于Hadoop服务的影响

导致修改后,导致Hadoop启动,失败,即jps后,没有namenode,datanode,显然这两个文件对于hadoop是至关重要的,要不然无法获取数据

一开始没有考虑查看日志排错(因为对于异常处理方面不敏感:😦

因为机缘巧合,碰巧试了试,然后就行了

之所以出错,归根结底还是对于原理不熟

解决方案

首先要知道Linux下的主机名和用户名是什么,如何查看

命令行终端下

格式 :
用户名@主机名
实例 :
hadoop@localhost_virtualbox

在这里插入图片描述
如图 :
python就是用户名
ubuntu就是主机名

01

本操作基于伪分布式

知道伪分布式Hadoop的一些原理

本地节点作为name节点,也作为datanode

区别于分布式,Master和Slave

02

有两个配置至关重要
1.

vim /etc/hostname

这个配置文件与主机名有关
2.

vim /etc/hosts

这个文件与域名解析有关

域名解析指的什么呢?

03

如是单机模式或者伪分布式
都是一个节点同时作为datanode(数据节点)和namenode(名称节点)

这样域名解析,指向的都是同一本地节点

/etc/hosts应该是这样

127.0.0.1	localhost  # 表示本地主机
127.0.1.1	默认主机名  
# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

# 假设/etc/hostname为 hadoop
则应该正确被启动的datanode是 ....datanode-hadoop
# 假设/etc/hosts配置的域名是 hadooptest
则按照配置解析的datanode是...datanode-hadooptest

自然找不到

# 假设/etc/hostname为 hadoop
则应该正确被启动的datanode是 ....datanode-hadoop
# 假设/etc/hosts配置的域名是 hadoop
则按照配置解析的datanode是...datanode-hadoop

自然就找到了

注意两点

NOTICE
应该被启动的node
按照给出的域名,解析的node

在这里插入图片描述

一般来说,启动Hadoop成功关键主要看namenode,datanode是否启动,更主要看datanode
在这里插入图片描述

记得,每次修改大的操作,建议重启虚拟机,以免防止缓存,或者其它原因,设置没有生效,以为是生效了

总结:归根原因是没有理解,应用name,datanode的相关知识
没有采取和利用合理的排错手段,如日志,异常报错等

  • 10
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值