机器准备:一个CentOS 6.4系统作为master节点,一个CentOS 6.4系统作为node1节点,一个CentOS 6.4系统作为node2节点。master节ResourceManager,node1节点作为namenode和datanode,node2作为SecondaryNameNode和datanode。在虚拟机安装一个CentOS 6.4系统后先试下能不能联网,可以ping 一下百度的网址,ping得通说明就可以联网,安装系统具体的操作网上大把资料,顺利安装一个CentOS 6.4系统后就直接复制系统的整个文件,复制两份然后分别改文件名
改用虚拟机打开的那个图标的名字方便区分
1.安装JDK的部分可以参考一下地址中的安装JAVA环境部分(该部分讲的比较清楚)
http://blog.csdn.net/u012878005/article/details/78930792
2.安装好JDK后,就开始设置master节点与node1和node2节点SSH免密登录,可参考
https://www.cnblogs.com/keitsi/p/5653520.html
3.如果你有在网上看到一些安装教程中的版本跟你要安装的版本不一样,你也可以看下面这个链接,这个链接讲述了Hadoop 1.0.x版本和2.0.x版本安装的不同,还描述了一些后面要修改的配置文的一些参数,在后面修改配置文件也看看,我在安装的时候就是看来很多1.0.x版本的安装,因为1.0.x和2.0.x的变化很大,所以安装的时候有点混乱,所以建议看一看
http://blog.csdn.net/skywalker_only/article/details/38849989
4.设置好SSH免密登录后,就可以开始安装hadoop
(1)在/usr目录下新建Hadoop目录
mkdir hadoop
(2)下载或者上传Hadoop的安装包到/usr/hadoop,然后解压
tar -zxvf hadoop-2.6.0.tar
把解压出来的东西移动到/usr/hadoop目录下
mv /usr/hadoop/hadoop-2.6.0/* /usr/hadoop
删除/usr/hadoop/hadoop-2.6.0空目录
rm -rf /usr/hadoop/hadoop-2.6.0)
(3)设置环境变量
在/etc/profile里面添加以下代码,添加hadoop和Java的相关变量是方便后面的操作,把相关路径添加进PATH变量就可以在系统的任意地方执行该路径下的命令,而不用每次都用绝对路径或者每次都要跑到该路径下执行
export HADOOP_INSTALL=/usr/hadoop
export JAVA_HOME=/usr/java/jdk-8u151-linux-x64/jdk1.8.0_151
export JRE_HOME=/usr/java/jdk-8u151-linux-x64/jdk1.8.0_151/jre
export CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_INSTALL/bin
修改后用source etc/profile命令使刚才添加的命令生效
修改/usr/hadoop/etc/hadoop目录下的hadoop-env.sh和yarn-env.sh,把JAVA_HOME变量添加进去,不然后面执行java的相关命令会报错
export JAVA_HOME=/usr/java/jdk-8u151-linux-x64/jdk1.8.0_151
(4)修改配置文件core-site.xml,hdfs-site.xml,mapred-site.xml,yarn-site.xml
PS:mapred-site.xml这个文件在你解压包后的名字是mapred-site.xml.template,所以需要改成mapred-site.xml
修改core-site.xml文件
修改hdfs-site.xml
修改mapred-site.xml
修改yarn-site.xml
以上修改文件的相关参数可以参考http://blog.csdn.net/skywalker_only/article/details/38849989
(5)修改slaves和masters(因为2.0.x版本没有masters这个文件,所以需要我们手动创建一个touch masters),上面就说过了,要将master节ResourceManager,node1节点作为namenode和datanode,node2作为SecondaryNameNode和datanode,所以要往slaves添加node1和node2,slaves里面默认有个localhost,删除掉localhost,往masters添加node2
slaves
masters
为什么要这样子添加呢,以下截图来自Hadoop权威指南3
所以后面在启动namenode的时候要去node1节点运行脚本start-dfs.sh
(6)格式化namenode,因为我是将node1节点作为namenode,所以hadoop namenode -format这句格式化namenode命令要去node1节点上执行
执行命令后出现一大页的消息,有看successfull format字眼就说明格式化成功了。
(7)启动hadoop
在node1节点的/usr/hadoop/sbin目录下运行start-dfs.sh,启动amenode、SecondaryNameNode和datanode
在master节点的/usr/hadoop/sbin目录先下运行start-yarn.sh,启动ResourceManager
(8)查看是否所有节点都启动成功
master节点
node1节点
node2
一个都没少就说明安装成功了!