OS: Ubuntu 12.10 64bit
JDK: jdk1.7.0_9
Hadoop: Hadoop-1.0.4
节点信息:
节点类型 节点名称 节点IP
NameNode/SecondaryNameNode/TaskTracker huchm01-vm 192.168.137.134
DataNode/JobTracker huchm02-vm 192.168.137.133
一、环境准备
1、 修改主机名
# vi /etc/hostname
配置完后重启下计算机
# reboot
2、 修改hosts文件
vi /etc/hosts
添加上所有节点的IP和主机名的对应记录
3、 在所有节点服务器上创建同样的用户名hadoop和用户组hadoop,并对hadoop用户修改密码
二、配置集群
1、 安装JDK
1) 下载安装文件
前往Oracle官方网站,下载Linux版本的JDK,需要注意和操作系统匹配;
将安装文件复制到安装环境的/usr/local目录下
2) 安装jdk
3) 修改环境变量
# vi /etc/profile
添加以下内容:
export JAVA_HOME=/opt/jdk1.7.0_9
export PATH=$JAVA_HOME/bin:$PATH
重载环境变量
# source /etc/profile
4) 验证安装成功
# which java
# java –version
# javac –version
查看输出信息是否与实际相符
2、 建立SSH互信
SSH互信是指在不提示输入用户名和密码的情况下通过SSH访问其他主机;在Hadoop中,master会经常访问其他主机运行程序,所以需要配置SSH互信。以下操作均在master上完成。
1) 切换到hadoop用户
2) 生成密钥
# ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
3) 配置ssh无密码登录
# cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
4) 验证配置
# ssh huchm01-vm
登录成功则配置成功。需要注意的是,由于是登录本机,无法从提示符的主机名中判断是否切换主机,需要通过当前路径等方式判断。
5) 复制文件到其他主机
# scp authorized_keys huchm02-vm:~/.ssh/
验证配置
# ssh huchm02-vm
登录成功则配置成功。
3、 配置Hadoop
1) 下载hadoop,并复制到安装环境的/usr/local目录下
2) 解压安装文件
# tar xvf hadoop-1.0.4.tar.gz
3) 将路径切换到conf目录下
# cd /usr/local/hadoop-1.0.4/conf
4) 修改hadoop-env.sh
# vi hadoop-env.sh
将注释的JAVA_HOME配置改为
export JAVA_HOME=/usr/local/jdk1.7.0_9
5) 修改core-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="https://www.linuxidc.com/configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://huchm01-vm:9000</value>
</property>
<property>
<name>Hadoop.tmp.dir</name>
<value>/tmp/hadoop-root</value>
</property>
</configuration>
6) 修改hdfs-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="https://www.linuxidc.com/configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
7) 修改mapred-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="https://www.linuxidc.com/configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>:9001</value>
</property>
</configuration>
8) 修改masters
# vi maters
添加以下内容:
huchm01-vm
9) 修改slaves
# vi slaves
添加以下内容:
huchm01-vm
huchm02-vm
10) 同步配置文件到huchm02-vm
scp core-site.xml hdfs-site.xml mapred-site.xml masters slaves huchm02-vm:/usr/local/hadoop-1.0.4/
4、 修改环境变量
# vi /etc/profile
添加以下内容:
export HADOOP_HOME=/usr/local/hadoop-1.0.4
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$PATH
重载环境变量
# source /etc/profile
三、启动集群
1、 格式化namenode
# hadoop namenode -format
2、 启动Hadoop
# start-all.sh
3、 查看服务进程
# jps
其中,master节点中有
25429 SecondaryNameNode
25500 JobTracker
25201 NameNode
25328 DataNode
18474 Jps
25601 TaskTracker
slave节点有
4469 TaskTracker
4388 DataNode
29622 Jps
4、 查看HDFS文件系统
# hadoop fs –ls /
# hadoop fs -put conf input
# hadoop fs –ls /
5、 查看MapReduce服务
# hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+'
#hadoop fs -get output output
#cat output/*