本次进行Hadoop本体的安装。
安装基于厦门大学数据实验室的这篇文章。因为手头只有一台电脑,仅安装“Hadoop伪分布式配置”,从文章的同名小节开始参考。
本文为笔记记录,同时也记录了安装过程中遇到的问题。
安装之前,请准备好Hadoop的资源,并解压好,记住解压目录。
配置Hadoop环境变量
文章指出使用如下命令在~/.bashrc目录下进行配置:
gedit ~/.bashrc
当然,同样可以使用vi、vim工具进行配置。
在文件中添加如下内容:
# Hadoop Environment Variables
export HADOOP_HOME=/usr/local/hadoop #hadoop的解压目录
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
保存后,使用以下命令使之生效:
source ~/.bashrc
设置Hadoop配置文件
需要设置的有两个文件,是etc/hadoop目录下的core-site.xml和hdfs-site.xml文件。
配置core-site.xml文件
打开文件,在</configuration>标签中添加以下内容:
<configuration>
<!--配置临时目录-->
<property>
<name>hadoop.tmp.dir</name>
<value>file:hadoop的解压目录/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<!--配置网络访问目录-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
配置hdfs-site.xml文件
打开文件,在</configuration>标签下添加以下内容:
<configuration>
<!--设置hdfs文件复本的个数-->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!--设置namenode的目录-->
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<!--设置datanode的目录-->
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>
</configuration>
NameNode格式化
原文使用以下命令进行格式化:
./bin/hdfs namenode -format
老师说这个命令比较古早,建议改为以下命令:
./bin/hadoop namenode -format
另外注意,/bin目录在解压缩目录下。
在这一步骤中,我遇到了如下问题:
查找资料得知,是当前主机没有配置。
【解决方法】
首先使用hostname命令查看当前主机。
再使用打开/etc/hosts文件,将当前主机名映射到一个IP地址(追加到其中一行,以空格分开)。
再执行格式化命令,即可成功。
开启NameNode和DataNode守护进程
进入解压缩目录,执行以下命令:
./sbin/start-dfs.sh
在此步骤中,遇到了JAVA_HOME is not set的问题:
starting namenode, logging to /home/HadoopInstall/hadoop-0.20.2/bin/../logs/hadoop-root-namenode-ubuntu.out
localhost: starting datanode, logging to /home/HadoopInstall/hadoop-0.20.2/bin/../logs/hadoop-root-datanode-ubuntu.out
localhost: Error: JAVA_HOME is not set.
localhost: starting secondarynamenode, logging to /home/HadoopInstall/hadoop-0.20.2/bin/../logs/hadoop-root-secondarynamenode-ubuntu.out
localhost: Error: JAVA_HOME is not set.
starting jobtracker, logging to /home/HadoopInstall/hadoop-0.20.2/bin/../logs/hadoop-root-jobtracker-ubuntu.out
localhost: starting tasktracker, logging to /home/HadoopInstall/hadoop-0.20.2/bin/../logs/hadoop-root-tasktracker-ubuntu.out
localhost: Error: JAVA_HOME is not set.
【解决方法】
打开etc/hadoop下的hadoop-env.sh文件,手动填写JAVA_HOME的值。
验证是否启动成功
使用jps命令进行验证:
jps
至少出现以下三项,表示成功:
- NameNode
- DataNode
- SecondaryNameNode