单机安装配置hadoop平台
1.1 先决条件
1.1.1 支持平台
Hadoop可以在GNU/Linux上开发和运行。Win32平台可以作为开发平台,但由于分布式操作在Win32上没有完善测试过,所以Win32暂不支持Hadoop作为运行平台。
1.1.2 软件需求
Linux和Windows下需要安装的软件包括:
1.Java环境,版本1.6.x必须安装
2.ssh必须安装,且为了是Hadoop脚本能够管理远程守护进程,sshd必须运行。
对于Windows的额外需求:
Cygwin:需要安装来支持Linux Shell。
1.1.3 安装软件
如果你的Hadoop集群没有安装所要求的软件你得先安装才能正常运行Hadoop。例如在Ubuntu Linux下输入:
$ sudo apt-get install ssh
$ sudo apt-get install rsync
在Windows下如果已经安装了Cygwin,则打开Cygwin installer选择相应安装包:
openssh – the Net category
1.1.4 下载Hadoop压缩包
在http://hadoop.apache.org/common/releases.html上下载最新的稳定版本。
1.2 配置Hadoop集群
将下载下来的压缩包解压缩,编辑解压缩目录下的conf/hadoop-env.sh文件,将其中的JAVA_HOME一项中填上你JDK的安装位置。
运行下面的命令:
$ bin/hadoop
这样会显示Hadoop脚本的使用文档内容。
注:可以将Hadoop安装目录的bin目录加入到系统的PATH中,这样就可以直接键入hadoop无需在命令前加入hadoop的目录。
$ sudo PATH= $PATH:/home/root/Desktop/hadoop-0.20.2/bin/
$ hadoop
现在就可以开始以一下三种模式之一来运行Hadoop平台了:
本地(单机)模式;
伪分布模式;
全分布模式。
1.3 单机模式
默认情况下,Hadoop被配置为非分布模式,即在单个Java进程中运行。该模式主要用于开发和调试程序。
下面的例子可用来测试Hadoop是否安装成功。这个例子把conf目录中的文件拷贝到input目录中,然后在这些文件的内容中匹配指定的短语将每个匹配内容打印到输出文件。输出文件被放在output目录中。
$ mkdir input
$ cp conf/*.xml input
$ bin/hadoop jar hadoop-*-examples.jar grep input output 'dfs[a-z.]+'
$ cat output/*
如果运行成功则会看到匹配短语打印出来。
1.4 伪分布模式
Hadoop也可以在单机上以伪分布模式运行,此时每个Hadoop守护进程在一个独立的Java进程中运行。
配置如下:
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>
1.4.1 设置无口令ssh
测试一下你是否能无口令通过ssh登录localhost:
$ ssh localhost
如果不能,执行以下命令:
$ ssh-keygen –t dsa –P ‘’ –f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
1.4.2 运行
格式化一个新的分布式系统:
$ bin/hadoop namenode –format
运行Hadoop守护进程:
$ bin/start-all.sh
Hadoop守护进程的运行日志输出写入了${HADOOP_LOG_DIR}目录(默认为${HADOOP_HOME}/logs)。
可以浏览NameNode和JobTracker的web接口;默认情况下地址:
NameNode - http://localhost:50070/
JobTracker - http://localhost:50030/
将输入文件拷贝到分布式文件系统:
$ bin/hadoop fs -put conf input
运行Hadoop自带的例程:
$ 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
浙公网安备 33010602011771号