环境:centos 5.5, Hadoop 2.2
第一步: 安装JDK7
1.1 下载jdk7 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html, 我用的jdk1.7.0_51
1.2 下载完成后解压到某个目录,这里举例解压在/home/software/下。
1.3 正常情况下,centos已经带了某个版本的jdk,但是可能不是jdk7. 这样的话,就需要用jdk7替换当前版本的. 最简单的方法,删除/usr/bin/java,
然后创建一个软连接到/home/software/jdk1.7.0_51/bin/java, 命令如下
rm -f /usr/bin/java
ln /usr/bin/java /home/software/jdk1.7.0_51/bin/java
1.4 检查java的版本是否是最新版本 java -version
1.5 把jdk和jre 放到path中去。命令如下
在/etc/profile的最前面加上如下语句(需要sudo权限)
export JAVA_HOME=/home/software/jdk1.7.0_51
export JRE_HOME=/home/software/jdk1.7.0_51/jre
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
修改完成之后,保存。
执行如下语句 source /etc/profile (目的是刷新环境变量)
1.6 检查java 版本是否是你安装的版本
第二步:配置hadoop用户
2.1 添加hadoop用户,命令如下
useradd hadoop
2.2 给新加的hadoop用户设置密码
passwd hadoop
2.3 让hadoop具有sudo权限(需要sudo权限)
编辑/etc/sudoers 找到##Allow root to run any commands anywhere,在这句话下面添加
hadoop ALL=(ALL) ALL
保存退出
第三步:配置ssh免密码登陆(注意:以下步骤都是用hadoop用户操作)
3.1 生成秘钥,并把秘钥添加到authorized_keys 中
# su - hadoop $ ssh-keygen -t rsa $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys $ chmod 0600 ~/.ssh/authorized_keys $ exit
3.2 修改/etc/ssh/sshd_config文件,允许无密码登陆
修改如下
3.3 验证是否可以登陆
ssh localhost
3.4 如果你需要配置slave机器,一定要把你的id_rsa.pub 中的内容添加到其他slave机器中的 ~/.ssh/authorized_keys 中。并确保修改了3.2中配置文件
第四步:配置hadoop(注意版本是2.2.0)
4.1 下载hadoop http://www.webhostingjams.com/mirror/apache/hadoop/common/hadoop-2.2.0/
4.2 解压到某个目录,本文在这里解压到/opt/目录下,命令如下
tar -zxvf hadoop-2.2.0.tar.gz
4.3 修改环境变量,把如下命令拷贝到/etc/profile的最前面
export HADOOP_HOME=/opt/hadoop
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
4.4 把如下命令添加到/opt/hadoop/libexec/hadoop-config.sh中
export JAVA_HOME=/home/software/jdk1.7.0_51
4.5 把如下命令添加到/opt/hadoop/etc/hadoop/yarn-env.sh
中
export
JAVA_HOME=/home/software/jdk1.7.0_51
export HADOOP_HOME=/opt/hadoop
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
4.6
创建tmpfile
mkdir
/opt/hadoop/tmp
4.7
用如下内容替换/opt/hadoop/etc/hadoop/core-site.xml中的内容
<?xml
version="1.0" encoding="UTF-8"?>
<?xml-stylesheet
type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/haddop/tmp</value>
</property>
</configuration>
4.8
用如下内容替换/opt/hadoop/etc/hadoop/hdfs-site.xml中的内容
<?xml
version="1.0" encoding="UTF-8"?>
<?xml-stylesheet
type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
4.9
用如下内容替换/opt/hadoop/etc/hadoop/mapred-site.xml中的内容
<?xml
version="1.0"?>
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
4.10 用如下内容替换/opt/hadoop/etc/hadoop/yarn-site.xml中的内容
<?xml
version="1.0"?>
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8025</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8040</value>
</property>
</configuration>
第五部:配置集群,配置slave
5.1 如果是单机运行的话,上面就可以用了,要配置集群请从第5.2步开始
5.2 配置slave,配置步骤为第一步到第四步
5.3 修改/etc/hosts,假设你有1台master和2台slave,机器名分别为master,slave1和slave2
修改机器中所有机器的/etc/hosts,添加如下内容
master 192.168.1.100
slave1 192.168.1.101
slave2 192.168.1.102
上面的ip地址请按实际情况添加
5.4 修改master机器上的/opt/hadoop/etc/hadoop/slaves,添加如下内容
slave1
slave2
第六步 启动集群
6.1 格式化 namenode(master)
bin/hadoop namenode -format
6.2 启动所有服务(包括namenode,datanode,nodemanager)
sbin/start_all.sh
6.3
启动resourcemanager
sbin/yarn-daemon.sh
start resourcemanager
6.4 启动 histtoryserver
sbin/mr-jobhistory-daemon.sh
start historyserver
6.5 查看服务是否已经启动
jps
references:
http://tecadmin.net/steps-to-install-java-on-centos-5-6-or-rhel-5-6/
http://tecadmin.net/steps-to-install-hadoop-on-centosrhel-6/
http://alanxelsys.com/2014/02/01/hadoop-2-2-single-node-installation-on-centos-6-5/
Hadoop 2.2 配置安装