Hadoop伪分布式安装总结

记录者:zff

时间:11/27/2016 1:24:00 PM


记录一下Hadoop伪分布式安装遇到的问题

参考自:http://blog.sina.com.cn/s/blog_4c248c5801014nd1.html
http://www.cnblogs.com/kinglau/archive/2013/08/28/3287096.html

今天在安装Hadoop的伪分布式时遇到问题,现在将这些遇到的问题及其解决方案记录下来,以后再遇到的时候就可以较好的解决了。

1.Java的安装与环境配置

export JAVA_HOME=/home/zff/java/jdk1.8.0_111

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

export PATH=${JAVA_HOME}/bin:$PATH

2.Hadoop的解压与环境配置

tar -zxvf hadoop-2.7.3.tar.gz

export HADOOP_HOME=/home/zff/hadoop/hadoop-2.7.3

export PATH=$HADOOP_HOME/bin:$PATH

为了保证环境配置的持续有效,需要将Java与Hadoop的环境变量写进Linux的环境变量配置里面,这样子之后在重启的时候就可以继续使用了。本来也是可以直接使用export命令直接进行设置,但是这样子在重新启动的时候会被注销掉。

3.Hadoop单机的启动

cd ./hadoop/hadoop-2.7.3/sbin

./start-all.sh

Hadoop fd -ls /

其实在启动的时候我们一般并不建议直接使用start-all.sh的命令,而是一个个启动,这样子当某个环节出问题的时候可以及时的使用logs日志进行查询。

4.Hadoop的伪分布式安装

首先需要配置好core-site.xml,mapred-site.xml,hdfs-site.xml三个文件
对于core-site.xml



    hadoop.tmp.dir
    /home/zff/hadoop/hadoop-2.7.3/tmpdir
    A base for other temporary directories.



    
    fs.default.name
    hdfs://localhost:9000/
    the name of the default files


    dfs.name.dir
    /home/zff/hadoop/hadoop-2.7.3/tmpdir/hdfs/name
    determines where on the local filesystem


对于hdfs-site.xml



    dfs.data.dir
    /home/zff/hadoop/hadoop-2.7.3/tmpdir/hdfs/data
    determines where on the local filesystem


    dfs.replication
    1
    default block replication

  
    dfs.name.dir
    /home/zff/hadoop/hadoop-2.7.3/tmpdir/hdfs/name  



对于mapred-site.xml



mapred.job.tracker
  localhost:9001
  the host and the port

  
    mapred.local.dir  
    /home/zff/hadoop/hadoop-2.7.3/tmpdir/mapred/local  
  
  
    mapred.system.dir  
    /home/zff/hadoop/hadoop-2.7.3/tmpdir/mapred/local  


在完成上述步骤之后在slavers文件里写上主机名

5。使用start-all.sh直接启动Hadoop,报如下错误:localhost:Error: JAVA_HOME is not set and could not be found.

在Hadoop-env.sh里面写上JAVA_HOME=/home/zff/java/jdk1.8.0_111

6.在Ubuntu中配置SSH(解决connect to host localhost port 22: Connection refused问题)

sudo apt-get install ssh

sudo /etc/init.d/ssh start

ps -e|grep ssh

ssh-keygen -t rsa -P ""

/.ssh/id_rsa.pub>>/.ssh/authorized_keys

ssh localhost

exit

当使用jps命令的时候发现datanode没有启动,这时候可以打开http://localhost:50020,然后打开datanode的logs日志,再在logs页面点击hadoop-hadoop-datanode-ubuntu.log 链接
发现是NameNode和DataNode的namespaceID不一致日志信息为:
(没有出现显试的错误,但是两个ID确实不一样)

解决办法:打开tmpdir下面的文件,除了最初配置时的东西之外,删除所有的文件
再重新启动

你可能感兴趣的:(Hadoop伪分布式安装总结)