Hadoop1.X集群完全分布式模式环境部署

1 实验环境

64位centos6.5 ,安装参考链接。

jdk-8u101-linux-x64.tar,安装参考链接。

hadoop-1.2.1.tar.gz

集群架构:包括4个节点:1个Master,3个Salve

节点IP地址分布如下:

主机名 IP 系统版本 Hadoop node hadoop进程名
master 192.168.8.200 CentOS 6.5 master namenode,jobtracker
slave1 192.168.8.201 CentOS 6.5 slave datanode,tasktracker
slave2 192.168.8.202 CentOS 6.5 slave datanode,tasktracker
slave3 192.168.8.203 CentOS 6.5 slave datanode,tasktracker

四个节点上均是CentOS 6.5系统,并且有一个相同的用户hadoop。master机器主要配置NameNode和JobTracker的角色,负责总管分布式数据和分解任务的执行;3个salve机器配置DataNode和TaskTracker的角色,负责分布式数据存储以及任务的执行。

2 配置网络

1.修改主机名

master:

vi /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=master

slave1

vi /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=slave1

slave2

vi /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=slave2

slave3

vi /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=slave3

2.修改ip地址

vi /etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTO=static #dhcp改为static 
ONBOOT=yes #开机启用本配置
IPADDR=192.168.8.201 #静态IP
GATEWAY=192.168.8.1 #默认网关
NETMASK=255.255.255.0 #子网掩码

service network restart

vi /etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTO=static #dhcp改为static 
ONBOOT=yes #开机启用本配置
IPADDR=192.168.8.201 #静态IP
GATEWAY=192.168.8.1 #默认网关
NETMASK=255.255.255.0 #子网掩码

service network restart

vi /etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTO=static #dhcp改为static 
ONBOOT=yes #开机启用本配置
IPADDR=192.168.8.202 #静态IP
GATEWAY=192.168.8.1 #默认网关
NETMASK=255.255.255.0 #子网掩码

service network restart

vi /etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTO=static #dhcp改为static 
ONBOOT=yes #开机启用本配置
IPADDR=192.168.8.203 #静态IP
GATEWAY=192.168.8.1 #默认网关
NETMASK=255.255.255.0 #子网掩码

service network restart

3.修改ip地址和主机名的映射关系

vi /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.8.200 master
192.168.8.201 slave1
192.168.8.202 slave2
192.168.8.203 slave3

3 centos6.5关闭防火墙和SELinux(这里只示范master)

关闭命令:  service iptables stop 
永久关闭防火墙:chkconfig iptables off

两个命令同时运行,运行完成后查看防火墙关闭状态 
service iptables status

使用getenforce命令查看是否关闭

修改vi /etc/selinux/config 文件

将SELINUX=enforcing改为SELINUX=disabled,执行该命令后重启机器生效

查看:

 

4 创建用户(用来操作hadoop)(这里只示范master)

  1. 创建新用户
[root@localhost ~]# adduser pang

为这个用户初始化密码,linux会判断密码复杂度,不过可以强行忽略:

[root@localhost ~]# passwd pang

更改用户 pang的密码

新的 密码:

无效的密码: 密码未通过字典检查 - 过于简单化/系统化

重新输入新的 密码:

passwd:所有的身份验证令牌已经成功更新。
2.授权
[root@localhost ~]# ls -l /etc/sudoers

-r--r----- 1 root root 4251 9月 25 15:08 /etc/sudoers
sudoers只有只读的权限,如果想要修改的话,需要先添加w权限:

[root@localhost ~]# chmod -v u+w /etc/sudoers

mode of "/etc/sudoers" changed from 0440 (r--r-----) to 0640 (rw-r-----)
然后就可以添加内容了,在下面的一行下追加新增的用户:

[root@localhost ~]# vim /etc/sudoers

## Allow root to run any commands anywher

root ALL=(ALL) ALL

pangALL=(ALL) ALL #这个是新增的用户
wq保存退出,这时候要记得将写权限收回:

[root@localhost ~]# chmod -v u-w /etc/sudoers

mode of "/etc/sudoers" changed from 0640 (rw-r-----) to 0440 (r--r-----)


这时候使用新用户登录,使用sudo:

第一次使用会提示你,你已经化身超人,身负责任。而且需要输入密码才可以下一步。如果不想需要输入密码怎么办,将最后一个ALL修改成NOPASSWD: ALL

4 SSH免密登陆

在Hadoop启动以后,Namenode是通过SSH(Secure Shell)来启动和停止各个datanode上的各种守护进程的,这就须要在节点之间执行指令的时候是不须要输入密码的形式,故我们须要配置SSH运用无密码公钥认证的形式。以本文中的四台机器为例,现在Master是主节点,他须要连接Slave1、Slave2和Slave3。须要确定每台机器上都安装了ssh,并且datanode机器上sshd服务已经启动。
切换到hadoop用户( 保证用户hadoop可以无需密码登录,因为我们后面安装的hadoop属主是hadoop用户。)需要使得Master到Slave1,Slave2,Slave3免密登陆,以及Slave1,Slave2,Slave3到Master的免密登陆,以及Master,Slave1,Slave2,Slave3到自身回环口的免密登陆

在每台主机都生成密钥:

注意是在cmj用户之下,而不是root,因为我们最终是要使用cmj用户来使用hadoop,而你在cmj用户下配置免密登陆后,切换至root用户或者其他用户的使用ssh登陆时,仍然需要密码。

#su pang
#ssh-keygen -t rsa
#cat ~/.ssh/id_rsa.pub

这个命令生成一个密钥对:id_rsa(私钥文件)和id_rsa.pub(公钥文件)。默认被保存在~/.ssh/目录下。

master服务器生成authorized_keys文件,并把公钥写入:cat id_rsa.pub >> authorized_keys。

然后把master服务器authorized_keys文件复制到slave1服务器中:

scp authorized_keys [email protected]:/home/pang/.ssh

猜你喜欢

转载自blog.csdn.net/qq_26857649/article/details/82119886