下面是/etc/hosts文件的示例:
127.0.0.1 localhost
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
## vagrant-hostmanager-start
<ipaddress1> namenode
<ipaddress2> secondarynamenode
<ipaddress3> slave1
<ipaddress4> slave2
< it can be more slave nodes here>
## vagrant-hostmanager-end
在尝试配置hadoop群集时,我需要按以下配置拆分/etc/hosts文件:
namenode和secondarynamenode转到一个名为masters slaves的文件*转到一个名为slaves的文件至少会有namenode和0个或更多slaves。最简单的方法是什么来解析bash中提到的文件,并将部分写入到前面提到的各个部分(主部分和从部分)?我可以在python中轻松地完成它,但我需要在bash中完成它。大师们看起来像:
<ipaddress1>
<ipaddress2>
而奴隶可能是这样的:
<ipaddress3>
<ipaddress4>
就是这样,两个文件只包含ip地址,而不是机器名。。。原因是如果机器名存在,hadoop将无法工作。我怎样才能使用 awk
或者 bash
? 我有以下命令:
awk '/namenode/{print >"masters"; next} /slave[0-9]/{print > "slaves"}' /etc/hosts
但这让机器的名字保持不变。。。
1条答案
按热度按时间jogvjijk1#
这里有一种方法是
awk
: