前言:

     我们需要至少3台服务器来实现分布式,鉴于没那么多钱买真机器,从学习和开发的角度看,只有虚拟机一条路了。
软件选择:
    虚拟机使用VMware软件,因为主流而且资料比较多,学习成本较低。软件在【 链接:http://pan.baidu.com/s/1jI4pppc  密码:zvtt 】下,破解文件也在里面。
    虚拟OS毫无疑问是linux,鉴于centos开源,下载方便又不需要破解,故而采用之。【‪CentOS-7-x86_64-Everything-1511.iso】
         此外还有redhat版本【shrike-i386-disc2.iso】,centOs是开源系统,可以自己去官网下载。
    
OS安装:
    新建虚拟机,一般都是默认,只是需要选择镜像文件和虚拟机配置,master主机可以内存硬盘稍稍大些3/20,其他可以不用太大1/15,看你内存多少了。
    创建硬盘的时候可以选择定容量模式,预占可以防止虚拟机硬盘后期占用无限大,但是假如没有用到这么大的空间,其它部分就浪费了。
    一系列设置完毕后进入VM,开始安装OS。选择语言和区域,接下来选择安装选项、网络配置等。虚拟机集群里最多只需要一个带有UI界面的,
    因为可能需要安装一些开发工具。选择尽量从简,需要的再自行安装(最小安装)。 
    安装过程中可以不必配置网络和用户只需要设置root密码
    安装结束后进入系统设置,对于某些插件来说可能需要接受协议,选择1/2,continue,只要确定已经选择了正确的选项,其他的不需要管,重启即可。
 
设置网络(静态ip、为了方便连接外网,采用NAT方式而非桥接):
    1.网络适配器设置:
      虚拟机有虚拟机网卡,在网络连接适配器中,手动设置虚拟机ip,包括子网掩码和网关。
      网关可以认为:前3数字位与ip一致,最后一个多数情况下是2.表示这一个网段的所有的ip都由这个网关管理。或者说由这个网关去映射网络中的ip。
    2.VMware的虚拟网络编辑器:
     在编辑中选择虚拟网络编辑器,如果没有,就新增一条,连接方式为NAT,不使用DHCP自动ip,子网ip在这个网段之内都行?
      
      在NAT设置里,设置正确的ip、网关、子网掩码

      
      端口映射应该是设置一些特殊的端口,这里暂时不用。这样,这个虚拟网络就设置好了。后面需要将这个虚拟网络添加到虚拟OS中去。
      
     3.虚拟OS的设置
      通过以上的设置,外部环境已经设置好了,下面需要设置一下虚拟机的网卡。参考:
      步骤:
 
ifconfig -a
如果命令不可用,就用ip addr
在结果中找到网卡名称,ens33、eth0等等格式。我这里是ens34
vi /etc/sysconfig/network-scripts/ifcfg-之前的网卡名。
在网卡里输入内容【参考资料里有详细内容】
最后需要修改
/etc/sysconfig/network
实测可以主机能够ping通虚拟机,虚拟机可以ping通baidu,设置完毕。
       
系统软件安装
    有GUI界面的:
    安装VMtools,可实现本机向虚拟机传递文件,点击安装即可,原则是只要能拖文件就行了,不需要在虚拟机里手动安装
    裸控制台的是最小安装,许多功能都没有。没有鼠标导致控制台几乎不可用。解决办法如下:
    首先通过ip addr拿到网卡信息,参照上面的网络配置,调通网络。接下来:
yum install -y gpm
chkconfig -add gpm --可有可无
reboot
问题是:鼠标指针延迟太高,可用性极差。
    虽然鼠标比较卡,但是幸运的是可以通过xshell/secureCRT终端连接到VMOS上,这样就不存在不好用的问题了。
 
应用软件安装:
    鉴于虚拟机可以克隆,所以我们只需要在一台机器上安装我们需要的东西即可。
    目前主要有:java,带UI的OS可以通过VM tools来拖到OS里,不带UI的裸控制台可以通过sftp命令来下载其他OS里的文件:
    sftp:sftp root@192.168.204.3 输入密码 然后get 远程目录 本地目录 即可下载文件,或者put来发送文件,最后quit离开sftp。
    解压java的tar包,最好放到/usr/local下面。可以通过 mv 源文件名 修改后文件名,来实现重命名。
    vi /etc/profile 在后面添加环境变量
JAVA_HOME=/usr/local/java/jdk1.7
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
    source /etc/profile 使其生效 最后java -version来测试环境是否安装好。
    除了java之外,还需要安装zookeeper和jstorm等软件,这放到后面详细写。
 
虚拟机克隆,搭建集群
   虚拟机基本软件安装好之后,关闭电源,为了防止出现其他问题选择完全克隆(看了很多完全克隆和链接克隆的区别,还是不太理解),建议克隆轻量的裸控制台的,因为带UI的太大,启动太慢。
   克隆虚拟机之后,按照之前的网络设置:
   ip addr 查看网卡和MAC地址 ,然后再网卡设置里,vi /etc/sysconfig/network-scripts/ifcfg-之前的网卡名,主要修改IPADDR地址和HWADDR。
   之后设置vi /etc/hosts  vi /etc/sysconfig/network等,重启即可。
 
   
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

利用vmware 搭建分布式集群的更多相关文章

  1. 利用vmware搭建分布式集群

    背景:      我们需要至少3台服务器来实现分布式,鉴于没那么多钱买真机器,从学习和开发的角度看,只有虚拟机一条路了. 软件选择:     虚拟机使用VMware软件,因为主流而且资料比较多,学习成 ...

  2. Hadoop2.7.3+HBase1.2.5+ZooKeeper3.4.6搭建分布式集群环境

    Hadoop2.7.3+HBase1.2.5+ZooKeeper3.4.6搭建分布式集群环境 一.环境说明 个人理解:zookeeper可以独立搭建集群,hbase本身不能独立搭建集群需要和hadoo ...

  3. linux下利用httpd搭建tomcat集群,实现负载均衡

    公司使用运营管理平台是单点tomcat,使用量大,或者导出较大的运营数据时,会造成平台不可用,现在需要搭建tomcat集群,调研后,决定使用apache的httpd来搭建tomcat集群.以下是搭建步 ...

  4. Spark-1.6.1 Hadoop-2.6.4 VMware Ubuntu 分布式集群搭建 全过程

    本文从头开始零基础完全配置,适合小白. 本文在vmware中配置三台虚拟机,一台做Master,两台Worker,hadoop 和spark只需要在Master上配置,然后cp到worker上,包括配 ...

  5. 用VMWare搭建服务器集群不能上外网的三种模式下对应解决办法

    前言 决心要花费宝贵时间写下这篇心得,是因为从昨天晚上到今天上午被这个VMWare模拟搭建的服务器集群不能上外网的问题搞得很心烦,最后决定跟它杠上了!上午还通过远程连接得到了“空白”同学的帮助,在此表 ...

  6. kubernetes-通过VMware搭建k8s集群遇到的问题

    VMWare版本:14.13 Centos版本:CentOS-7-x86_64-DVD-1810.iso 遇到的问题:ping不通 报could not resolve host这个错误 解决办法:参 ...

  7. ubuntu14.04环境下利用docker搭建solrCloud集群

    在Ubuntu14.04操作系统的宿主机中,安装docker17.06.3,将宿主机的操作系统制作成docker基础镜像,之后使用自制的基础镜像在docker中启动3个容器,分配固定IP,再在3个容器 ...

  8. 利用nginx搭建tomcat集群

    1.tomcat集群 利用nginx对请求进行分流,将请求平均的分给不同的tomcat去处理,减少单个tomcat的负载量,提高tomcat的响应速度. 2.创建多个tomcat服务器(同一个服务器上 ...

  9. 利用Docker搭建Redis集群

    Redis集群搭建 运行Redis镜像 分别使用以下命令启动3个Redis docker run --name redis-6379 -p 6379:6379 -d hub.c.163.com/lib ...

随机推荐

  1. Web负载均衡的几种实现方式

    Web负载均衡的几种实现方式摘要:负载均衡(Load Balance)是集群技术(Cluster)的一种应用.负载均衡可以将工作任务分摊到多个处理单元,从而提高并发处理能力.目前最常见的负载均衡应用是 ...

  2. 【MongoDB】C#中的Mongo数据类型转换

    用过Mongo的人都知道,Mongo使用的是Bson类型,有string,int,date,bool等数据类型,具体就不详述了. 在使用Mongo 的C#官方驱动时会碰到一个问题,如何将Bson中的数 ...

  3. Python yield 使用浅析

    转载来自: http://www.ibm.com/developerworks/cn/opensource/os-cn-python-yield/ 初学 Python 的开发者经常会发现很多 Pyth ...

  4. JDK常用工具集——jps

    该命令的作用是罗列出目标系统(target system)中所有具有访问权限到的Java进程. 一.命令简介:     jps [option] [hostid] 二.参数说明:     option ...

  5. QQ列表展示

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  6. 理解callback function in javascript

    以下内容主要摘自[1,2] (1)In javascript, functions are first-class objects, which means functions can be used ...

  7. 在visual studio2015中使用easyX画图

    配置:解压EasyX压缩包: 将文件内的include,lib,lib/amd64下的文件拷贝到visualstudio中VC文件夹内对应的地方: 然后再执行上图中的Setup.hta进行安装: 在v ...

  8. 分布式缓存技术redis学习系列(四)——redis高级应用(集群搭建、集群分区原理、集群操作)

    本文是redis学习系列的第四篇,前面我们学习了redis的数据结构和一些高级特性,点击下面链接可回看 <详细讲解redis数据结构(内存模型)以及常用命令> <redis高级应用( ...

  9. 传智播客DotNet面试题

    技术类面试.笔试题汇总(整理者:杨中科,部分内容从互联网中整理而来) 注:标明*的问题属于选择性掌握的内容,能掌握更好,没掌握也没关系. 下面的参考解答只是帮助大家理解,不用背,面试题.笔试题千变万化 ...

  10. js最佳继承范型

    先回想下怎么给一个类设置属性:1.构造函数 内  通过this2.prototype中的属性两者的区别就是构造函数中的属性是每个实例私有的,而prototype中的属性是所有实例共有的(一般方法和静态 ...