本人大三大数据专业,上周初学如何搭建hadoop环境。配置好了静态ip搭建完了hadoop分布式集群后,开始搭建Zookeeper软件,之后搭建hbase环境(https://blog.csdn.net/master_hunter/article/details/108704148)。在此领域本人有诸多不明确疑问,可能文章会有些许错误,望大家在评论区指正,本篇文章错误将会不断更正维护。
项目场景:
在装载了Hbase之后打算搭建数据仓库(Hive),安装完了Hive之后在安装Mysql的时候发现hadoop的hdfs所有服务启动不了,进入hadoop目录查看发现只有conf.empty,进入所有配置文件都带有后缀.rpmsave。个人觉得应该是rpm时路径设置错误导致。
问题描述:
命令hadoop时not found,hdfs无反应,进入hadoop目录只有conf.empty文件,进入所有配置文件都带有后缀.rpmsave。
原因分析:
可能配置Hive的时候环境配错HADOOP_HOME=/usr/local/hadoop路径导致,可能rpmsql的时候打错命令导致。
解决方案:
利用启动服务第二节点secondnamenode的hadoop2来补救,我原本备份的hadoop1还没有搭建hbase和zookeeper,所有以后还要记得实时动态备份hadoop啊(泪目)。
克隆hadoop2改为hadoop1名字,进入hadoop1后修改其节点的hostname
/etc/sysconfig/network
将hadoop2改为hadoop1,之后需要清除DataNode数据写入目录信息(因为目录里有DataNode的编号信息,如不清除,DataNode只能启动一个)
rm -rf /data/dn/*
设置克隆后的hadoop1的mac地址
vi /etc/sysconfig/network-scripts/ifcfg-eth0
mac可以在虚拟机网络配置看到
修改后记得改网关
rm -rf /etc/udev/rules.d/70-persistent-net.rules
重启后修改新生成/etc/udev/rules.d/70-persistent-net.rules 中为NAME="eth0"。
这时候根据hadoop映射原理应该已经识别到了hadoop1,开启namenode服务,根据第二节点的冷备份功能克隆的hadoop1会回溯原hadoop1状态,但进入其他节点查看其余服务都能正常启动但是DataNode无法启动。
先暂停所有节点服务(根据自己在其他虚拟机部署的服务来关闭相应服务)
service hadoop-hdfs-datanode stop service hadoop-yarn-resourcemanager stop service hadoop-mapreduce-historyserver stop service hadoop-hdfs-namenode stop service hadoop-hdfs-secondarynamenode stop
然后在hadoop1、hadoop2和hadoop3上分别删除/data/dn/current,执行以下命令
rm -rf /data/dn/current
启动顺序:namenode——>secondnamenode——>所有datanode——>recourcemanager——>所有机器的nodemanager——>historyserver.
之后再启动节点相应的服务,发现hadoop1以及可以正常使用。问题解决