Hadoop集群单机模式、伪分布模式、完全分布式详解:http://www.aboutyun.com/thread-6839-1-1.html
问题导读:
1.mapred-site.xml.template与mapred-site.xml的关系是什么?2.与hadoop2.4.0 安装配置伪分布的区别是什么?
3.对比hadoop2完全分布式最新高可靠安装文档配置文件是否发生变化?
包下载: hadoop2.4最新版本各种包下载
更详细可参考: Hadoop 2.4 完全分布式环境安装与配置及配置信息介绍
这次搭建hadoop2.4分布式集群,由于是在自己的笔记本上搭建集群,所以必须在虚拟机下安装多linux系统来模拟真实的分布式集群环境,我们用的虚拟机是VmWare10,选择的是linux发行版CentOs6.0,虚拟了三个CentOs系统(安装CentOs的步骤省略,这里不是我们这次学习的重点),一台master 两台slave,用户名全部为hadoop,具体如下(除了第一步使用root用户操作,其他均使用hadoop用户):
master 192.168.1.106
slave1 192.168.1.107
slave2 192.168.1.108
下面说明hadoop的详细安装过程:
1、给hadoop用户增加sudo权限以及修改host
1)切换到root用户,su 输入密码
2)给sudoers增加写权限:chmod u+w /etc/sudoers
3)编译sudoers文件:vi /etc/sudoers
在root ALL=(ALL)ALL下方增加hadoop ALL=(ALL)NOPASSWD:ALL
4)去掉sudoers文件的写权限:chmod u-w /etc/sudoers
5)修改host,vi /etc/hosts
192.168.1.106节点修改为master
192.168.1.107节点修改为slave1
192.168.1.107节点修改为slave2
2、首先安装jdk
我选择的是jdk-6u31-linux-amd64.rpm,使用命令sudo yum install jdk-6u31-linux-amd64.rpm --nogpgcheck;安装。安装后java路径为:/usr/java/jdk1.6.0_31
3、解压hadoop-2.4.0.tar.gz文件:
tar -xzvf hadoop-2.4.0.tar.gz
4、设置java环境变量以及hadoop环境变量
sudo vim /ect/profile,
在最后增加
export JAVA_HOME=/usr/java/jdk1.6.0_31
export HADOOP_PREFIX=/home/hadoop/hadoop-2.4.0
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
然后使用sudo source /ect/profile使之生效
5、做SSH免密码登录
分别在三个系统中(hadoop用户)的终端执行:ssh-keygen -t rsa,一路回车
会在当前用户下.ssh目录中生成两个文件一个是私钥文件,一个是公钥文件,我们复制公钥文件到当前目录并重命名为authorized_keys,分别把其他两个系统的公钥文件内容复制到authorized_keys文件中,其他两个系统也做此操作,最后每个系统的authorized_keys文件包含本系统的公钥内容以及其他两个系统公钥的内容,使用SSH命令进行测试,如下图:
6、进入/home/hadoop/hadoop-2.4.0/etc/hadoop目录中,编辑hadoop-env.sh文件,使用vimhadoop-env.sh,修改内容如下:
export JAVA_HOME=/usr/java/jdk1.6.0_31
7、编辑yarn-env.sh vimyarn-env.sh,修改内容如下:
JAVA_HOME=/usr/java/jdk1.6.0_31
8、编辑core-site.xml,修改内容如下:
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop-2.4.0/tmp</value>
9、编辑hdfs-site.xml,编辑内容如下:
<name>dfs.replication</name>
<value>2</value>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hadoop/hadoop-2.4.0/dfs/name</value>
<name>dfs.datanode.data.dir</name>
<value>file:/home/hadoop/hadoop-2.4.0/dfs/data</value>
10、编辑mapred-site.xml(需要复制mapred-site.xml.template,并命名为mapred-site.xml),编辑内容如下:
<name>mapreduce.framework.name</name>
<value>yarn</value>
<name>mapreduce.jobhistory.address</name>
<value>Master:10020</value>
<name>mapreduce.jobhistory.webapp.address</name>
<value>Master:19888</value>
11、编辑yarn-site.xml文件,修改内容如下:
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
12、编辑slaves文件,修改内容如下:
slave1
slave2
13、复制hadoop2.4到另外两个节点,使用的命令是:
scp -r ./hadoop-2.4.0 hadoop@192.168.1.107 :/home/hadoop
scp -r ./hadoop-2.4.0 hadoop@192.168.1.108 14、在master节点格式化hdfs文件
[ hadoop@master hadoop-2.4.0]$ ./bin/hdfs namenode -format
成功格式化后,如下图:
15、启动hadoop
[ hadoop@master hadoop-2.4.0]$ ./sbin/start-all.sh
使用jps查看运行的进程,表示master和slave节点成功运行的进程如下:
master:
slave1:
slave2:
至此hadoop2.4集群搭建完成。