为了使您快速体验hadoop,可以在一台机子上安装单节点(Node)的hadoop。
一 安装的前提条件
1.平台要求
(1). hadoop全面支持GNU/Linux,并且已经演示过部署在GNU/Linux上超过2000个节点的集群.
(2). Win32 仅支持作为开发平台,hadoop的分布式相关功能并未在Win32 上作全面测试,因此不建议在产品环境中使用win32平台。
2.软件要求
Linux和windows上都需要安装以下软件:
(1)必须安装javatm 1.6.x,最好是sun的.
(2)必须安装SSH,SSHD需要开启,hadoop脚本才能管理远程实例(remote Hadoop daemons)
另外:
Windows上必须安装Cygwin.
3.安装以上软件
Ubuntu Linux上安装举例:
$ sudo apt-get install ssh
$ sudo apt-get install rsync
windows上安装了cygwin后,还需要安装openssh.
二 下载最新稳定版hadoop 1.2.1
下载地址:
http://hadoop.apache.org/core/releases.html
三 准备启动Hadoop集群(单节点)
解压缩下载的hadoop,并编辑conf/hadoop-env.sh文件,将配置项JAVA_HOM设置为你安装的java的当前根目录。
开始运行一下命令:
$ bin/hadoop
如果显示的是hadoop命令的帮助,则表示设置正确。
接下来,你可以操作hadoop集群了,hadoop集群有三种模式:
Local (Standalone) Mode(独立模式)
Pseudo-Distributed Mode(伪分布式模式)
Fully-Distributed Mode(分布式模式)
在这里仅介绍前两种模式,第三种模式较复杂,以后单独介绍。
四 独立模式使用
默认情况下,hadoop被配置成非分布式模式,即一个java进程,这样方便调试。
下面的命令将hadoop安装目录下的conf目录作为输入,然后将conf目录下的文件中符合给定正则表达式条件的内容找出来。输出即将内容写入指定的输出目录的文件中。
$ mkdir input
$ cp conf/*.xml input
$ bin/hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+'
$ cat output/*
五 伪分布式模式操作使用
在单台机子上hadoop通过运行多个java后台进程来实现伪分布式。
1 依次编辑配置文件,并按照下面的内容进行设置:
conf/core-site.xml:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
conf/hdfs-site.xml:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
conf/mapred-site.xml:
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
2 配置SSH客户端不需要输入密码登陆
如果你执行以下命令:
$ ssh localhost
成果,则不需要配置,否则需要配置,配置命令如下:
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
3 执行命令
格式化hadoop文件系统:
$ bin/hadoop namenode -format
启动hadoop后台实例:
$ bin/start-all.sh
hadoop实例日志在${HADOOP_LOG_DIR}目录中(默认为${HADOOP_HOME}/logs)
通过浏览器来查看hadoop的命名节点(NameNode)和作业追踪器(JobTracker),默认的地址为:
NameNode - http://localhost:50070/
JobTracker - http://localhost:50030/
将输入文件拷贝到hadoop分布式文件系统上:
$ bin/hadoop fs -put conf input
执行命令:
$ bin/hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+'
将文件
iis7站长之家拷贝到本地文件系统并查看输出内容:
$ bin/hadoop fs -get output output
$ cat output/*
或者,你可以直接在分布式文件系统上查看输出文件内容:
$ bin/hadoop fs -cat output/*
测试完成以后,停止hadoop集群命令:
$ bin/stop-all.sh