Linux系统设置文件自动安装

文章介绍了如何通过创建一个名为autoinstall.sh的Shell脚本来简化Hadoop的配置过程。脚本包含了设置环境变量、解压安装包、修改配置文件等步骤,以实现一键自动化配置。执行脚本后,系统会进行Hadoop的相关配置并提示设置成功。

我们在前文中介绍过通过添加配置文件的方式来完成文件的配置,但是这种方式比较繁琐,需要一个个的打开文件去进行配置。

那么能不能只对一个文件进行配置,就可以完成全部的设定呢?我们一起来看一下:

由于软件包下载在/opt目录下,所以这里的配置文件也放在/opt目录下。

创建shellfile文件夹

mkdir shellfile

后续操作都在shellfile文件夹中执行

创建autoinstall.sh

vim autoinstall.sh
#! /bin/bash
echo 'auto install begining....'

由于默认创建的文件权限不够,我们需要对其进行赋权。

chmod 777 autoinstall.sh

尝试执行

./autoinstall.sh

继续编写autoinstall.sh

#! /bin/bash
echo 'auto install hadoop begining....'

#global var
hadoop=true

if [ "$hadoop" = true ];then
  echo 'hadoop install set true'
  echo 'setup hadoop 3'
  tar -zxf /opt/install/hadoop-3.1.3.tar.gz -C /opt/soft/
  mv /opt/soft/hadoop-3.1.3 /opt/soft/hadoop313
  sed -i '73a\export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop' /etc/profile
  sed -i '73a\export HADOOP_LIBEXEC_DIR=$HADOOP_HOME/libexec' /etc/profile
  sed -i '73a\export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native' /etc/profile
  sed -i '73a\export HADOOP_INSTALL=$HADOOP_HOME' /etc/profile
  sed -i '73a\export HADOOP_YARN_HOME=$HADOOP_HOME' /etc/profile
  sed -i '73a\export HADOOP_HDFS_HOME=$HADOOP_HOME' /etc/profile
  sed -i '73a\export HADOOP_COMMON_HOME=$HADOOP_HOME' /etc/profile
  sed -i '73a\export HADOOP_MAPRED_HOME=$HADOOP_HOME' /etc/profile
  sed -i '73a\export YARN_NODEMANAGER_USER=root' /etc/profile
  sed -i '73a\export YARN_RESOURCEMANAGER_USER=root' /etc/profile
  sed -i '73a\export HDFS_ZKFC_USER=root' /etc/profile
  sed -i '73a\export HDFS_JOURNALNODE_USER=root' /etc/profile
  sed -i '73a\export HDFS_SECONDARYNAMENODE_USER=root' /etc/profile
  sed -i '73a\export HDFS_DATANODE_USER=root' /etc/profile
  sed -i '73a\export HDFS_NAMENODE_USER=root' /etc/profile
  sed -i '73a\export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/lib' /etc/profile
  sed -i '73a\export HADOOP_HOME=/opt/soft/hadoop313' /etc/profile
  sed -i '73a\#HADOOP_HOME' /etc/profile
  
  
  #core-site
  sed -i '19a\  </property>' /opt/soft/hadoop313/etc/hadoop/core-site.xml
  sed -i '19a\    <value>*</value>' /opt/soft/hadoop313/etc/hadoop/core-site.xml
  sed -i '19a\    <name>hadoop.proxyuser.root.groups</name>' /opt/soft/hadoop313/etc/hadoop/core-site.xml
  sed -i '19a\  <property>' /opt/soft/hadoop313/etc/hadoop/core-site.xml
  sed -i '19a\  </property>' /opt/soft/hadoop313/etc/hadoop/core-site.xml
  sed -i '19a\    <value>*</value>' /opt/soft/hadoop313/etc/hadoop/core-site.xml
  sed -i '19a\    <name>hadoop.proxyuser.root.hosts</name>' /opt/soft/hadoop313/etc/hadoop/core-site.xml
  sed -i '19a\  <property>' /opt/soft/hadoop313/etc/hadoop/core-site.xml
  sed -i '19a\  </property>' /opt/soft/hadoop313/etc/hadoop/core-site.xml
  sed -i '19a\    <description>读写队列缓存:128k</description>' /opt/soft/hadoop313/etc/hadoop/core-site.xml
  sed -i '19a\    <value>131072</value>' /opt/soft/hadoop313/etc/hadoop/core-site.xml
  sed -i '19a\    <name>io.file.buffer.size</name>' /opt/soft/hadoop313/etc/hadoop/core-site.xml
  sed -i '19a\  <property>' /opt/soft/hadoop313/etc/hadoop/core-site.xml
  sed -i '19a\  </property>' /opt/soft/hadoop313/etc/hadoop/core-site.xml
  sed -i '19a\    <value>root</value>' /opt/soft/hadoop313/etc/hadoop/core-site.xml
  sed -i '19a\    <name>hadoop.http.staticuser.user</name>' /opt/soft/hadoop313/etc/hadoop/core-site.xml
  sed -i '19a\  <property>' /opt/soft/hadoop313/etc/hadoop/core-site.xml
  sed -i '19a\  </property>' /opt/soft/hadoop313/etc/hadoop/core-site.xml
  sed -i '19a\    <description>namenode上本地的hadoop临时文件夹</description>' /opt/soft/hadoop313/etc/hadoop/core-site.xml
  sed -i '19a\    <value>/opt/soft/hadoop313/data</value>' /opt/soft/hadoop313/etc/hadoop/core-site.xml
  sed -i '19a\    <name>hadoop.tmp.dir</name>' /opt/soft/hadoop313/etc/hadoop/core-site.xml
  sed -i '19a\  <property>' /opt/soft/hadoop313/etc/hadoop/core-site.xml
  sed -i '19a\  </property>' /opt/soft/hadoop313/etc/hadoop/core-site.xml
  sed -i '19a\    <value>hdfs://cp145:9000</value>' /opt/soft/hadoop313/etc/hadoop/core-site.xml
  sed -i '19a\    <name>fs.defaultFS</name>' /opt/soft/hadoop313/etc/hadoop/core-site.xml
  sed -i '19a\  <property>' /opt/soft/hadoop313/etc/hadoop/core-site.xml
  
  #hadoop-env.sh
  sed -i '53a\export JAVA_HOME=/opt/soft/jdk180'  /opt/soft/hadoop313/etc/hadoop/hadoop-env.sh
  
  #hdfs-site.xml
  sed -i '19a\  </property>' /opt/soft/hadoop313/etc/hadoop/hdfs-site.xml
  sed -i '19a\    <description>关闭权限验证</description>' /opt/soft/hadoop313/etc/hadoop/hdfs-site.xml
  sed -i '19a\    <value>false</value>' /opt/soft/hadoop313/etc/hadoop/hdfs-site.xml
  sed -i '19a\    <name>dfs.permissions.enabled</name>' /opt/soft/hadoop313/etc/hadoop/hdfs-site.xml
  sed -i '19a\  <property>' /opt/soft/hadoop313/etc/hadoop/hdfs-site.xml
  sed -i '19a\  </property>' /opt/soft/hadoop313/etc/hadoop/hdfs-site.xml
  sed -i '19a\    <description>datanode上数据块的物理存储位置目录</description>' /opt/soft/hadoop313/etc/hadoop/hdfs-site.xml
  sed -i '19a\    <value>/opt/soft/hadoop313/data/dfs/data</value>' /opt/soft/hadoop313/etc/hadoop/hdfs-site.xml
  sed -i '19a\    <name>dfs.datanode.data.dir</name>' /opt/soft/hadoop313/etc/hadoop/hdfs-site.xml
  sed -i '19a\  <property>' /opt/soft/hadoop313/etc/hadoop/hdfs-site.xml
  sed -i '19a\  </property>' /opt/soft/hadoop313/etc/hadoop/hdfs-site.xml
  sed -i '19a\    <description>namenode上存储hdfsq名字空间元数据的目录</description>' /opt/soft/hadoop313/etc/hadoop/hdfs-site.xml
  sed -i '19a\    <value>/opt/soft/hadoop313/data/dfs/name</value>' /opt/soft/hadoop313/etc/hadoop/hdfs-site.xml
  sed -i '19a\    <name>dfs.namenode.name.dir</name>' /opt/soft/hadoop313/etc/hadoop/hdfs-site.xml
  sed -i '19a\  <property>' /opt/soft/hadoop313/etc/hadoop/hdfs-site.xml
  sed -i '19a\  </property>' /opt/soft/hadoop313/etc/hadoop/hdfs-site.xml
  sed -i '19a\    <description>hadoop中每一个block文件的备份数量</description>' /opt/soft/hadoop313/etc/hadoop/hdfs-site.xml
  sed -i '19a\    <value>1</value>' /opt/soft/hadoop313/etc/hadoop/hdfs-site.xml
  sed -i '19a\    <name>dfs.replication</name>' /opt/soft/hadoop313/etc/hadoop/hdfs-site.xml
  sed -i '19a\  <property>' /opt/soft/hadoop313/etc/hadoop/hdfs-site.xml
  
  #mapred-site.xml
  sed -i '19a\  </property>' /opt/soft/hadoop313/etc/hadoop/mapred-site.xml
  sed -i '19a\    <value>1024</value>' /opt/soft/hadoop313/etc/hadoop/mapred-site.xml
  sed -i '19a\    <name>mapreduce.reduce.memory.mb</name>' /opt/soft/hadoop313/etc/hadoop/mapred-site.xml
  sed -i '19a\  <property>' /opt/soft/hadoop313/etc/hadoop/mapred-site.xml
  sed -i '19a\  </property>' /opt/soft/hadoop313/etc/hadoop/mapred-site.xml
  sed -i '19a\    <value>1024</value>' /opt/soft/hadoop313/etc/hadoop/mapred-site.xml
  sed -i '19a\    <name>mapreduce.map.memory.mb</name>' /opt/soft/hadoop313/etc/hadoop/mapred-site.xml
  sed -i '19a\  <property>' /opt/soft/hadoop313/etc/hadoop/mapred-site.xml
  sed -i '19a\  </property>' /opt/soft/hadoop313/etc/hadoop/mapred-site.xml
  sed -i '19a\    <value>cp145:19888</value>' /opt/soft/hadoop313/etc/hadoop/mapred-site.xml
  sed -i '19a\    <name>mapreduce.jobhistory.webapp.address</name>' /opt/soft/hadoop313/etc/hadoop/mapred-site.xml
  sed -i '19a\  <property>' /opt/soft/hadoop313/etc/hadoop/mapred-site.xml
  sed -i '19a\  </property>' /opt/soft/hadoop313/etc/hadoop/mapred-site.xml
  sed -i '19a\    <value>cp145:10020</value>' /opt/soft/hadoop313/etc/hadoop/mapred-site.xml
  sed -i '19a\    <name>mapreduce.jobhistory.address</name>' /opt/soft/hadoop313/etc/hadoop/mapred-site.xml
  sed -i '19a\  <property>' /opt/soft/hadoop313/etc/hadoop/mapred-site.xml
  sed -i '19a\  </property>' /opt/soft/hadoop313/etc/hadoop/mapred-site.xml
  sed -i '19a\    <value>/opt/soft/hadoop313/etc/hadoop:/opt/soft/hadoop313/share/hadoop/common/lib/*:/opt/soft/hadoop313/share/hadoop/common/*:/opt/soft/hadoop313/share/hadoop/hdfs/*:/opt/soft/hadoop313/share/hadoop/hdfs/lib/*:/opt/soft/hadoop313/share/hadoop/mapreduce/*:/opt/soft/hadoop313/share/hadoop/mapreduce/lib/*:/opt/soft/hadoop313/share/hadoop/yarn/*:/opt/soft/hadoop313/share/hadoop/yarn/lib/*</value>' /opt/soft/hadoop313/etc/hadoop/mapred-site.xml
  sed -i '19a\   <name>mapreduce.application.classpath</name>' /opt/soft/hadoop313/etc/hadoop/mapred-site.xml
  sed -i '19a\  <property>' /opt/soft/hadoop313/etc/hadoop/mapred-site.xml
  sed -i '19a\  </property>' /opt/soft/hadoop313/etc/hadoop/mapred-site.xml
  sed -i '19a\    <final>true</final>' /opt/soft/hadoop313/etc/hadoop/mapred-site.xml
  sed -i '19a\    <description>job执行框架:local,classic or yarn</description>' /opt/soft/hadoop313/etc/hadoop/mapred-site.xml
  sed -i '19a\    <value>yarn</value>' /opt/soft/hadoop313/etc/hadoop/mapred-site.xml
  sed -i '19a\    <name>mapreduce.framework.name</name>' /opt/soft/hadoop313/etc/hadoop/mapred-site.xml
  sed -i '19a\  <property>' /opt/soft/hadoop313/etc/hadoop/mapred-site.xml
  
  #yarn-site.xml
  sed -i '17a\  </property>' /opt/soft/hadoop313/etc/hadoop/yarn-site.xml
  sed -i '17a\    <value>/opt/soft/hadoop313/yarndata/log</value>' /opt/soft/hadoop313/etc/hadoop/yarn-site.xml
  sed -i '17a\    <name>yarn.nodemanager.log-dirs</name>' /opt/soft/hadoop313/etc/hadoop/yarn-site.xml
  sed -i '17a\  <property>' /opt/soft/hadoop313/etc/hadoop/yarn-site.xml
  sed -i '17a\  </property>' /opt/soft/hadoop313/etc/hadoop/yarn-site.xml
  sed -i '17a\    <value>/opt/soft/hadoop313/yarndata/yarn</value>' /opt/soft/hadoop313/etc/hadoop/yarn-site.xml
  sed -i '17a\    <name>yarn.nodemanager.local-dirs</name>' /opt/soft/hadoop313/etc/hadoop/yarn-site.xml
  sed -i '17a\  <property>' /opt/soft/hadoop313/etc/hadoop/yarn-site.xml
  sed -i '17a\  </property>' /opt/soft/hadoop313/etc/hadoop/yarn-site.xml
  sed -i '17a\    <value>mapreduce_shuffle</value>' /opt/soft/hadoop313/etc/hadoop/yarn-site.xml
  sed -i '17a\    <name>yarn.nodemanager.aux-services</name>' /opt/soft/hadoop313/etc/hadoop/yarn-site.xml
  sed -i '17a\  <property>' /opt/soft/hadoop313/etc/hadoop/yarn-site.xml
  sed -i '17a\  </property>' /opt/soft/hadoop313/etc/hadoop/yarn-site.xml
  sed -i '17a\    <value>cp145:8042</value>' /opt/soft/hadoop313/etc/hadoop/yarn-site.xml
  sed -i '17a\    <name>yarn.nodemanager.webapp.address</name>' /opt/soft/hadoop313/etc/hadoop/yarn-site.xml
  sed -i '17a\  <property>' /opt/soft/hadoop313/etc/hadoop/yarn-site.xml
  sed -i '17a\  </property>' /opt/soft/hadoop313/etc/hadoop/yarn-site.xml
  sed -i '17a\    <value>cp145:8050</value>' /opt/soft/hadoop313/etc/hadoop/yarn-site.xml
  sed -i '17a\    <name>yarn.nodemanager.address</name>' /opt/soft/hadoop313/etc/hadoop/yarn-site.xml
  sed -i '17a\  <property>' /opt/soft/hadoop313/etc/hadoop/yarn-site.xml
  sed -i '17a\  </property>' /opt/soft/hadoop313/etc/hadoop/yarn-site.xml
  sed -i '17a\    <value>cp145:8040</value>' /opt/soft/hadoop313/etc/hadoop/yarn-site.xml
  sed -i '17a\    <name>yarn.nodemanager.localizer.address</name>' /opt/soft/hadoop313/etc/hadoop/yarn-site.xml
  sed -i '17a\  <property>' /opt/soft/hadoop313/etc/hadoop/yarn-site.xml
  sed -i '17a\  </property>' /opt/soft/hadoop313/etc/hadoop/yarn-site.xml
  sed -i '17a\    <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>' /opt/soft/hadoop313/etc/hadoop/yarn-site.xml
  sed -i '17a\    <name>yarn.resourcemanager.scheduler.class</name>' /opt/soft/hadoop313/etc/hadoop/yarn-site.xml
  sed -i '17a\  <property>' /opt/soft/hadoop313/etc/hadoop/yarn-site.xml
  sed -i '17a\  </property>' /opt/soft/hadoop313/etc/hadoop/yarn-site.xml
  sed -i '17a\    <value>20000</value>' /opt/soft/hadoop313/etc/hadoop/yarn-site.xml
  sed -i '17a\    <name>yarn.resourcemanager.connect.retry-interval.ms</name>' /opt/soft/hadoop313/etc/hadoop/yarn-site.xml
  sed -i '17a\  <property>' /opt/soft/hadoop313/etc/hadoop/yarn-site.xml

  echo 'setup hadoop 3 success!!!'
fi

初始化

[root@cp145 hadoop]# source /etc/profile
[root@cp145 hadoop]# echo $HADOOP_HOME
/opt/soft/hadoop313
[root@cp145 hadoop]# hdfs namenode -format

start-all.sh即可成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值