红帽子RatHat6下hadoop集群模式安装(3个节点,master,slave1,slave2)
一、学习目标:
使用红帽子RatHat6在虚拟机上搭建hadoop集群,包含3个节点,体验集群分布式。
二、软件需求:
三台虚拟机(这里使用VMware Workstation)、RatHat6版本的安装包
三、实验前提:
每台PC机已装有RatHat6系统,一台机命名为master作为namenode,另两台为slave1和slave2,作为datanode。具体配置如下。
用户名 |
Host-IP |
网关 |
HostName(互ping时的机器名) |
内存 |
硬盘 |
HDFS |
YARN |
对应大数据组件 |
备注 |
Master |
172.16.24.38 |
172.16.24.254 |
master |
2 |
40GB |
NameNode |
ResourcesManager |
|
集群主节点 |
Slave01 |
172.16.24.79 |
172.16.24.254 |
slave1 |
1 |
20GB |
DataNode |
NodeManager |
|
计算调度 |
Slave02 |
172.16.24.48 |
172.16.24.254 |
slave2 |
1 |
20GB |
DataNode |
NodeManager |
|
数据计算节点 |
四、Hadoop集群模式安装过程:
1 .用root用户设置主机名和IP地址分配(/etc/hosts)
先在master机器上操作后复制到另两台机上
笔记:修改系统文件时需要以root用户登陆
2.继续使用root用户创建一个hadoop账户并为其设置密码,专门负责操作与hadoop相关的业务。(图片以master机为例,另外两台机上做同样操作)
[命令] useradd hadoop
笔记:用root创建用户会自动创建宿主目录
该步骤情况:三台机器都用root创建了hadoop用户(并且已默认创建了hadoop账户的宿主目录)
[命令] passwd hadoop
笔记:刚创建的用户需要用root用户为其设置密码
该步骤情况:现在三台机器都用root设置了hadoop的密码
3.设置三台机器之间的免密码登陆:(使用hadoop用户)
3.1 在master机器上使用hadoop用户生成master机器节点的hadoop账户密钥对。
[命令]ssh-keygen –t rsa
可在~/.ssh下查看生成的密钥对id_rsa和di_rsa.pub
3.2继续在master机器上为slave1和slave2生成各自的密钥对。
[命令]
sshslave1 ssh-keygen –t rsa
sshslave2 ssh-keygen –t rsa
3.3 将所有的公钥文件汇总到master机器上的一个总的授权key文件authorized_keys中
[命令]
scphadoop@slave1:~/.ssh/id_rsa.pub ~/.ssh/slave1.pub
scphadoop@slave2:~/.ssh/id_rsa.pub ~/.ssh/slave2.pub
cat~/.ssh/*.pub > /.ssh/authorized_keys
(查看文件命令)cat ~/.ssh/authorized_keys
3.4出于安全性考虑,将这个授权key文件authorized_keys赋予600权限
[命令]chmod 600 .ssh/authorized_keys
3.5将这个将这个包含了所有互信机器认证authorized_keys认证文件复制到所有节点主机的~/.ssh/目录中,并进行验证互信。
[命令]
scp~/.ssh/authorized_keys hadoop@slave1:~/.ssh
scp~/.ssh/authorized_keys hadoop@slave2:~/.ssh
(测试免密码链接)
ssh slave1
ssh slave2
该步骤情况:现在三台机器已经可以免密码互相登陆
4.Java 的安装与配置
(这里使用版本为jdk1.8)
4.1创建统一管理java和hadoop 的父级目录,位于hadoop用户主目录下/home/hadoop
,如网上教程命名为chadoop
[命令]mkdir ~/chadoop
4.2 解压jdk安装包(之前已使用VMware Tools拉近master机器内)
[命令]
tar zxf jdk安装包名
(在chadoop中创建文件夹java放置jdk解压后的文件)
mkdir ~/chadoop/java
mv jdk解压后的文件名 ~/chadoop/java
4.3修改环境变量(~/.bash_profile)加入JAVA_HOME,CLASSPATH和PATH
使用vi编辑器进行修改,配置后使用 . ~/.bash_profile 立即生效。并使用java –version命令进行检测java是否安装成功.
[命令] vi ~/.bash_profile
[增加配置信息](由于参考教程同时也配置了hadoop_home的位置,这里也先配置也可安装hadoop后再做对该步骤的hadoop操作)
# JAVA&HADOOP-CONFIGURATION#
exportJAVA_HOME=~/chadoop/java/jdk1.8.0_45
exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
exportHADOOP_HOME=~/chadoop/hadoop/hadoop-2.7.3
exportHADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
exportPATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
[命令]
. ~/.bash_profile
java –version
该步骤情况:现在master机器上已安装好jdk1.8版本。
5.Hadoop的安装与配置
(这里使用版本为hadoop2.7.3)
5.1解压hadoop安装包(同安装java操作一样)
5.2在chadoop文件夹内新建一个hadoop目录用于放置hadoop安装包解压后文件
[命令]
tar zxf hadoop安装包
mkdir ~/chadoop/hadoop
mv hadoop解压后文件 ~/chadoop/Hadoop
5.3创建hadoop相关的tmp目录和dfs目录(以及其下的name和data目录)
[命令]
mkdir~/chadoop/tmp
mkdir-p~/chadoop/dfs/name ~/chadoop/dfs/data
5.4为hadoop配置环境变量(~/.bash_profile)
这一步已在java配置环境变量时操作,具体见4.3.使用hadoop version进行验证hadoop是否安装成功
[命令] hadoop version
该步骤情况:master机器上已成功安装了hadoop2.7.3版本
6.修改hadoop内置文件,配置集群模式
涉及修改文件:core-site.xml,hdfs-site.xml, mapred-site.xml,yarn-site.xml,hadoop-env.sh, mapred-env.sh,yarn-env.sh 和 slaves(均位于$HADOOP_HOME下的/etc/hadoop文件夹内)
各文件配置如下:
(1)[core-site.xml配置]
(2)[hdfs-site.xml配置]
(3)[mapred-site.xml配置]
注意:mapred-site.xml需要先复制模板生成配置文件后修改内容
[命令]cp mapred-site.xml.templatemapred-site.xml
(4)[yarn-site.xml配置]
(5)[hadoop-env.sh配置]
[操作]加入JAVA_HOME位置
(6)[mapred-env.sh配置]
[操作]指明JAVA_HOME位置
(7)[yarn-env.sh配置]
[操作]加入JAVA_HOME位置
(8)[slaves配置]
[操作]加入两个节点的名称
7.将master主节点以上的配置复制到slave1、slave2节点
7.1复制环境变量文件并使用各节点对象进行环境变量生效
[命令]
scp~/.bash_profile hadoop@slave1:~/
scp~/.bash_profile hadoop@slave2:~/
ssh hadoop@slave1. ~/.bash_profile
ssh hadoop@slave2. ~/.bash_profile
7.2复制chadoop目录到slave1和slave2机器上
[命令]
scp -r chadoop/ hadoop@slave1:~
scp -r chadoop/ hadoop@slave2:~
8.在master主节点上格式化hdfs文件系统
[命令]hdfs namenode -format
9.关闭防火墙(现在主节点上使用root用户操作,关闭后再使用ssh命令进入另外2节点中关闭其余节点防火墙)
[命令]
service iptablesstop
chkconfig iptablesoff
ssh slave1 进入后操作与master机器一样
ssh slave2 进入后操作与master机器一样
10.在master机器上启动hadoop,并用jps检验hadoop进程(此时master主节点有4个ResourceManager,Jps, NameNode, SecondaryNamenode,slave1节点与slave2节点有3个NodeManager,DataNode, Jps)
[命令]
start-all.sh
jps
11.hadoop的停止
[命令]stop-all.sh
该步骤情况:到这里hadoop的基本安装与配置结束。hadoop集群已基本搭建完成。
12.增加内容
再次登陆时发现环境变量没有生效,于是将~/.bash_profile中的增加内容同时对~/.bashrc和/etc/profile都做了更改,复制到另外两台机器上。这里请注意修正。