记录者: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
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/zff/hadoop/hadoop-2.7.3/tmpdir</value>
<description>A base for other temporary directories.</description>
</property>
<property>
<!--dfs-->
<name>fs.default.name</name>
<value>hdfs://localhost:9000/</value>
<description>the name of the default files</description>
</property>
<property>
<name>dfs.name.dir</name>
<value>/home/zff/hadoop/hadoop-2.7.3/tmpdir/hdfs/name</value>
<description>determines where on the local filesystem</description>
</property>
</configuration>
对于hdfs-site.xml
<configuration>
<property>
<name>dfs.data.dir</name>
<value>/home/zff/hadoop/hadoop-2.7.3/tmpdir/hdfs/data</value>
<description>determines where on the local filesystem</description>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
<description>default block replication</description>
</property>
<property>
<name>dfs.name.dir</name>
<value>/home/zff/hadoop/hadoop-2.7.3/tmpdir/hdfs/name</value>
</property>
</configuration>
对于mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
<description>the host and the port</description>
</property>
<property>
<name>mapred.local.dir</name>
<value>/home/zff/hadoop/hadoop-2.7.3/tmpdir/mapred/local</value>
</property>
<property>
<name>mapred.system.dir</name>
<value>/home/zff/hadoop/hadoop-2.7.3/tmpdir/mapred/local</value>
</property>
</configuration>
在完成上述步骤之后在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下面的文件,除了最初配置时的东西之外,删除所有的文件
再重新启动
网友评论