Hadoop是一个能够对大量数据进行分布式处理的软件框架。 Hadoop 以一种可靠、高效、可伸缩的方式进行数据处理。既然是一个框架,围绕hadoop的周边产品非常的多。对于各中版本与hadoop是否兼容等,增加的安装复杂度。所以我选择CDH。由于cloudera开发了一个manager工具。用于集群自动化安装,部署,监控。我手动安装主要是熟悉环境,解决错误。理解原理。
1.下载VMware12.5.2 build-4638234 当然其他虚拟机软件也可以,比如oracle VM virtualBox
2.下载CentOS-6.7-x86_64-bin-DVD1.iso,CentOS-6.7-x86_64-bin-DVD2.iso
3.安装centos
由于是搭建完全分布式集群,安装了3台机器。分别是master,slave1,slave2.
[img]http://dl2.iteye.com/upload/attachment/0123/8344/d6cf0e8e-0604-31c8-8b39-2a4313863001.png[/img]
提醒的是安装centos时磁盘容量和内存尽量设置大些,根据主机情况。不然后面运行程序和软件可能报磁盘空间不够或内存耗尽。
4.虚拟机共享网络配置设置。
[img]http://dl2.iteye.com/upload/attachment/0123/8337/6577cc53-32a5-3a79-944a-4eef4121be3c.png[/img]
点NAT设置
[img]http://dl2.iteye.com/upload/attachment/0123/8339/6f9547ec-fdbb-37f3-aa88-af7f3f72e913.png[/img]
点DHCP设置
[img]http://dl2.iteye.com/upload/attachment/0123/8341/e95a1298-487c-3284-98aa-1d7fddf514af.png[/img]
5.为统一开发环境修改主机名和添加hadoop用户。
再三台机器上分别执行:
a. useradd -g hadoop hadoop
以后所有与hadoop相关软件周边产品都用hadoop用户身份安装与执行。
b.主机名修改
[hadoop@master sbin]$ vi /etc/sysconfig/network
其他节点分别修改为:
HOSTNAME=slave1
HOSTNAME=slave2
[img]http://dl2.iteye.com/upload/attachment/0123/8346/b8c39208-caa7-34df-bc55-028b0061e002.png[/img]
c.为了让三节点间可以通过主机名访问:
[hadoop@master sbin]$ vi /etc/hosts
三节点都修改为如下。主机名与IP要对应。
[img]http://dl2.iteye.com/upload/attachment/0123/8348/658da595-46f2-3559-b7df-cc335dc2f538.png[/img]
d.由于hadoop集群在启动时需要通过固定IP或主机名启动。所以我们配置为静态IP.
DEVICE="eth0"
BOOTPROTO=static
IPV6INIT="yes"
NM_CONTROLLED="yes"
ONBOOT="yes"
#TYPE="Ethernet"
UUID="9fe038db-11b1-4b33-9b80-323d0394e286"
NETMASK=255.255.255.0
TYPE=Ethernet
DEFROUTE=yes
IPV5_FAILURE_FATAL=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME="System eth0"
IPADDR=192.168.145.128
PREFIX=24
#Vmware为虚拟网络编辑器中的网关地址
GATEWAY=192.168.145.2
#台式机器本地连接DNS
DNS1=192.168.0.1
DOMAIN=8.8.8.8
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
LAST_CONNECT=1488293881
6.配置ssh无密码连接。因hadoop通过ssh启动从节点等
如果没配置,每次启动hadoop集群都要求输入对应节点的密码。如果很多节点无疑不可取。
默认一般都已经安装。
$ rpm -qa|grep openssh
openssh-server-5.3p1-111.el6.x86_64
openssh-askpass-5.3p1-111.el6.x86_64
openssh-5.3p1-111.el6.x86_64
openssh-clients-5.3p1-111.el6.x86_64
a.首先关闭防火墙。
service iptables stop (临时关闭)
chkconfig iptables off(永久关闭)
b.[hadoop@master ~]# ssh-keygen -t rsa -P ''
-P表示密码,-P '' 就表示空密码,也可以不用-P参数,这样就要三车回车,用-P就一次回车。
它在/home/hadoop下生成.ssh目录,.ssh下有id_rsa和id_rsa.pub。
[hadoop@master ~]$ scp .ssh/id_rsa.pub hadoop@slave1:/home/hadoop/id_rsa.pub
master机把id_rsa.pub复制到salve1.ssh
在salve1上执行:
[hadoop@slave1 ~]$ cat id_rsa.pub >> .ssh/authorized_keys
[hadoop@slave1 ~]$ chmod 644 .ssh/authorized_keys
[hadoop@slave1 ~]$ chmod 700.ssh/authorized_keys
在master上执行:不再需要输入密码。如果不成功。请确认salve1中.ssh ,authorized_keys权限是否对。
[hadoop@master ~]$ ssh slave1
Last login: Wed Mar 1 08:05:08 2017 from master
[hadoop@slave1 ~]$ exit
logout
Connection to slave1 closed.
[hadoop@master ~]$
master访问slave2或master,slave1,slave2三节点之间无密码登录,包括登录本机。用同样命令去实现。
7.ntp服务配置,因后续hbase集群时节点时间相差太多无法启动。所以要同步时间。
[hadoop@master ~]$ rpm -qa | grep ntp
ntp-4.2.6p5-5.el6.centos.x86_64
fontpackages-filesystem-1.41-1.1.el6.noarch
ntpdate-4.2.6p5-5.el6.centos.x86_64
如果没安装执行yum install ntp安装。
master时间同步服务器IP在网上找的http://www.ntp.org.cn/
centos可图形界面配置:
[img]http://dl2.iteye.com/upload/attachment/0123/8360/abda17c4-fcd7-33dd-8482-33305d1e6924.png[/img]
[img]http://dl2.iteye.com/upload/attachment/0123/8358/2fdf6e56-a58d-3241-a42b-083e762fdf49.png[/img]
slave1,slave2的ntp服务则写的master的ip.
1.下载VMware12.5.2 build-4638234 当然其他虚拟机软件也可以,比如oracle VM virtualBox
2.下载CentOS-6.7-x86_64-bin-DVD1.iso,CentOS-6.7-x86_64-bin-DVD2.iso
3.安装centos
由于是搭建完全分布式集群,安装了3台机器。分别是master,slave1,slave2.
[img]http://dl2.iteye.com/upload/attachment/0123/8344/d6cf0e8e-0604-31c8-8b39-2a4313863001.png[/img]
提醒的是安装centos时磁盘容量和内存尽量设置大些,根据主机情况。不然后面运行程序和软件可能报磁盘空间不够或内存耗尽。
4.虚拟机共享网络配置设置。
[img]http://dl2.iteye.com/upload/attachment/0123/8337/6577cc53-32a5-3a79-944a-4eef4121be3c.png[/img]
点NAT设置
[img]http://dl2.iteye.com/upload/attachment/0123/8339/6f9547ec-fdbb-37f3-aa88-af7f3f72e913.png[/img]
点DHCP设置
[img]http://dl2.iteye.com/upload/attachment/0123/8341/e95a1298-487c-3284-98aa-1d7fddf514af.png[/img]
5.为统一开发环境修改主机名和添加hadoop用户。
再三台机器上分别执行:
a. useradd -g hadoop hadoop
以后所有与hadoop相关软件周边产品都用hadoop用户身份安装与执行。
b.主机名修改
[hadoop@master sbin]$ vi /etc/sysconfig/network
其他节点分别修改为:
HOSTNAME=slave1
HOSTNAME=slave2
[img]http://dl2.iteye.com/upload/attachment/0123/8346/b8c39208-caa7-34df-bc55-028b0061e002.png[/img]
c.为了让三节点间可以通过主机名访问:
[hadoop@master sbin]$ vi /etc/hosts
三节点都修改为如下。主机名与IP要对应。
[img]http://dl2.iteye.com/upload/attachment/0123/8348/658da595-46f2-3559-b7df-cc335dc2f538.png[/img]
d.由于hadoop集群在启动时需要通过固定IP或主机名启动。所以我们配置为静态IP.
DEVICE="eth0"
BOOTPROTO=static
IPV6INIT="yes"
NM_CONTROLLED="yes"
ONBOOT="yes"
#TYPE="Ethernet"
UUID="9fe038db-11b1-4b33-9b80-323d0394e286"
NETMASK=255.255.255.0
TYPE=Ethernet
DEFROUTE=yes
IPV5_FAILURE_FATAL=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME="System eth0"
IPADDR=192.168.145.128
PREFIX=24
#Vmware为虚拟网络编辑器中的网关地址
GATEWAY=192.168.145.2
#台式机器本地连接DNS
DNS1=192.168.0.1
DOMAIN=8.8.8.8
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
LAST_CONNECT=1488293881
6.配置ssh无密码连接。因hadoop通过ssh启动从节点等
如果没配置,每次启动hadoop集群都要求输入对应节点的密码。如果很多节点无疑不可取。
默认一般都已经安装。
$ rpm -qa|grep openssh
openssh-server-5.3p1-111.el6.x86_64
openssh-askpass-5.3p1-111.el6.x86_64
openssh-5.3p1-111.el6.x86_64
openssh-clients-5.3p1-111.el6.x86_64
a.首先关闭防火墙。
service iptables stop (临时关闭)
chkconfig iptables off(永久关闭)
b.[hadoop@master ~]# ssh-keygen -t rsa -P ''
-P表示密码,-P '' 就表示空密码,也可以不用-P参数,这样就要三车回车,用-P就一次回车。
它在/home/hadoop下生成.ssh目录,.ssh下有id_rsa和id_rsa.pub。
[hadoop@master ~]$ scp .ssh/id_rsa.pub hadoop@slave1:/home/hadoop/id_rsa.pub
master机把id_rsa.pub复制到salve1.ssh
在salve1上执行:
[hadoop@slave1 ~]$ cat id_rsa.pub >> .ssh/authorized_keys
[hadoop@slave1 ~]$ chmod 644 .ssh/authorized_keys
[hadoop@slave1 ~]$ chmod 700.ssh/authorized_keys
在master上执行:不再需要输入密码。如果不成功。请确认salve1中.ssh ,authorized_keys权限是否对。
[hadoop@master ~]$ ssh slave1
Last login: Wed Mar 1 08:05:08 2017 from master
[hadoop@slave1 ~]$ exit
logout
Connection to slave1 closed.
[hadoop@master ~]$
master访问slave2或master,slave1,slave2三节点之间无密码登录,包括登录本机。用同样命令去实现。
7.ntp服务配置,因后续hbase集群时节点时间相差太多无法启动。所以要同步时间。
[hadoop@master ~]$ rpm -qa | grep ntp
ntp-4.2.6p5-5.el6.centos.x86_64
fontpackages-filesystem-1.41-1.1.el6.noarch
ntpdate-4.2.6p5-5.el6.centos.x86_64
如果没安装执行yum install ntp安装。
master时间同步服务器IP在网上找的http://www.ntp.org.cn/
centos可图形界面配置:
[img]http://dl2.iteye.com/upload/attachment/0123/8360/abda17c4-fcd7-33dd-8482-33305d1e6924.png[/img]
[img]http://dl2.iteye.com/upload/attachment/0123/8358/2fdf6e56-a58d-3241-a42b-083e762fdf49.png[/img]
slave1,slave2的ntp服务则写的master的ip.