前面linux的搭建说了那么多,就是为了方便分布式集群的部署安装的,接下来就进入正题开始安装部署分布式集群:
分布式部署安装的方式有两种:
第一种:手动安装部署:
手动部署说白了就是手动复制到指定的机器上,大家都知道配置一台机器之后,其他机器也需要安装配置,但基本都相同,只需要变更几个变量就可以了,所以手动部署就是通过走网路的方式将配置好的机器以文件的形式发送到指定的机器,然后修改相应的参数就可以了。
第二种:利用工具安装部署:
第二种就是使用工具进行安装部署,比如大数据集群监控运维工具:CM(cloudera manager)它是由cloudera 公司提供的可视化界面工具,这个软件操作十分简单方便,但是收费!!!(没钱);顺带一提,cloudera 公司也提供了大数据框架,他们的版本就是CDH版本(部分功能收费),说到这个版本,它解决了原本框架中的一些bug,而且解决了版本兼容性问题,比如你确定了hadoop的版本,那么cdh会自动帮你选择与之匹配的其他框架的相应版本,企业大部分都是用的是cdh版本的框架(大公司除外),所以之后我也会搭建cdh版本的框架集群。
下面就使用第一种方式安装部署分布式集群:
首先需要克隆前面准备好的linux机器:(因为使用的是虚拟机。。。)
步骤:(虚拟机必须在关机状态,防止出现bug)在安装好的linux上右击 -》管理 -》克隆 -》下一步到克隆方法 -》创建完整克隆 -》选择安装位置,以及克隆之后的虚拟机名称;
克隆两个,之前说过要以(至少)三台虚拟机搭建集群,后面会解释为什么至少三台;而且不用偶数;
这里因为linux下一些皆文件,所以克隆之后所有的东西都是一样的,我们需要修改一些东西:
当然如果你使用的是阿里云,那就完全不需要这些操作了。
[super-yong@bigdata-01 Desktop]$ sudo vi /etc/udev/rules.d/70-persistent-net.rules
可以看出克隆之后主机名都相同,所以这些都必须改掉,打开网卡配置如下:
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.
# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:65:2b:25", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:7a:cc:67", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
~
~
~
~
~
~
~
~
~
~
~
~
~
~
"/etc/udev/rules.d/70-persistent-net.rules" 11L, 585C
我们需要做的就是将网卡配置中的eth0对应的网卡删除掉,然后将‘eth1’修改为‘eth0’即可,记得保存下修改后对应的eth0的mac地址(00:0c:29:7a:cc:67),后面需要用到。修改后如下:
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.
# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:7a:cc:67", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
-- INSERT --
这样网卡就修改好了;接下来修改ip和mac地址。
[super-yong@bigdata-01 Desktop]$ sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
打开后如下:
DEVICE="eth0"
BOOTPROTO=none
IPV6INIT="yes"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
UUID="0f3d3ba6-cc6e-412e-92e8-a10ab6a15969"
HWADDR=00:0C:29:65:2B:25
IPADDR=192.168.59.101
PREFIX=24
GATEWAY=192.168.59.2
DNS1=8.8.8.8
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME="System eth0"
~
~
~
~
~
~
~
"/etc/sysconfig/network-scripts/ifcfg-eth0" 20L, 378C
我们需要修改HWADDR(mac地址,对应网卡中的mac地址00:0c:29:7a:cc:67),和IPADDR(ip地址),修改后如下:
DEVICE="eth0"
BOOTPROTO=none
IPV6INIT="yes"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
UUID="0f3d3ba6-cc6e-412e-92e8-a10ab6a15969"
HWADDR=00:0c:29:7a:cc:67
IPADDR=192.168.59.102
PREFIX=24
GATEWAY=192.168.59.2
DNS1=8.8.8.8
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME="System eth0"
~
~
~
~
~
~
~
"/etc/sysconfig/network-scripts/ifcfg-eth0" 20L, 378C
接下来修改主机名和映射。
[super-yong@bigdata-01 Desktop]$ sudo vi /etc/hosts
打开后如下:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.59.101 bigdata-01.superyong.com
~
~
~
~
~
~
~
~
~
~
"/etc/hosts" 3L, 198C
因为需要传输文件(集群的各个框架,linux下一切皆文件),三台机器相互关联起来才能够通过主机名进行网络文件传输,所以配置如下:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.59.101 bigdata-01.superyong.com
192.168.59.102 bigdata-02.superyong.com
192.168.59.103 bigdata-03.superyong.com
~
~
~
~
使其相互直接通过主机名和ip关联起来。
以上就是整个克隆需要修改的地方,每个主机都要修改,原来的那个主机只需要修改主机名映射,将三台机器关联起来就好,配置到这里克隆之后的配置就完成了,接下来配置window下的文件,是外部ssh工具能够连接到三台机器:
打开C:\Windows\System32\drivers\etc下的hosts文件,然后添加这三台机器的ip和主机名:
# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost
# 大数据学习:
192.168.59.101 bigdata-01.superyong.com
192.168.59.102 bigdata-02.superyong.com
192.168.59.103 bigdata-03.superyong.com
然后使用ssh工具连接三台机器:
如果你连接成功了,那么恭喜你!有任何问题可以留言问我,配置就到这里。
注意:在企业中,需要你去一台一台的配置,因为它是实实在在存在的,不可能像这一台台克隆出来,所以在配置的时候,要保证所有机器拥有:统一的用户;统一的目录!