1.下载压缩包并解压
2.设置环境变量
在/etc/profile中添加
export JAVA_HOME="/usr/lib/jdk1.8.0_60"
export HADOOP_HOME=/usr/lib/hadoop-1.0.0
export PATH=.:$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
执行 source /etc/profile
3.在conf目录下的配置文件中添加配置项:
mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>hadoop0:9001</value>
</property>
</configuration>
core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://hadoop0:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/lib/hadoop-1.0.0/tmp</value>
</property>
</configuration>
hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
hadoop-env.xml
export JAVA_HOME="/usr/lib/jdk1.8.0_60"
4.设置免密码登录
ssh-keygen -t rsa
cd ~/.ssh/
cat id_rsa.pub >> authorized_keys
5.启动hadoop
5.1 格式化hdfs
hadoop namenode -format
5.2启动hadoop
start-all.sh
在浏览器中输入http://hadoop0:50030检查mapreduce是否启动成功
输入http://hadoop0:50070检查hdfs是否启动成功
6.错误
通过查看源文件中的core-default.xml
文件发现默认namenode、secondary namenode和datanode都会将数据存储在本地根目录下的tmp文件夹下,而这个文件夹下的内容每次重启电脑都会被清空,这样我们就会丢失重要数据。下次开机运行start-all.sh
时,就会报下面的错误:
2015-10-03 13:37:07,467 ERROR org.apache.hadoop.hdfs.server.namenode.FSNamesystem: FSNamesystem initialization failed.
30 org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: Directory /tmp/hadoop-root/dfs/name is in an inconsistent state: storage directory does not exist or is not accessible.
……
2015-10-03 13:37:07,760 ERROR org.apache.hadoop.hdfs.server.namenode.NameNode : org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: Directory /tmp/hadoop-root/dfs/name is in an inconsistent state: storage directory does not exist or is not accessible.
一个治标不治本的解决方法是重新运行hadoop namenode -format
麻烦不说,主要是这个方法无法解决丢失数据的问题。
解决方法就是core-site.xml
中添加如下内容覆盖core-default.xml
中的值:
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/lib/hadoop-1.0.0/tmp</value>
</property>
然后重新格式化namenode后再启动hadoop。