操作系统


操作系统使用 Ubuntu 11.04 桌面版。设置 root 密码: sudo passwd root


下载 jdk,jdk-6u27-linux-i586.bin


下载 hadoop, hadoop-0.20.204.0.tar.gz



安装 JDK


安装 java6, 将 JDK 复制到 /usr/local 目录下,使用下面命令安装


sudo sh jdk-6u27-linux-i586.bin


设置 JDK 环境变量


sudo gedit /etc/environment


增加 PATH 、增加 export JAVA_HOME 、增加 export CLASSPATH




创建用户组及用户


创建用户组 hadoop ,创建用户 hadoop


sudo addgroup hadoop
 
sudo adduser --ingroup hadoop hadoop




配置 SSH


下载 SSH SERVER:sudo apt-get install openssh-server


生成 SSH 证书:


1. 转换到 hadoop 用户下: su hadoop


2. 生成空密码的 SSH 证书: ssh-keygen -t rsa -P ""


要求输入文件名时,直接回车 , 会生成 .ssh 文件


完成后,测试: ssh localhost




安装 hadoop


复制 hadoop 安装文件到 /usr/local


sudo cp hadoop-0.20.204.0.tar.gz /usr/local


解压 hadoop 文件


sudo tar xzf hadoop-0.20.204.0.tar.gz


解压后生成目录 hadoop-0.20.204.0 ,更改目录名称为 hadoop ,方便使用


sudo mv hadoop-0.20.204.0 hadoop


给目录 hadoop 增加执行权限


sudo chown -R hadoop:hadoop hadoop




配置 hadoop


打开 hadoop/conf/core-site.xml


sudo gedit core-site.xml


增加以下内容 :


1. 增加临时内容存放目录,最好建在 hadoop 用户下,如果在 /usr/local 下,执行 hadoop 时,会没有权限建立临时目录 ,


<property>
 
         <name>hadoop.tmp.dir</name>
 
         <value>/home/hadoop/hadoop-datastore</value>
 
         <description>A base for other temporary directories.</description>
 
</property>


2. 增加 namenode 节点


<property>
 
         <name>fs.default.name</name>
 
         <value>hdfs:localhost:54310</value>
 
         <description>The name of the default file system.  A URI whose
 
  scheme and authority determine the FileSystem implementation.  The
 
  uri's scheme determines the config property (fs.SCHEME.impl) naming
 
  the FileSystem implementation class.  The uri's authority is used to
 
  determine the host, port, etc. for a filesystem.</description>
 
  </property>
 
</property>


打开 mapred-site.xml, 增加 MapReduce job tracker 运行的主机和端口


<property>
 
  <name>mapred.job.tracker</name>
 
  <value>localhost:54311</value>
 
  <description>The host and port that the MapReduce job tracker runs
 
  at.  If "local", then jobs are run in-process as a single map
 
  and reduce task.
 
  </description>
 
</property>


打开 hdfs-site.xml

<property>
 
  <name>dfs.replication</name>
 
  <value>1</value>
 
  <description>Default block replication.
 
  The actual number of replications can be specified when the file is created.
 
  The default is used if replication is not specified in create time.
 
  </description>
 
</property>


格式化命名节点


bin/hadoop namenode -format


启动 hdfs 和 MapReduce : bin/start-all.sh


停止服务 :bin/stop-all.sh


使用 jps 命令查看运行的 hadoop 进程


查看集群状态命令 :bin/hadoop dfsadmin -report


使用 web 方式查看:


1.hdfs 的 WEB 页面: http://localhost:50070


2.MapReduce 的 WEB 页面: http://localhost:50030




测试 hadoop


使用 hadoop 所附带的例程,测试文件中的单词重复数


可以在 /home/hadoop 中建立 input 目录,创建两个文本文档,内容是不同的单词,文件名为 file01.txt,file02.txt


如果已经在 hadoop 中执行过程序并创建了 input 和 output 目录,在执行前先删除,否则会失败。


在 hadoop 中建立 input 目录  bin/hadoop fs -mkdir input


将本地的两个文件上传到 hadoop 中, bin/hadoop fs -copyFromLocal /home/hadoop/input/file0*.txt input


执行例程 wordcount, bin/hadoop jar hadoop-examples-0.20.204.0.jar wordcount input output


执行完成后,可以查看下 hadoop 中 output 目录: bin/hadoop fs -ls output ,可以看到有三个文档, _SUCCESS, _logs 和 part-r-00000


说明例程执行成功了。查看执行的结果: bin/hadoop fs -cat output/part-r-00000