安装软件包版本(不同版本安装包配置文件要注意)
安装包可到百度网盘下载
链接:https://pan.baidu.com/s/1vWSMFx1X-_pjkrYWQWI7Ag?pwd=8888
提取码:8888
一、VMware安装centos
二、利用xshell远程连接
(1)远程连接前确保已安装 net-tool 工具包
运行指令:
yum -y install net-tools
yum -y install openssh-server
(2)使用ifconfig查询ip
(3)xshell新建连接
(4)更新软件源、配置软件仓库、安装vim
更新软件源:
yum -y update
配置软件仓库:
yum -y install epel-release
安装vim:
yum -y install vim
(5)关闭防火墙、并禁止开机自启
关闭防火墙:
systemctl stop firewalld
禁止开机自启:
systemctl disable firewalld
执行完的效果:
vim /etc/selinux/config
把 SELINUX=enforcing 改成 SELINUX=disabled
(6)配置静态ip:
vim /etc/sysconfig/network-scripts/ifcfg-ens33
红色部分需要更改或添加
reboot重启生效
重新分配ip后要修改xshell的主机才能重新连接如图:
(7)创建软件包所需文件夹,上传软件包
1. 在/opt 目录下创建 software、modul
mkdir /opt/software
mkdir /opt/module
三、安装jdk及hadoop并配置环境
(1)利用xftp将所需要的软件压缩包上传到、opt/software上
如图上传完成关闭xftp即可
(2)安装jdk
cd /opt/software
解压到/opt/module
tar -zxvf jdk-8u301-linux-x64.tar.gz -C /opt/module/
检查是否安装完成
ls /opt/module
新建 my_path.sh 文件,因为后期我们的环境比较多,所以单独放在一个文件中
vim /etc/profile.d/my_path.sh
写入以下内容
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_301
export PATH=$PATH:$JAVA_HOME/bin
使配置生效并检查
source /etc/profile
(3)安装hadoop
进入安装包所在路径
cd /opt/software
解压并检查
tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/
cd /opt/module/
ll
添加环境变量使配置生效
vim /etc/profile.d/my_path.sh
#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
source /etc/profile
四、配置完全分布式模式
(1)克隆出两个安装了软件包的master结点
安装上面步骤再克隆一个
克隆出来的两台虚拟机配置与master结点的一模一样。
(2)修改克隆出来的两台虚拟机的主机名和ip地址并连接xshell
其中一个命名为slave1另一台为slave2
修改两台虚拟机的IP地址只需更改红色部分
vim /etc/sysconfig/network-scripts/ifcfg-ens33
slave1
slave2
目前
master:192.168.225.140
slave1:192.168.225.141
slave2:192.168.225.142
reboot重启使配置生效并连接xshell
将这段代码加入三个结点上
注意三个结点都要
vim /etc/hosts
192.168.225.140 master
192.168.225.141 slave1
192.168.225.142 slave2
reboot重启生效
(3)配置集群
先只在master结点配置后面分配到其他两个结点上
修改 core-site.xml
cd /opt/module/hadoop-3.1.3/etc/hadoop/
vim core-site.xml
<!-- 指定 NameNode 的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:8020</value>
</property>
<!-- 指定 hadoop 数据的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-3.1.3/data</value>
</property>
<!-- 配置 HDFS 网页登录使用的静态用户为 root -->
<property>
<name>hadoop.http.staticuser.user</name>
<value>root</value>
</property>
修改 hdfs-site.xml
vim hdfs-site.xml
<!-- NameNode web 端访问地址-->
<property>
<name>dfs.namenode.http-address</name>
<value>master:9870</value>
</property>
<!-- SecondaryNameNode web 端访问地址-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>slave2:9868</value>
</property>
<!-- 文件数据副本数 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
修改 yarn-site.xml
vim yarn-site.xml
<!-- 指定 mapreduce 走 shuffle -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定 ResourceManager 的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>slave1</value>
</property>
<!-- 环境变量的继承 -->
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CO
NF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
<!-- 开启日志聚集功能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 设置日志聚集服务器地址 -->
<property>
<name>yarn.log.server.url</name>
<value>http://master:19888/jobhistory/logs</value>
</property>
<!-- 设置日志保留时间为 7 天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
修改 mapred-site.xml
vim mapred-site.xml
<!-- 指定 MapReduce 程序运行在 Yarn 上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<!-- 历史服务器 web 端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
修改works文件,添加以下内容
vim /opt/module/hadoop-3.1.3/etc/hadoop/workers
master
slave1
slave2
注意:该文件中添加的内容末尾不能有空格,不允许有空行
(4)三个结点相互做ssh免密登入
master
ssh master
ssh slave1
ssh slave2
密码就是root密码
生成密匙对
cd /root/.ssh/
ssh-keygen -t rsa
敲三下回车
将公钥拷贝到需要免密登录的机器上
ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2
slave1和slave2结点重复上面的操作
(5)rsync 远程同步工具分发配置
rsync 主要用于备份、同步,书上用的 scp,scp 是通过 ssh 拷贝,即复制粘贴把所有文件都 复制过去,而 rsync,是差异更新,目标主机没有该文件时相当于拷贝,有该文件时则是同 步,保持文件内容一致。
安装rsync(三个结点都要安装)
yum -y install rsync
使用基本语法 rsync -av 要拷贝或同步的文件路径/名称 目的地用户@主机:目的地路径/名称
分发 hadoop 配置(master结点上操作)
rsync -av /opt/module root@slave1:/opt/
rsync -av /opt/module root@slave2:/opt/
分发环境变量(master结点上操作)
rsync -av /etc/profile.d/my_path.sh root@slave1:/etc/profile.d/
rsync -av /etc/profile.d/my_path.sh root@slave2:/etc/profile.d/
(6)启动集群
master结点格式化 NameNod(切记不要重复格式化)
hdfs namenode -format
master结点启动hdfs
start-dfs.sh
报错要在hadoop-env.sh末尾加上下面一段(三个结点都要加上)
vim /opt/module/hadoop-3.1.3/etc/hadoop/hadoop-env.sh
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
添加好后再次启动
slave1结点启动yarn
start-yarn.sh
和hdfs启动一样要在hdaoop/yarn-env.sh末尾加上下面这段(三个结点都要添加)
vim /opt/module/hadoop-3.1.3/etc/hadoop/yarn-env.sh
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
再次启动
效果如下
master
slave1
slave2
启动历史服务器 master
mapred --daemon start historyserver
访问http://192.168.225.140:9870/是web端
这样,完全分布式就搭建成功了