完全分布式安装
1、
角色分配
组件 linux01 linux02 linux03
HDFS namenode Secondarynamenode
HDFS datanode datanode datanode
Yarn resourcemanger
Yarn nodemanager nodemanager nodemanager
history historyserver
2、环境准备
2.1系统和软件【3台】
CentOS 6.5 hadoop 2.5.0 jdk1.70—67
2.2 配置IP和DNS(root)
配置静态IP
DNS
//检查主机映射
$ cat /etc/hosts
//检查主机名
$cat /etc/sysconfig/network
//检查IP和DNS
$ cat /etc/sysconfig/network-scripts/ifcfg-eth0
2.3关闭防火墙 (3台) (root)
# service iptables stop
# chkconfig iptables off
关闭Linux安全子系统
# vi /etc/sysconfig/selinux
2.4创建相同普通用户名和密码 【3台】
# useradd hadoop
# echo 123456 | passwd --stdin hadoop
2.5配置主机映射 【三台都需要需要添加】
# vi /etc/hosts
192.168.7.9 hadoop.senior01
192.168.7.10 hadoop.senior02
192.168.7.11 hadoop.senior03
2.6卸载自带的jdk
# rpm -qa | grep jdk
# 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
三、配置NTP服务
*.把Linux01作为整个集群的时间同步服务器
*.集群中所有其他服务器都来这台服务器Linux01同步时间
1.检查每台服务器所在的时区
$ date -R --检查当前系统时区
Thu, 16 Feb 2017 17:06:18 +0800
# rm -rf /etc/localtime ---如果时区不是+0800
# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
2.安装ntp服务
# rpm -qa | grep ntp --查看ntp软件包是否已安装
#yum -y install ntp --如果没有那就需要安装ntp
3.修改ntp的配置文件(Linux01)
# vi /etc/ntp.conf
*去掉下面这行下面的#,并把网段修改成自己的网段
restrict 192.168.7.0 mask 255.255.255.0 nomodify notrap
*注释掉一下几行
#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
把下面前面两行的#号去掉,如果没有,需要手动去添加
server 127.127.1.0 #local clock
fudge 127.127.1.0 stratum 10
4.启动ntp服务(默认是开启)Linux01
# service ntpd start
# chkconfig ntpd on
5.同步服务器的时间(Linux01)
# ntpdate cn.pool.ntp.org -->操作这一步时关闭ntp服务
16 Feb 17:14:40 ntpdate[26564]: step time server 188.39.37.91 offset -12.669996 sec
6.如果另外两台的ntp的进程开启,那么需要关闭
# service ntpd stop
# chkconfig ntpd off
7.第2、3台向第一台同步时间
# ntpdate hadoop.senior01
16 Feb 17:43:27 ntpdate[2554]: adjust time server 192.168.7.9 offset -0.001412 sec
8.制定周期性时间同步计划任务(第2、3台-Linux02 、Linux03)
## 每10分钟同步一次服务器时间
*/10 * * * * /usr/sbin/ntpdate hadoop.senior01
# date -s "19:05:56 2017/2/16"
四、配置免密钥登陆
使用ssh 登陆的时候不需要用户名和密码
$ ssh-keygen
* 回车,产生的当前主机的公钥和私钥
//分发密钥(要向3台都发送)
$ ssh-copy-id hadoop.senior01
$ ssh-copy-id hadoop.senior02
$ ssh-copy-id hadoop.senior03
(Linux01~03 )
$ ssh-keygen
$ ssh-copy-id hadoop.senior01
$ ssh-copy-id hadoop.senior02
$ ssh-copy-id hadoop.senior03
分发完成会在用户主目录下的.ssh目录生成以下文件:
authorized_keys id_rsa id_rsa.pub known_hosts
如果配置错误可以先删除.ssh目录,重新做一遍
==========================================
3.====core-site.xml====
<!--指定第一台做namenode-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop.senior01:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/modules/hadoop-2.5.0/data</value>
</property>
=========hdfs-site.xml=====
<!-- 分布式副本数设置为3 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- secondarynamenode主机名 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop.senior02:50090</value>
</property>
<!-- namenode的web访问主机名:端口号 -->
<property>
<name>dfs.namenode.http-address</name>
<value>hadoop.senior01:50070</value>
</property>
<!-- 关闭权限检查用户或用户组 -->
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
============yarn-site.xml=======
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop.senior02</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>86400</value>
</property>
=========================mapred-site.xml============
$ cp mapred-site.xml.template mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop.senior01:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop.senior01:19888</value>
</property>