1.无法启动start-dfs.sh
解决方法:
1.打开 .bashrc文件
2.输入命令:vim .bashrc
3.添加一行:PATH=$PATH:/usr/local/hadoop/sbin
4.输入命令:source $HOME/.bashrc
2.启动 Hadoop 时遇到输出非常多“ssh: Could not resolve hostname xxx”的异常情况
如图所示:
解决方法:
可通过设置 Hadoop 环境变量来解决。
首先按键盘的 ctrl + c 中断启动,然后在 ~/.bashrc 中,增加如下两行内容(设置过程与 JAVA_HOME 变量一样,其中 HADOOP_HOME 为 Hadoop 的安装目录):
1.export HADOOP_HOME=/usr/local/hadoop
2.export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
保存后,务必执行 source ~/.bashrc 使变量设置生效,然后再次执行 ./sbin/start-dfs.sh 启动 Hadoop。启动后再使用jps命令判断是否启动成功。
3.启动hbase出现如下错误
解决方法:
可以将hbase的zookeeper目录下的文件全都删除掉,然后再重启hbase服务就可以了。
4.操作时不小心将/usr/local目录删除了
解决方法:
1.
由于hadoop02由hadoop01复制而来,/usr/local目录基本相似,我们可以将hadoop01的/usr/local目录复制到hadoop02的root用户下。
2.
再在hadoop02里将root下的local目录移动到/usr目录下,就成功了。
5.virtualbox下正确虚拟机修改设备名称
解决办法:
sudo gedit /etc/hostname
sudo gedit /etc/hosts
6.No route to host
有两个原因:防火墙、因为hadoop不支持IPV6,但是你机器上的IPV6 开着。我属于前者原因。
解决方法:
关闭防火墙,命令如下 :sudo service iptables stop。
7.hadoop集群启动namenode成功,而datanode未启动
出现该问题的原因:在第一次格式化dfs后,启动并使用了hadoop,后来又重新执行了格式化命令(hdfs namenode -format),这时namenode的clusterID会重新生成,而datanode的clusterID 保持不变。
解决方法:
修改VERSION文件。
在namenode节点上打开:
进入hadoop-2.4.1/tmp/dfs/name/current/
打开VERSION:vi VERSION
复制clustreID的值
打开datanode1节点:
进入hadoop-2.4.1/tmp/dfs/data/current/
打开VERSION: vi VERSION
粘贴clustreID的值