一、Hadoop是什么
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。
主要解决,海量数据的存储和海量数据的分析计算问题。
Hadoop并不只是单单一个技术,而是一个生态圈,里面包括Spark、Flume、HBase、Kafka、Sqoop、Hive、Oozie、Azkaban、Zookeeper。
二、Hadoop组成
1、Hadoop1.x
①:MapReduce(计算+资源调度)
②:HDFS(数据存储)
③:Common(辅助工具)
2、Hadoop2.x
①:MapReduce(计算)
②:Yarn(资源调度)
③:HDFS(数据存储)
④:Common(辅助工具)
四、Hadoop集群搭建所需工具(链接如下,自行下载)
JDK1.8
Hadoop2.7
三、Hadoop集群配置前期准备
克隆虚拟机(克隆三台,首先配置第一台,剩下两台由于篇幅有限,不再复述,步骤和第一台一样)
在这里插入图片描述
在这里插入图片描述
修改主机名,我设置为hadoop102
hostnamectl set-hostname 你要设置的主机名
关闭防火墙
systemctl stop firewalld.service # 关闭防火墙
systemctl disable firewalld.service # 禁止开机自启
1
1
配置虚拟机网络,可以连通外网和主机
①:修改虚拟机网络为NAT模式
在这里插入图片描述
②:打开虚拟网络编辑器,将我框起来的ip地址和子网掩码记下来,继续点击NAT配设置,同样记下来框起来的,后面要用。在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
③:从这里开始进入root模式,首先使用如下命令进入网络配置,然后按照我的图修改您的配置,请和我保持一致,没有的东西就自己写上,然后按照我的配置。
vim /etc/sysconfig/network-scripts/ifcfg-ens32 #电脑不同最后面的ens32可能不一样,但是就找差不多的就行
在这里插入图片描述
④:重启网络(配置到这里可以ping一下百度之类的,但是还没全部完成,完全按照我的做,应该没问题,我们还需要配置虚拟机之间的连通,所以另外两台虚拟机请按照上面的操作配置。)
systemctl start network.service
⑤:配置和另外两台的连通(我三台分别叫hadoop102、hadoop103、hadoop104)
vim /etc/hosts
在这里插入图片描述
⑥:测试连接,我们分别ping百度、主机、和另外两台虚拟机,如果如下图,则证明配置成功。
在这里插入图片描述
四、Hadoop运行环境搭建
①:在/opt下面新建module和software,分别用来存放安装包和程序
在这里插入图片描述
②:使用连接工具将上面我提供的安装包放入software,然后开始安装jdk,首先卸载之前的jdk,命令如下
rpm -e --nodeps java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64
rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.x86_64
rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.111-2.6.7.8.el7.x86_64
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.111-2.6.7.8.el7.x86_6
③:然后解压jdk到module中
tar -zxvf jdk-8u144-linux-x64.tar.gz -C /opt/module
④:然后配置jdk环境变量,首先获取jdk路径(在解压后的目录运行pwd命令,如下,将这个目录保存下来)
[root@hadoop102 jdk1.8.0_144]$ pwd
/opt/module/jdk1.8.0_1441
⑤:打开/etc/profile文件
vim /etc/profile
⑥:在profile文件末尾添加JDK路径,保存后退出
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_144
export PATH= P A T H : PATH: PATH:JAVA_HOME/bi
⑦:安装hadoop,前面的步骤一样,将安装包解压到module中,然后使用pwd获取路径保存,然后打开/etc/profile文件,在profile文件末尾添加JDK路径,保存后退出。
##HADOOP_HOME
export
HADOOP_HOME=/opt/module/hadoop-2.7.2
export PATH= P A T H : PATH: PATH:HADOOP_HOME/bin
export PATH= P A T H : PATH: PATH:HADOOP_HOME/sbin
⑧:让修改后的文件生效
source/etc/prof ⑨:如下图所示,即生效
在这里插入图片描述
至此,一台机器的前期准备工作已完成,另外两台完全按照一样的步骤操作,按照我的一步一步来,肯定没问题,该踩的坑我都踩过了hh~
五、Hadoop完全分布式集群环境正式搭建
1、编写集群分发脚本xsync
①:在/home/atguigu目录下创建bin目录,并在bin目录下创建xsync文件
mkdir bin
cd bin/
touch xsync
vi xsyn
②:文件内容如下
#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount==0)); then
echo no args;
exit;
fi
#2 获取文件名称
p1=$1
fname=basename $p1
echo fname=$fname
#3 获取上级目录到绝对路径
pdir=cd -P $(dirname $p1); pwd
echo pdir=KaTeX parse error: Expected 'EOF', got '#' at position 6: pdir #̲4 获取当前用户名称 user…host --------------
rsync -rvl p d i r / pdir/ pdir/fname u s e r @ h a d o o p user@hadoop user@hadoophost:$pdir
done
③:修改脚本 xsync 具有执行权限
chmod 777 xsync
④:调用脚本形式:xsync 文件名称
xsync /home/ironmanjay/bin
注:如果将xsync放到/home/atguigu/bin目录下仍然不能实现全局使用,可以将xsync移动到/usr/local/bin目录下。