一、安装jdk

1、首先进行快拍照(以防操作失误,可返回到原来位置)

2、创建intall目录

mkdir /opt/install

3上传jdk的tar包到install目录中

通过第三方软件WinSCP或者Xftp 8来传输文件包

4、vi autoinstall.sh

按“i”键,复制下面这一大段内容进去

#!/bin/bash

echo 'auto install soft'

jdk=true

installdir=/opt/soft
if [ ! -d "$installdir" ]; then
    mkdir $installdir 
fi

fwstate=`firewall-cmd --state`
echo "$fwstate"
if [ "$fwstate" = "running" ]; then
    echo "stop firewall..."
    systemctl stop firewalld
    systemctl disable firewalld
# 注释 : 调试程序, 若防火墙关闭 则开启
#else
#    echo "start firewall..."
#    systemctl start firewalld
fi

if [ "$jdk" = true ]; then
    echo 'install jdk'
    echo 'set up jdk 1.8'
    tar -zxf /opt/install/jdk-8u231-linux-x64.tar.gz -C "$installdir"
    mv "$installdir"/jdk1.8.0_231 "$installdir"/jdk180

    echo '#JAVA_JDK' >> /etc/profile
    echo 'export JAVA_HOME=/opt/soft/jdk180' >> /etc/profile
    echo 'export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar' >> /etc/profile
    echo 'export PATH=$PATH:$JAVA_HOME/bin' >> /etc/profile
    source /etc/profile
fi
 
echo 'auto install end'
然后按“esc"键,按“:wq”,退出

5、输入:. autoinstall.sh

6、进行测试

java -version

javac -version

二、安装启动hadoop

0、拍快照

1. cd /opt/install

上传hadoop的tar包到install目录中(也是通过WinSCP或Xftp8来上传)

2.替换autoinstall.sh

rm -rf autoinstall.sh2

vi autoinstall.sh

将下面一串代码粘贴到里面

#!/bin/bash

echo 'auto install soft'

jdk=false   #######################################
hadoop=true #######################################

installdir=/opt/soft
if [ ! -d "$installdir" ]; then
    mkdir $installdir 
fi

fwstate=`firewall-cmd --state`
echo "$fwstate"
if [ "$fwstate" = "running" ]; then
    echo "stop firewall..."
    systemctl stop firewalld
    systemctl disable firewalld
# 注释 : 调试程序, 若防火墙关闭 则开启
#else
#    echo "start firewall..."
#    systemctl start firewalld
fi

if [ "$jdk" = true ]; then
    echo 'install jdk'
    echo 'set up jdk 1.8'
    tar -zxf /opt/install/jdk-8u231-linux-x64.tar.gz -C "$installdir"
    mv "$installdir"/jdk1.8.0_231 "$installdir"/jdk180

    echo '#JAVA_JDK' >> /etc/profile
    echo 'export JAVA_HOME=/opt/soft/jdk180' >> /etc/profile
    echo 'export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar' >> /etc/profile
    echo 'export PATH=$PATH:$JAVA_HOME/bin' >> /etc/profile
    source /etc/profile
fi

