一、前言
就是我们需要集群部署hadoop,Flink时,写ip地址太长了,然后大家想的就是能不能用比如:node1,node2,node3去代替IP地址,在一个局域网中,每台机器都有一个主机名,便于主机与主机之间的区分,因此为每台机器设置主机名,以容易记忆的方法来相互访问。比如我们在局域网中可以为根据每台机器的功用来为其命名,也可以通过各个节点来命名。
二、三种方式给linux主机系统改名
在linux系统中,设置主机名我知道的有三种不同的方式,下面我们来看看这几种方式之间的区别。
1、通过hostname 新名字
命令格式:hostname newhostname
#1.修改主机名为node3 [root@node1 apps]# hostname node3 #2.退出系统,重新登录 [root@node1 apps]# logout Last login: Wed Apr 13 10:52:37 2022 from 192.168.43.1 #3.node已经改为node3了 [root@node3 ~]#
可以看到,修改后,看到的主机名并没有改变,但是当我们打开新的命令查看或者重新登录后连接,主机名就生效了。说明该方式是暂时修改主机名,用logout命令登出并重新登录即可生效。但不是永久生效。
2、通过修改配置文件
修改配置文件/etc/sysconfig/network也可以对主机名进行修改,linux主机名在下次重启之后开始生效,如需立即永久生效,需配合hostname命令即可。
[root@node3 ~]# vi /etc/sysconfig/network # 1.设置主机名 NETWORKING=yes HOSTNAME=node2
#2.查看是否设置成功 [root@node3 ~]# cat /etc/sysconfig/network
这样,修改后重新登录或者打开新的连接就生效了,重启的话会自动调用配置文件的设置,自动使主机名生效。
PS:对于在Ubuntu系统中,主机名存放在/etc/hostname文件中,修改主机名时,编辑hostname文件,在文件中输入新的主机名并保存该文件即可。
[root@localhost~]# vi /etc/hostsname [root@localhost ~]# cat /etc/hostsname node2 [root@localhost ~]#
3、使用 hostnamectl 来改变主机名
hostnamectl 命令允许在 Linux 中设置三类主机名,它们的细节如下:
1. 静态: 这是静态主机名,由系统管理员添加。 2. 瞬时/动态: 这个由 DHCP 或者 DNS 服务器在运行时赋予。 3. 易读形式: 它可以由系统管理员赋予。这个是自由形式的主机名,以一种易读形式来表示服务器, 例如 “JBOSS UAT Server” 这样的名字。
设置命令格式: hostnamectl set-hostname主机名
[root@node3 ~]# hostnamectl set-hostname node4 [root@node3 ~]# hostnamectl status [root@node3 ~]# cat /etc/hostname
注意:这些需要重启启动就可以生效了!并且是永久生效哟!
该方式设置后,会自动将设置信息写入到配置文件中,无需额外编辑,属于立即生效,永久生效的,重启也会生效。
4、总结
最后总结一下,三种方式都能够临时或永久的修改主机名,如果是希望永久性修改主机名还是推荐使用第三种hostnamectl 命令的方式去修改,修改后即可永久生效,无需去修改配置额外的文件,非常方便。