通过一天半的努力,终于在多机集群环境下搭建好了hadoop,成功地运行了wordcount示例程序。学习和体会了hadoop的map reduce模型和hdfs分布式文件系统。
我使用的liunx系统是red hat enterprise Linux 5,jdk 版本是:1.6.0_26,hadoop版本是:0.21.0, 注意此版本的hadoop须要1.6版本的jdk,不然会致使hadoop没法运行。
步骤一:安装java
1)、下载Linux版的java。
将其解压后放在任意一个目录下,我放在 /usr/java目录下;
2)、设置jJAVA_HOME环境变量。
我是经过修改配置文件实现的,须要root用户修改/etc/profile文件,在文件最后加上以下三行:
export JAVA_HOME=/usr/java/jdk1.6.0_26
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar
须要从新启动系统,这样就生效了,
3)、验证java安装
[root@node1 etc]# java -version
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) Client VM (build 20.1-b02, mixed mode)
[root@node1 etc]#
如上所示,表示安装成功。
注意:每台机器都要安装java。
步骤二:多机集群ssh配置
个人集群只有三台机器,将其取名为:node1, node2, node3。从map reduce计算的角度讲,node1做为master节点,node2和node3做为slave节点。从hdfs数据存储角度讲,node1做为namenode节点,node2和node3做为datanode节点。
1)、修改/etc/hosts文件
node1以下:
115.25.33.39 node1 node1
115.25.33.52 node2 node2
115.25.33.49 node3 node3
注意:上面的ip地址为每台机器当前实际分配的ip地址,因此不能照抄。Linux中查看本机ip地址的命令为:ifconfig
node2以下:
115.25.33.39 node1 node1
115.25.33.49 node3 node3
node3以下:
115.25.33.39 node1 node1
115.25.33.52 node2 node2
2)、配置从node1无需输入密码ssh登陆node一、node2和node3
全部节点的用户名相同,本人统一为:andychen
在node1上配置无密码公钥认证过程以下:
java
[andychen@node1 ~]$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/andychen/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/andychen/.ssh/id_rsa. Your public key has been saved in /home/andychen/.ssh/id_rsa.pub. The key fingerprint is: 2e:57:e2:bf:fd:d4:45:5c:a7:51:3d:f1:51:3c:69:68 root@krusty04
这个命令将为node1 上的当前用户 andychen 生成其密钥对,密钥对的保存路径使用缺省的 /home/andychen/.ssh/id_rsa, 要求输入 passphrase 的时候,直接回车。这样生成的证书以及公钥将存储在 /home/andychen/.ssh 目录,造成两个文件 id_rsa,id_rsa.pub。而后将 id_rsa.pub 文件的内容复制到每一台机器(包括本机 node1)的 /home/andychen/.ssh/authorized_keys 文件的尾部,若是机器上不存在 /home/andychen/.ssh/authorized_keys 文件,能够自行建立一个。请注意 id_rsa.pub 文件的内容是长长的一行,复制时需注意,不要遗漏字符或混入了多余换行符。 接下来能够作一下 SSH 链接测试,从 node1分别向 node1, node2, node3发起 SSH 链接请求,确保不须要输入密码就能 SSH 链接成功。 注意第一次 SSH 链接时会出现以下提示信息: node
The authenticity of host [node1] can't be established. The key fingerprint is: 74:32:91:f2:9c:dc:2e:80:48:73:d4:53:ab:e4:d3:1a Are you sure you want to continue connecting (yes/no)? ssh
请输入 yes, 这样 OpenSSH 会把链接过来的这台主机的信息自动加到 /home/andychen/.ssh/know_hosts 文件中去,第二次再链接时,就不会有这样的提示信息了。 分布式
步骤三:安装hadoop
原文: http://cyibeike.blog.163.com/blog/static/211125782011619105656911/ ide