参考:
http://hadoop.apache.org/docs/r1.2.1/single_node_setup.html
Hadoop实战.pdf(page17-page25)
本文以hadoop1.2.1为例,虽然hadoop都已经发行了2.6.0,但是因为自己的学习资料跟不上最新版本,所以还是从简单入手.
安装方式主要包含:本地模式,伪分布模式和全分布模式.其中本地模式和伪分布模式从属于单节点安装.本文介绍单节点安装.
安装之前先要了解相关概念,其中Hadoop实战.pdf(page17-page25)介绍得还不错.无论那种安装模式都要先安装好JAVA,并设置好JAVA_HOME变量.设置方法为:
$ vi conf/hadoop-env.sh
#复制# export JAVA_HOME=/usr/lib/j2sdk1.5-sun这一句,并去掉注释,编辑并保存.比如如下:
export JAVA_HOME=/opt/jdk1.7
一.本地(独立)模式.
此方法最简单,经过上面的JAVA环境变量设定就算完成.测试:
#创建输入目录
$ mkdir input
#将某文件复制到输入目录
$ cp conf/*.xml input
#运行
$ bin/hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+'
#查看结果
$ cat output/*
二.伪分布模式.此方式虽然有分布式的思想,但所有的东东都是装在同一台机器.
1.设置JAVA环境变量,配置三个xml
$ cat conf/core-site.xm
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
$ cat conf/hdfs-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
$ cat conf/mapred-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
2.配置无密码ssh,根据上一篇文章,将本机产生的公钥追加到authorized_keys文件即可,并使用ssh localhost验证是否成功.
3.执行测试:
#格式化新分布式文件系统
$ bin/hadoop namenode -format
#启动hadoop守护进程,日志输出写入到${HADOOP_LOG_DIR}目录(默认是${HADOOP_HOME}/logs).
$ bin/start-all.sh
使用浏览器浏览NameNode和JobTracker(不在本机浏览器浏览,注意防火墙是否拦截):
NameNode:http://192.168.1.120:50070/
JobTracker:http://192.168.1.120:50030/
#使用jps命令查看守护进程,五种角色都出来了,说明安装成功.
$ jps
5763 SecondaryNameNode
5851 JobTracker
5969 TaskTracker
5630 DataNode
5519 NameNode
6025 Jps
#拷贝输入文件进入分布式系统
$ bin/hadoop fs -put conf input
#运行提供的示例
$ bin/hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+'
#检查输出文件.从分布文件系统拷贝输出文件到本地文件系统,并进行检查.
$ bin/hadoop fs -get output output
$ cat output/*
或者在分布式文件系统查看输出文件
$ bin/hadoop fs -cat output/*
#完成后,使用以下命令停止hadoop守护进程:
$ bin/stop-all.sh