Hadoop 完全分布式安装配置
第一步:下载所需要的安装包
本任务需要使用root用户完成相关配置,安装Hadoop需要配置前置环境。命令中要求使用绝对路径,具体要求如下:
mkdir /opt/software /opt/module
从宿主机/opt目录下将文件hadoop-3.1.3.tar.gz、jdk-8u212-linux-x64.tar.gz复制到容器Master中的/opt/software路径中(若路径不存在,则需新建),将Master节点JDK安装包解压到/opt/module路径中(若路径不存在,则需新建),将JDK解压命令复制并粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下;
cd /opt/software
wget http://10.42.2.8:/jdk/jdk-8u211-linux-x64.tar.gz
wget http://10.42.2.8:/hadoop/hadoop-3.2.4.tar.gz
wget http://10.42.2.8:/spark/spark-3.2.3-bin-hadoop3.2.tgz -P /opt/software
修改容器中/etc/profile文件,设置JDK环境变量并使其生效,配置完毕后在Master节点分别执行“java -version”和“javac”命令,将命令行执行结果分别截图并粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下;
将Master节点JDK安装包解压到/opt/module路径中:
tar -xzf /opt/software/jdk-8u211-linux-x64.tar.gz -C /opt/module
将JDK解压命令截图并提交到对应的任务序号下
修改容器中/etc/profile文件,在文件末添加下面的内容:
# Java环境变量
export JAVA_HOME=/opt/module/jdk1.8.0_211
export PATH=$JAVA_HOME/bin:$PATH
#执行下面的命令使添加的JDK环境变量生效:
source /etc/profile
#配置完毕后在Master节点终端分别执行java -version和javac命令:
java -version
javac
请完成host相关配置,将三个节点分别命名为master、slave1、slave2,并做免密登录,用scp命令并使用绝对路径从Master复制JDK解压后的安装文件到slave1、slave2节点(若路径不存在,则需新建),并配置slave1、slave2相关环境变量,将全部scp复制JDK的命令复制并粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下;
#在master节点创建需要的文件夹
mkdir -p /root/tmpdata /root/dfsdata/{namenode,datanode}
#在Master将Hadoop解压到/opt/module
tar -xzf /opt/software/hadoop-3.2.4.tar.gz -C /opt/module/
#修改节点环境中的/etc/profile文件,在文件末添加下面的内容:
# 添加Hadoop的环境变量
export HADOOP_HOME=/opt/module/hadoop-3.2.4
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
#执行下面的命令使添加的Hadoop环境变量生效:
source /etc/profile
#配置/opt/module/hadoop-3.2.4/etc/hadoop路径下的6个重要的配置文件: core-site.xml,hdfs-site.xml,yarn-site.xml,mapred-site.xml,hadoop-env.sh,workers
下面是添加好的文件的内容:
core-site.xml 使用vim命令编辑文件内容:
cd /opt/module/hadoop-3.2.4/etc/hadoop
vim ./core-site.xml
编辑好的内容如下:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
2. hdfs-site.xml 接下来编辑文件:
vim ./hdfs-site.xml
编辑好的内容如下:
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/root/dfsdata/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/root/dfsdata/datanode</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
3. yarn-site.xml 接下来编辑文件:
vim ./yarn-site.xml
编辑好的内容如下:
<configuration>
<property>
<name>yarn.acl.enable</name>
<value>0</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
4. mapred-site.xml 接下来编辑文件:
vim ./mapred-site.xml
编辑好的内容如下:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
</property>
</configuration>
5. hadoop-env.sh 接下来编辑文件:
vim ./hadoop-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_211
export HADOOP_OS_TYPE=${HADOOP_OS_TYPE:-$(uname -s)}
# hadoop赋权
export HDFS_NAMENODE_USER="root"
export HDFS_DATANODE_USER="root"
export HDFS_SECONDARYNAMENODE_USER="root"
export YARN_RESOURCEMANAGER_USER="root"
export YARN_NODEMANAGER_USER="root"
6. workers 接下来编辑文件:
vim ./workers
编辑好的内容如下:
slave1
slave2
配置节点hosts解析
使用命令查看自己所有节点环境的IP信息:
ip addr show
把所有节点的IP记录下来,将三个节点分别命名为master、slave1、slave2,取1个IP作为master节点,其余做slave节点。
修改容器中/etc/hosts文件,根据自己的节点的IP信息,在文件末添加类似下面的内容:
10.42.120.12 master
10.42.120.46 slave1
10.42.77.171 slave2
配置及节点ssh免密登录
在master节点使用命令生成key,需要填入的内容直接留空即可
ssh-keygen -b 4096
使用下面的命令把master节点的公钥拷贝到包括master节点的所有的节点,默认密码为root
ssh-copy-id -i ~/.ssh/id_rsa.pub root@master
ssh-copy-id -i ~/.ssh/id_rsa.pub root@slave1
ssh-copy-id -i ~/.ssh/id_rsa.pub root@slave2
在Master将Hadoop解压到/opt/module(若路径不存在,则需新建)目录下,并将解压包分发至slave1、slave2中,其中master、slave1、slave2节点均作为datanode,配置好相关环境,初始化Hadoop环境namenode,将初始化命令及初始化结果截图(截取初始化结果日志最后20行即可)粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下;
在slave1、slave2节点创建需要的文件夹
mkdir /opt/software /opt/module
用scp命令并使用绝对路径从Master复制Hadoop解压后的安装文件到slave1、slave2节点
scp -r /opt/module/hadoop-3.2.4 root@slave1:/opt/module/
scp -r /opt/module/hadoop-3.2.4 root@slave2:/opt/module/
用scp命令并使用绝对路径从Master复制JDK解压后的安装文件到slave1、slave2节点
scp -r /opt/module/jdk1.8.0_211 root@slave1:/opt/module/jdk1.8.0_211
scp -r /opt/module/jdk1.8.0_211 root@slave2:/opt/module/jdk1.8.0_211
可使用下面命令分发配置好的profile文件
scp -r /etc/profile root@slave1:/etc/
scp -r /etc/profile root@slave2:/etc/
记得分别在slave1、slave2节点的终端执行下面的命令使profile文件生效
source /etc/profile
在master节点的终端使用下面的命令初始化Hadoop环境namenode
hdfs namenode -format