我参考了两篇教程 Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.04和Ubuntu16.04安装Hadoop2.7.3 教程,在Ubuntu16.04下安装Hadoop2.7.5的单机和伪分布式的搭建,并测试成功。本文最主要是补充一下前面两个教程中没有提到的细节部分和遇到某些错误时的处理方法。
配置java环境变量要注意,如果破坏了其他的环境变量,会导致很多指令不能用,桌面进不去等等问题。提供一个解决办法:解决Ubuntu环境变量错误导致无法正常登录。
如果你配置了SSH免密码登录,那么你需要修改hadoop文件夹下etc文件夹下hadoop-env.sh中的$JAVA_HOME,直接改为路径。不然一定报错。
在伪分布配置中会有这么两段地址:usr/local/hadoop/tmp/dfs/data和usr/local/hadoop/tmp/dfs/name,但是解压完Hadoop的tar包之后usr/local/hadoop下并没有dfs文件夹,更不会有data和name文件夹。所以要么先自己建好这几个空文件夹,位置不要建错,要么直接给hadoop文件权限。data和name文件夹的权限很重要,需要赋予写入的权限,因为后面执行namenode -format 的时候,会自动向这几个文件夹里写入一些文件,如果文件夹没有写入的权限,那么会报错,内容大概是failed to create current file.....等等。解决的办法参考Hadoop格式化namenode错误:java.io.IOException: Cannot create directory。特别注意data和name两个文件都要这么做!!!
有未知错误但是terminal没有提示,可以查看logs文件里.log文件,里面会有错误提示。
如果你发现执行jps之后,namenode或者datanode没有显示,首先确保你的配置文件是正确的,然后你需要重新格式化namenode,那么首先执行stop-dfs.sh,然后删除logs文件夹里全部文件。删除前面创建的整个tmp文件夹,然后重新执行整个步骤。
以上都是我遇到的问题以及解决的方法,亲测有效。