Hadoop的代码可以到Apache上下载,链接为http://archive.apache.org/dist/hadoop/core/hadoop-0.19.0/,我使用的Linux机器是ubuntu12.10,Linux上安装的Java版本为1.7.0_51,并且JAVA_HOME=/usr/java/jdk1.7.0_51。
实践过程
1、ssh无密码验证登陆localhost
保证Linux系统的ssh服务已经启动,并保证能够通过无密码验证登陆本机Linux系统。如果不能保证,可以按照如下的步骤去做:
(1)启动命令行窗口,执行命令行:
[plain] view plaincopyprint?
1. $ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
2. $ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
$ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
(2)ssh登陆localhost,执行命令行:
$ ssh localhost
第一次登录,会提示你无法建立到127.0.0.1的连接,是否要建立,输入yes即可,下面是能够通过无密码验证登陆的信息:
[root@localhost hadoop-0.19.0]# ssh localhost
Last login: Sun Aug 1 18:35:37 2010 from 192.168.0.104
[root@localhost ~]#
2、Hadoop-0.19.0配置
下载hadoop-0.19.0.tar.gz,大约是40.3M,解压缩到Linux系统指定目录,这里我的是/root/hadoop-0.19.0目录下。
下面按照有序的步骤来说明配置过程:
(1)修改hadoop-env.sh配置
将Java环境的配置进行修改后,并取消注释“#”,修改后的行为:
export JAVA_HOME=/usr/java/jdk1.7.0_51
(2)在<configuration>与</configuration>加上3个属性的配置,修改后的配置文件内容为:
1、core-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>fs.default.name</name>
- <value>hdfs://localhost:9000</value>
- </property>
- </configuration>
2、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>
3、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>
3、运行wordcount实例
wordcount例子是hadoop发行包中自带的实例,通过运行实例可以感受并尝试理解hadoop在执行MapReduce任务时的执行过程。按照官方的“HadoopQuick Start”教程基本可以容易地实现,下面简单说一下我的练习过程。
导航到hadoop目录下面,我的是/root/hadoop-0.19.0。
(1)格式化HDFS
执行格式化HDFS的命令行:
[plain] view plaincopyprint?
1. [root@localhost hadoop-0.19.0]# bin/hadoop namenode -format
[root@localhosthadoop-0.19.0]# bin/hadoop namenode -format
格式化执行信息如下所示:
[plain] view plaincopyprint?
1. 10/08/01 19:04:02 INFO namenode.NameNode: STARTUP_MSG:
2. /************************************************************
3. STARTUP_MSG: Starting NameNode
4. STARTUP_MSG: host = localhost/127.0.0.1
5. STARTUP_MSG: args = [-format]