在日常工作中经常需要对Hadoop的配置文件的值进行替换,但是又不能通过手动去修改hdfs-site.xml中的内容,只能通过shell脚本来修改。本文旨在提供一种方法,通过shell脚本来替换Hadoop配置的内容。
具体实现方法为:
change_xml_value() { name=$1 value=$2 file=$3 sed -i "/>${name}</,/property/ s#<value>.*</value>#<value>${value}</value>#g" ${file} }
调用格式为:
change_xml_value 配置项的名称 配置项的新值 配置文件的路径
如:需要修改hdfs-site.xml中dfs.nameservices的值为hdfsname,hdfs-site.xml的路径为/home/hdfs/etc/hadoop/ 则需要执行以下命令:
change_xml_value "dfs.nameservices" "hdfsname" /home/hdfs/etc/hadoop/hdfs-site.xml
以上提供的方法不限于只修改Hadoop的配置,只要配置文件的内容满足以下格式,皆可使用该方法,配置文件的格式如下:
<property> <name>name</name> <value>value</value> </property>