最近需要搞一点大数据分析相关的东西,今天捣鼓了一天搞这个生产集群,总算是弄完了,踩了不少的坑。这个教程适合那种初步上手的,按照这个一步步来,基本没什么问题。
我晕了,捣鼓了一天,结果人家20min教程就说明白了.B站搜索:BV1bA411b7vs。照着来就OK,哎,我咋没早点找到呢
首先是下载virtualbox(一个虚拟机软件),还有ubuntu 16.04.-desktop(一步一步来,不要一开始就硬扛命令行)这两个不多做赘述,可以参考:
https://www.bilibili.com/video/BV19J41157et?from=search&seid=13220585138641360838
手把手教学安装。这里我提几个会比较影响使用的坑:
强烈建议第一次安装的同学多用虚拟机的备份与快照功能,避免中间出岔子,给自己一个后悔药
- 首先是windows和ubuntu怎么实现相互的数据复制
安装完成后,需要在这个界面进行设置,分别设置这两项:
固态驱动器打钩。
使用IO缓存这里也打钩。
然后把把共享粘贴板和拖放都设置为双向的。这样就可以实现从windows到linux的复制和从linux到windows的复制了。
然后小伙伴可能会遇到一个问题,那就是画面会非常的小,这里需要借助virtualbox的安装增强功能来实现。
不出意外的话会有一个提示让你运行,然后按照他的运行就好了。
准备工作做完了,这下我们来搭建集群。
- (重要)我们需要对linux的网络进行相关配置,这个是实现静态IP的重要前提。
这里千万不要做多余的步骤,先按照我的步骤一步步来
回到virtualbox的界面选择“工具”里的网络选项:
- 首先我们需要取消勾选"DHCP服务器",防止虚拟机自动分配IP,这样才可以设置静态IP。
- 接下来要手动配置网卡,配置的规则需要我们返回windows打开命令行,输入:ipconfig,显示:
由于我这里是校园网,和一般人不一样,我的网段是10.181.x.x的。因此所有集群必须以10.181开头,第三个地址段最好设置为一样的,我这里设置为10.181.56.x
-
还没完,接着我们关闭ubuntu,对虚拟机进行网卡的设置。
-
首先需要有一个网卡为**网络地址转换(NAT)**用于连接外网,这张网卡的设置就按照默认即可
- 其次还需要一张网卡设置为**仅主机(Host-only)**网络,用于集群之间的连接,这里的界面名称就是用我们之前在网络-工具里面设置的网卡信息。
打开Ubuntu,我们可以开始设置静态IP了。
开始之前,我们先进行换源,因为需要安装一些软件。
这里使用的是阿里的源:
# 先备份一下
sudo cp /etc/apt/sources.list /etc/apt/sources.list.old
#执行命令打开source.list文件
sudo gedit /etc/apt/sources.list
将打开的文件中的源替换为如下的阿里源:
deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
deb http://archive.canonical.com/ubuntu xenial partner
deb-src http://archive.canonical.com/ubuntu xenial partner
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse
这里命令行中会有警告,无视即可。
#执行更新源的指令
sudo apt-get update
接下来下载一个东西
#超好用的linux编辑工具,谁用谁知道
sudo apt-get install vim
然后我们可以开始更改静态IP了。
执行如下命令:
# 这是linux下查询IP的方法,注意与windows的ipconfig区分
ifconfig
这里的enp0s3是分配的NAT网卡,用于连接外网,而enp0s8则是我们用于布置集群的网卡,需要我们更改静态IP的(这里我已经改好了)。接下来执行:
# 修改网络接口
sudo vim /etc/network/interfaces
复制以下内容:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# 这个我不知道干啥的,反正加上吧
source /etc/network/interfaces.d/*
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
# 用于接入NAT,不做更改
# The primary network interface(NAT)
auto enp0s3
iface enp0s3 inet dhcp
# 用于布置集群的网卡
auto enp0s8
# 设置为static
iface enp0s8 inet static
# 更改为我们需要的IP
address 10.181.56.100
netmask 255.255.255.0
网络接口更改完毕,接下来需要更改hostname,以及在hosts文件中添加IP
#修改我们的主机名
sudo vim /etc/hostname
之后修改为我们需要的主机名,就相当于域名一样,这里我改成了dennis-0。
以后我们的控制台就会这样显示,前面是用户名,后面是主机名,以后需要用SSH访问主机也可以直接通过主机名访问,而不需要输入对应的IP:
接下来修改hosts
sudo vim /etc/hosts
修改为:
# 可以通过127.0.0.1解析本地localhost -- 不要改,很多程序的用例用到了localhost
127.0.0.1 localhost
# 主机不需要通过127.0.0.1 解析dennis-0,即不需要通过dennis-0来访问外网
# 127.0.1.1 dennis-0
# 这里添加以后需要增设的集群IP和主机名
10.181.56.100 dennis-0
10.181.56.101 dennis-1
10.181.56.102 dennis-2
这样我们就实现了一个集群的单机了~
当未来我们需要增设集群的时候,只需要改主机名还有它的静态IP即可
- 接下来我们可以配置SSH,这样windows上也可以通过命令行来操控linux
首先在linux下安装openssh-server
sudo apt-get install openssh-server
安装完成后进行如下操作
sudo vi /etc/ssh/sshd_config
#增加以下配置允许通过ssh登录
#在打开的配置文件中修改这一项
#PermitRootLogin prohibit-password
PermitRootLogin yes
#修改完成后需要重启ssh服务命令如下
sudo service ssh restart
接下来设置ssh的登录密码:
sudo passwd root
Enter new UNIX password: #这里输入你的密码
Retype new UNIX password: #再次确认
passwd: password updated successfully
su root #即生效
下一步开启SSH,我就直接贴图了:
最后做了一步检查SSH是否开启。
接着打开windows中的命令行,输入如下:
这里的输入就是linux命令行最前面的那一坨,即 用户名@主机名
接下来输入我们在ssh中设置的密码
这下就可以通过windows来调用ubuntu里的服务啦。
今天真的捣鼓了一天,踩了很多坑,这一套教程应该够完善了。如果有不明白可以在下方留言,我尽力解答