###################################################
hostname=`hostname`
if [ "$hadoop" = true ]; then
    echo 'setup hadoop-3.1.3.tar.gz'
    tar -zxf /opt/install/hadoop-3.1.3.tar.gz -C "$installdir"
    mv "$installdir/hadoop-3.1.3" "$installdir/hadoop313"
    chown -R root:root "$installdir/hadoop313"
    
    echo "--------hadoop-env.sh--------"
    echo "export JAVA_HOME=/opt/soft/jdk180"  >> "$installdir/hadoop313/etc/hadoop/hadoop-env.sh"
    echo "export HADOOP_COMMON_LIB_NATIVE_DIR=$installdir/hadoop313/lib/native"  >> "$installdir/hadoop313/etc/hadoop/hadoop-env.sh"
    echo "export HADOOP_OPTS="-Djava.library.path=${installdir}/hadoop313/lib/native""  >> "$installdir/hadoop313/etc/hadoop/hadoop-env.sh"

    echo "--------core-site.xml--------"
    val1="$installdir/hadoop313/etc/hadoop/core-site.xml"
    sed -i '19a\  <property><name>hadoop.proxyuser.root.groups</name><value>*</value></property>' $val1 
    sed -i '19a\  <property><name>hadoop.proxyuser.root.hosts</name><value>*</value></property>' $val1
    sed -i '19a\  <property><name>io.file.buffer.size</name><value>131072</value><description>读写队列缓存:128K</description></property>' $val1
    sed -i '19a\  <property><name>hadoop.http.staticuser.user</name><value>root</value></property>' $val1
    sed -i '19a\  <property><name>hadoop.tmp.dir</name><value>/opt/soft/hadoop313/data</value><description>namenode上本地的hadoop临时文件夹</description></property>' $val1
    sed -i "19a\  <property><name>fs.defaultFS</name><value>hdfs://$hostname:9000</value></property>" $val1

    echo '--------hdfs-site.xml--------'
    val2="$installdir/hadoop313/etc/hadoop/hdfs-site.xml"
    sed -i '19a\  <property><name>dfs.permissions.enabled</name><value>false</value><description>关闭权限验证</description></property>' $val2
    sed -i "19a\  <property><name>dfs.datanode.data.dir</name><value>${installdir}/hadoop313/data/dfs/data</value><description>datanode上数据块的物理存储位置目录</description></property>" $val2
    sed -i "19a\  <property><name>dfs.namenode.name.dir</name><value>$installdir/hadoop313/data/dfs/name</value><description>namenode上存储hdfsq名字空间元数据的目录</description></property>" $val2
    sed -i '19a\  <property><name>dfs.replication</name><value>1</value><description>hadoop中每一个block文件的备份数量</description></property>' $val2

    echo '--------mapred-site.xml--------'
    val3="$installdir/hadoop313/etc/hadoop/mapred-site.xml"
    sed -i '19a\  <property><name>mapreduce.reduce.memory.mb</name><value>4096</value></property>' $val3
    sed -i '19a\  <property><name>mapreduce.map.memory.mb</name><value>4096</value></property>' $val3
    sed -i "19a\  <property><name>mapreduce.jobhistory.webapp.address</name><value>$hostname:19888</value></property>" $val3
    sed -i "19a\  <property><name>mapreduce.jobhistory.address</name><value>$hostname:10020</value></property>" $val3
    sed -i "19a\  <property><name>mapreduce.application.classpath</name><value>$installdir/hadoop313/etc/hadoop:$installdir/hadoop313/share/hadoop/common/lib/*:$installdir/hadoop313/share/hadoop/common/*:$installdir/hadoop313/share/hadoop/hdfs/*:$installdir/hadoop313/share/hadoop/hdfs/lib/*:$installdir/hadoop313/share/hadoop/mapreduce/*:$installdir/hadoop313/share/hadoop/mapreduce/lib/*:$installdir/hadoop313/share/hadoop/yarn/*:$installdir/hadoop313/share/hadoop/yarn/lib/*</value></property>" $val3
    sed -i '19a\  <property><name>mapreduce.framework.name</name><value>yarn</value><description>job执行框架: local, classic or yarn</description><final>true</final></property>' $val3    


    echo '--------yarn-site.xml--------'
    val4="$installdir/hadoop313/etc/hadoop/yarn-site.xml"
    sed -i '15a\  <property><name>yarn.nodemanager.vmem-check-enabled</name><value>false</value></property>' $val4
    sed -i "15a\  <property><name>yarn.nodemanager.log-dirs</name><value>$installdir/hadoop313/yarndata/log</value></property>" $val4
    sed -i "15a\  <property><name>yarn.nodemanager.local-dirs</name><value>$installdir/hadoop313/yarndata/yarn</value></property>" $val4
    sed -i '15a\  <property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property>' $val4
    sed -i "15a\  <property><name>yarn.nodemanager.webapp.address</name><value>${hostname}:8042</value></property>" $val4
    sed -i "15a\  <property><name>yarn.nodemanager.address</name><value>${hostname}:8050</value></property>" $val4
    sed -i "15a\  <property><name>yarn.nodemanager.localizer.address</name><value>${hostname}:8040</value></property>" $val4
    sed -i '15a\  <property><name>yarn.resourcemanager.scheduler.class</name><value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value></property>' $val4
    sed -i '15a\  <property><name>yarn.resourcemanager.connect.retry-interval.ms</name><value>20000</value></property>' $val4

    echo '--------workers---------'
    sed -i "s/localhost/$hostname/g" "$installdir/hadoop313/etc/hadoop/workers"

    echo '--------配置hadoop环境变量--------'
    echo '#HADOOP_HOME' >> /etc/profile
    echo 'export HADOOP_HOME=/opt/soft/hadoop313' >> /etc/profile
    echo 'export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/lib' >> /etc/profile
    echo 'export HDFS_NAMENODE_USER=root' >> /etc/profile
    echo 'export HDFS_DATANODE_USER=root' >> /etc/profile
    echo 'export HDFS_SECONDARYNAMENODE_USER=root' >> /etc/profile
    echo 'export HDFS_JOURNALNODE_USER=root' >> /etc/profile
    echo 'export HDFS_ZKFC_USER=root' >> /etc/profile
    echo 'export YARN_RESOURCEMANAGER_USER=root' >> /etc/profile
    echo 'export YARN_NODEMANAGER_USER=root' >> /etc/profile
    echo 'export HADOOP_MAPRED_HOME=$HADOOP_HOME' >> /etc/profile
    echo 'export HADOOP_COMMON_HOME=$HADOOP_HOME' >> /etc/profile
    echo 'export HADOOP_HDFS_HOME=$HADOOP_HOME' >> /etc/profile
    echo 'export HADOOP_YARN_HOME=$HADOOP_HOME' >> /etc/profile
    echo 'export HADOOP_INSTALL=$HADOOP_HOME' >> /etc/profile
    echo 'export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native' >> /etc/profile
    echo 'export HADOOP_LIBEXEC_DIR=$HADOOP_HOME/libexec' >> /etc/profile
    echo 'export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop' >> /etc/profile

    source /etc/profile
    hadoop namenode -format
fi

echo 'auto install end'
 

按“:wq"退出

3.执行shell脚本

. autoinstall.sh

4.启动hadoop
start-all.sh

5.启动historyserver

mr-jobhistory-daemon.sh start historyserver

6.浏览器测试
http://192.168.119.138:19888/jobhistory

http://192.168.119.138:8088

http://192.168.119.138:9870

7、关闭hadoop

stop-all.sh [今天暂时用不到]

更多推荐