完全分布式安装:
1.集群规划
a.服务分配
组件 Linux.one Linux.two Linux.three
HDFS NameNode Sencondarynamenode
DataNode DataNode DataNode
--------------------------------------------------------------------------
YARN ResourceManager
NodeManager NodeManager NodeManager
--------------------------------------------------------------------------
MapReduce JobHistoryServer
2.基本环境准备
A.三台装有CenterOs的PC
B.将修改成静态IP (如果是克隆的虚拟机需要修改Mac地址 否则三台虚拟机无法ping通)
#vi /etc/sysconfig/network-script/ifcfg-eth0
C.修改Hostname
#vi /etc/sysconfig/network
D.设置主机映射
# vi /etc/hosts
E.关闭防火墙
# service iptables stop
# chkconfig iptables off
F.关闭安全子系统
# vi /etc/sysconfig/selinux
G.卸载Linux自带的Jdk (minimal安装是没有安装的 所以不用卸载)
查看系统自带的jdk rpm -qa | grep java
# rpm -e --nodeps tzdata-java-2012j-1.el6.noarch
# rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.50.1.11.5.el6_3.x86_64
# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.9-2.3.4.1.el6_3.x86_64
H.安装Jdk
a.编辑 /etc/profile 文件 添加
export JAVA_HOME=/opt/modules/jdk1.7.0_67
export $PATH:$JAVA_HOME/bin
b.重新加载配置
source /etc/profile
3.配置NTP服务
*将Linux.one 作为整个集群的时间同步服务器
A.检查NTP服务是否安装 (minimal安装是没有安装的)
rpm -qa | grep ntp
B.安装ntp服务
yum -y install ntp
C.修改NTP的配置文件 (修改Linux.one)
# vi /etc/ntp.conf
a.去掉下面这行下面的#,并把网段修改成自己的网段
restrict 192.168.7.0 mask 255.255.255.0 nomodify notrap
b.注释掉一下几行 (修改Linux.one)
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
c.把下面前面两行的#号去掉,如果没有,需要手动去添加 (修改Linux.one)
server 127.127.1.0 #local clock
fudge 127.127.1.0 stratum 10
d.启动ntp服务(默认是开启)Linux01 (修改Linux.one)
# service ntpd start
# chkconfig ntpd on
e.同步服务器的时间(Linux01) (修改Linux.one)
# ntpdate cn.pool.ntp.org -->操作这一步时关闭ntp服务
16 Feb 17:14:40 ntpdate[26564]: step time server 188.39.37.91 offset -12.669996 sec
f.如果另外两台的ntp的进程开启,那么需要关闭
# service ntpd stop
# chkconfig ntpd off
g.第2、3台向第一台同步时间
# ntpdate hadoop.senior01
16 Feb 17:43:27 ntpdate[2554]: adjust time server 192.168.7.9 offset -0.001412 sec
h.制定周期性时间同步计划任务(第2、3台-Linux02 、Linux03)
## 每10分钟同步一次服务器时间
*/10 * * * * /usr/sbin/ntpdate hadoop.senior01
d.若以上失败则三台全部执行以下命令(时间以当前时间为准)
# date -s "19:05:56 2017/2/16"
4.配置SSH免秘钥登陆
A.检查Linux上是否安装openssh (minimal安装是没有自带的openssh服务的)
rpm -qa | grep openssh
B.安装openssh
#yum -y install openssh-clients
C.生成秘钥 (注意生成秘钥的用户)
ssh-keygen
D.将秘钥发送给其他服务器 (每台服务器都要执行此操作已确保三台服务器能够随意切换)
ssh-copy-id hadoop.two
E.测试免秘钥登陆是否成功 (互相登陆是否成功)
ssh hadoop.one
F.分发完成会在用户主目录下的.ssh目录生成以下文件:
authorized_keys id_rsa id_rsa.pub known_hosts
如果配置错误可以先删除.ssh目录,重新做一遍
5.安装Hadoop
A.从hadoop.apache.org 官网下载 hadoop 使用FileZilla上传到服务器进行解压
$tar -zxf hadoop.tar.gz
B.配置hadoop的java环境支持, ${HADOOP_HOME}/etc/hadoop目录下
hadoop-env.sh
mapred-env.sh
yarn-env.sh
在这3个文件中都配置
export JAVA_HOME=/opt/modules/jdk1.7.0_67
C. 修改配置文件
====core-site.xml====
=========hdfs-site.xml=====
============yarn-site.xml=======
=========================mapred-site.xml============
$ cp mapred-site.xml.template mapred-site.xml
D.将配置好的文件夹发送给其他服务器
scp /opt/modules/app/hadoop-2.5.0 hadoop.two:/opt/modules/app/
E.格式化namenode
/opt/modules/app/hadoop/bin/hdfs namenode -format
F.启动服务
在配置了namenode的服务器上启动namenode服务
/opt/modules/app/hadoop-2.5.0/sbin/start-dfs.sh
在配置了ResourceManager的服务器上启动ResourceManager
/opt/modules/app/hadoop-2.5.0/sbin/start-yarn.sh
来源: http://www.bubuko.com/infodetail-1995227.html