搭建准备工作:
1. 四台主机 :
192.168.1.34—master-namenode
192.168.1.32—slave-datanode1
192.168.1.33—slave-datanode2
192.168.1.37—slave-datanode3
编辑每台主机的 /etc/hosts 文件内容,在最后面添加:
192.168.1.34 namenode
192.168.1.33 datanode1
192.168.1.32 datanode2
192.168.1.37 datanode3
使得各个主机之间能够相互 ping 的通
关闭每台机器的防火墙以及 SELinux
2.JDK 安装 :
每台主机都需要安装
要求版本在 jdk1.6 以上
# rpm -qa | grep java
输出如下内容 :
java-1.4.2-gcj-compat-1.4.2.0-40jpp.115
java-1.6.0-openjdk-1.6.0.0-1.7.b09.el5
进行卸载 :
#rpm -e --nodeps java-1.4.2-gcj-compat-1.4.2.0-40jpp.115
#rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.7.b09.el5
然后现在就可以使用从官网下载的完整 jdk 进行安装了 ( 最简单的 RPM 安装 )
接下来进行 JDK 环境变量配置:
# vi /etc/profile
在最后面加上以下几行:
export JAVA_HOME=/usr/java/jdk1.6.0_27
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
然后修改默认的 jdk 设置:
# cd /usr/bin/
# ln –s –f /usr/java/jdk1.6.0_18/jre/bin/java
# ln –s –f /usr/java/jdk1.6.0_18/jre/bin/javac
此时在检测下 jdk 版本
# java –version
SSH 环境搭建 :
每台主机都需要安装
yum install –y openssh
添加一个用户 grid
#useradd –m grid
设置密码
#passwd grid
设置密钥
#cd ~
#mkdir .ssh
#ssh-keygen –t rsa
然后一直按回车下去,既可以形成一对公私密钥对。
#cd .ssh
把公钥拷贝到各个主机上,是的各个主机之间能够实现无密码连接
#cp id_rsa.pub authorized_keys
#scp authorized_keys datanode2:/home/grid/.ssh
#scp authorized_keys datanode3:/home/grid/.ssh
进入所有主机的 .ssh 目录,改变 authorized_keys 文件的许可权限:
#chmod 644 authorized_keys
以后各台主机相连接只需要第一次输入密码:
配置 Hadoop
Hadoop-0-20.2 版本(最新版本)下载
http://mirror.bjtu.edu.cn/apache/hadoop/core/hadoop-0.20.2/
解压
#tar –zxvf hadoop-0.20.2.tar.gz
#cp –r hadoop-0.20.2 /home/grid/
a. 配置 core-site.xml hdfs-site.xml mapred-site.xml
b. 配置 conf/masters
删除 localhost ,加入 namenode( 主机名称 )
c. 配置 conf/slaves
删除 localhost ,加入数据节点。每行一个主机名称
datanode1
datanode2
datanode3
d. 配置 conf/hadoop-env.sh
知道到 JAVA_HOME 那一行,改动如下:
export JAVA_HOME=/usr/java/jdk1.6.0_27
e. 将配置好的 hadoop 文件拷贝到其他几台数据节点上面
#scp –r hadoop-0.20.2 datanode1:/home/grid/
#scp –r hadoop-0.20.2 datanode2:/home/grid/
#scp –r hadoop-0.20.2 datanode3:/home/grid/
Hadoop 运行 ( 从 namenode 启动即可 )
文件系统格式化
#bin/hadoop namenode –format
启动所有 namenode datanode JobTracker Secondary TaskTracker
#bin/start-all.sh
使用命令检查各个节点上得启动情况:
#/usr/java/jdk1.6.027/bin/jps
访问 Web 界面:
修改 Windows 的 hosts
使得浏览器可以访问
测试 WordCount (在前台节点测试)
#mkdir in
#cd in
#echo “hello world” >f1.txt
#echo “hello hadoop” >f2.txt
在 hdfs 上创建一个 /tmp/input 文件夹
#bin/hadoop fs -mkdir /tmp/input
把本地的 in 文件内容考到 hdfs 中的 /tmp/input 文件夹中去
#bin/hadoop fs -put /home/grid/hadoop-0.20.2/in /tmp/input
# bin/hadoop jar hadoop-0.20.2-examples.jar wordcount /tmp/input/ output
查看结果(在 hdfs 中的默认目录是 /user/root/ )
#bin/hadoop dfs –cat /user/root/output/*