文章目录
前言
本文主要讲Hadoop运行环境(完全分布式)搭建。三种完全分布式客户机如下:
Hadoop运行模式有三种:本地、伪分布、完全分布模式。
运行模式 | 说明 |
---|---|
本地模式 | 数据存储在linux本地 |
伪分布模式 | 数据存储在HDFS |
完全分布模式 | 数据存储在HDFS 多台服务器工作 |
一、模板虚拟机环境准备
1、安装模板虚拟机,请参考链接:https://blog.csdn.net/sodaloveer/article/details/139795882
模板虚拟机信息:
- IP地址:192.168.10.100
- 主机名称:QF
- 内存:2G
- 硬盘:80G
2、安装XShell远程访问机,请参考链接:https://blog.csdn.net/sodaloveer/article/details/140122338
3、QF虚拟机配置要求如下(本文Linux系统版本以Linux version 3.10.0-957.el7.x86_64为例)
- 使用 yum 安装前,先执行"ping www.baidu.com"命令测试下虚拟机联网情况。
如果Linux安装的是最小系统版本,还需要安装"net-tool"工具、"vim"编辑器;如果安装的是Linux桌面标准版,可以跳过,直接执行命令安装epel-release。
- 安装 net-tool 工具,执行"yum install -y net-tools "命令。
net-tool:工具包集合,包含ifconfig等命令。
- 安装 vim 编辑器,执行"yum install -y vim"命令。
- 安装 epel-release ,执行"yum install -y epel-release"命令。
4、关闭防火墙,关闭防火墙开机自启
- 执行"systemctl stop firewalld"命令。
- 执行"systemctl disable firewalld.service"命令。
5、创建atwqf用户,并修改atwaf用户的密码
- 执行"useradd atwqf"命令。
- 执行"passwd w574520."命令。
6、配置atwqf用户具有root权限,方便后期加sudo执行root权限命令。
- 执行"vim /etc/sudoers"命令,打开文件。
修改/etc/sudoers文件,在%wheel这行下面添加一行:
atwqf ALL=(ALL) NOPASSWD:ALL
注意:atwqf 这一行不要直接放到root下面,因为所有用户都属于wheel组,你先配置了atwqf具有免密功能,但是程序执行到%wheel行时,该功能又被覆盖回需要密码,所以atwqf要入放到%wheel行下面。
7、在/opt目录下面创建文件夹,并修改所属主和所属组。
7.1. 在/opt目录下创建module、software文件夹。
- 执行"mkdir /opt/module"命令。
- 执行"mkdir /opt/software"命令。
7.2. 修改module、software文件夹的所有者和所属组均为atwqf用户。
- 执行"mkdir atwqf:atwqf /opt/module"命令。
- 执行"mkdir atwqf:atwqf /opt/software"命令。
7.3. 查看module、software文件夹的所有者和所属组。
- 执行"cd /opt/"命令。
- 执行"ll"命令。
8、卸载虚拟机自带的JDK,如果你的虚拟机是最小化安装可以直接跳过这一步,不需要执行。
- 执行"rmp -qa | grep -i java | xargs -nl rpm -e --nodes"命令。
9、重启虚拟机
- 执行"reboot"命令。
二、克隆虚拟机(以hadoop102为例)
利用模板机QF,克隆三台虚拟机:hadoop102、hadoop103、hadoop104,下面以克隆hadoop102为例。
1、右键"管理"->“克隆”。
2、选择"创建完整克隆"。
3、填写克隆虚拟机的名称和存放位置。
4、重复上面克隆hadoop102的步骤,完成hadoop103、hadoop104的克隆。
5、如果想要彻底删除克隆机,右键"管理"->“从磁盘中删除”。
右键"移除"只是页面上移除。右键"打开”,选择到对应的文件夹就可以恢复了。(参考链接:如何把vmware中已经移除的虚拟机恢复)
三、修改克隆机的IP
1、修改克隆虚拟机的静态IP。
- 执行"vim /etc/sysconfig/network-scripts/ifcfg-ens32"命令。
主要是将IPADDR从"192.168.40.100"改成"192.168.40.102"(以hadoop102为例),同理,在hadoop103克隆机上要改成"192.168.40.103",在hadoop104克隆机要改成"192.168.40.104"。
2、修改克隆机主机名。
- 执行"vim /etc/hostname"命令。
将"QF"改成"hadoop102"(以hadoop102为例),同理,在hadoop103克隆机上要改成"hadoop103",在hadoop104克隆机上要改成"hadoop104"。
3、配置Linux克隆机主机名称映射host文件,执行"vim /etc/hosts"命令打开/etc/hosts。添加下面内容:
- 192.168.40.100 qf
- 192.168.40.101 hadoop101
- 192.168.40.102 hadoop102
- 192.168.40.103 hadoop103
- 192.168.40.104 hadoop104
4、查看Linux虚拟机的"虚拟网络编辑器"
- 点击"编辑"->“虚拟网络编辑器”->“VMnet8”。
- 点击"更改设置”进入编辑。
- 点击"VMnet8",设置"子网IP",点击 “NAT 设置” 进入设置 “网关IP”。
5、查看Windows系统适配器 VMware Network Adapter VMnet8的IP地址。
- “设置”->“网络和Internet”->“更改适配器选项”
- 右键"VMware Network Adapter VMnet8"->“属性”
- "Internet 协议版本4(TPC/IPv4)"的属性
- 设置"默认网关"和"DNS服务器地址"。
保证Linux系统ifcfg-ens32文件中IP地址,虚拟网络编辑器地址和Windows系统VM8网络IP地址相同。
6、重启克隆机hadoop102,执行"reboot"命令。
7、修改Windows的主机映射文件(hosts文件),进入"C:\Windows\System32\drivers"路径hosts,添加如下内容:(提示:操作系统是Windows10,先拷贝出来,修改保存以后,再覆盖即可。)
192.168.40.100 qf
192.168.40.101 hadoop101
192.168.40.102 hadoop102
192.168.40.103 hadoop103
192.168.40.104 hadoop104
四、安装JDK
以hadoop102为例。先安装到hadoop102上,再拷贝到hadoop103、hadoop104上。
0、jdk下载地址:https://www.oracle.com/java/technologies/javase/javase8u211-later-archive-downloads.html,下滑找适合项目的jdk版本,尽量下载.tar.gz后缀的方便安装。
1、卸载现有jdk,在进行安装jdk前,一定要确保提前删除了虚拟机自带的jdk。
- 执行”rpm -qa|grep java"命令,查看旧JDK,如果有执行"sudo yum -y remove 要删除jdk的名字"。
2、用XShell传输工具Xftp将JDK导入到/opt/software/文件夹下面。
3、在Linux系统下的opt目录中查看软件包是否导入成功。
- 执行"ll"命令。
4、解压JDK到/opt/module目录下。
- 执行"tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/"命令。
5、查看是否解压成功。
6、配置JDK环境变量。
- 执行"vim /etc/profile.d/my_env.sh"命令新建文件,添加下面内容:
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin- 执行"source /etc/profile"文件,让新的环境变量PATH生效。
7、测试JDK是否安装成功。
- 执行"java -version"命令。
五、安装Hadoop(完全分布式)
以hadoop102为例,再拷贝到hadoop103、hadoop104上。
0、hadoop-3.1.3下载地址:https://archive.apache.org/dist/hadoop/common/hadoop-3.1.3/
1、用XShell传输工具Xftp将hadoop-3.1.3.tar.gz导入到/opt/software/文件夹下面。
2、在Linux系统下的opt目录中查看软件包是否导入成功。
- 执行"ll"命令。
3、解压hadoop-3.1.3.tar.gz到/opt/module目录下。
- 执行"tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/"命令。
4、查看是否解压成功。
5、配置Hadoop添加到环境变量。
- 获取Hadoop安装路径"/opt/module/hadoop-3.1.3"。
- 执行"vim /etc/profile.d/my_env.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"命令,让新的环境变量PATH生效。
6、测试是否安装成功。
- 执行"hadoop version"命令。
7、查看Hadoop目录结构。
- 执行"ll"命令。
重要目录说明:
- bin目录:存放对 Hadoop 相关服务(hdfs,yarn,mapred)进行操作的脚本
- etc目录:Hadoop 的配置文件目录,存放 Hadoop 的配置文件
- lib目录:存放 Hadoop 的本地库(对数据进行压缩解压缩功能)
- sbin目录:存放启动或停止 Hadoop 相关服务的脚本
- share目录:存放 Hadoop 的依赖 jar 包、文档、和官方案例
六、集群常用命令
1、根据上面的安装步骤,现在只有hadoop102这台客户机上安装好jdk和hadoop,因此通过scp命令将hadoop102安装成功的jdk和hadoop拷贝到hadoop103、hadoop104服务器上。如下图:
命令:scp
功能:安全拷贝,可以实现服务器与服务器之间的数据拷贝。
语法:
scp -r $pdir/$fname $user@$host:$pdir/$fname
scp -r 要拷贝的文件路径/名称 目的地用户@主机:目的地路径/名称
在 hadoop102、hadoop103、hadoop104 都已经创建好的/opt/module、 /opt/software 两个目录,并且已经把这两个目录修改为 atwqf:atwqf。
在hadoop102上,
执行"scp -r /opt/module/jdk1.8.0_212 atwqf@hadoop103:/opt/module"命令,将hadoop102中/opt/module/jdk1.8.0_212 目录拷贝到hadoop103 上,
执行"scp -r /opt/module/jdk1.8.0_212 atwqf@hadoop104:/opt/module"命令,将hadoop102中/opt/module/jdk1.8.0_212 目录拷贝到hadoop104 上。
在hadoop102上,
执行"scp -r /opt/modu