VMware+centos7搭建hadoop集群

安装软件包版本(不同版本安装包配置文件要注意)

安装包可到百度网盘下载

 链接:https://pan.baidu.com/s/1vWSMFx1X-_pjkrYWQWI7Ag?pwd=8888 
提取码:8888

 一、VMware安装centos

http://t.csdn.cn/jYdpw

二、利用xshell远程连接

(1)远程连接前确保已安装 net-tool 工具包

运行指令:

yum -y install net-tools
yum -y install openssh-server

(2)使用ifconfig查询ip

 (3)xshell新建连接

 

 

扫描二维码关注公众号,回复: 15381410 查看本文章

 

 (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端

​ 这样,完全分布式就搭建成功了 

猜你喜欢

转载自blog.csdn.net/weixin_58183116/article/details/126473399