文章目录

  • 1.事前准备
  • 2.主机互联(namenode和datanode都做)
  • 2.1 创建虚拟机
  • 2.2 配置网络
  • 2.2.1寻找空闲IP地址
  • 2.2.2配置ifcfg-eno16777736
  • 2.2.3 pc端ssh登录linux
  • 2.3 实现相互免密登录(namenode和datanode都做)
  • 2.3.1修改主机名及主机配置文件
  • 2.3.1生成公钥实现免密登录
  • 3.配置java jdk(namenode和datanode都做)
  • 3.1winSCP上传java
  • 3.2 配置全局变量
  • 4.配置Hadoop(datanode和namenode分开)
  • 4.1主节点配置 (namenode做)
  • 4.1.1winSCP上传到software目录
  • 4.1.2 修改Hadoop配置文件
  • 4.1.2.1 core-site.xml
  • 4.1.2.2 hadoop-env.sh
  • 4.1.2.3 hdfs-site.xml
  • 4.1.2.4 mapred-site.xml
  • 4.1.2.5 slaves
  • 4.1.2.6yarn-site.xml
  • 4.1.3 上传至Linux
  • 4.1.3 打包Hadoop分发至datanode
  • 4.2 分节点配置 (datanode做)
  • 4.3 启动集群(namenode做)
  • 5.如何检查错误
  • 5.1jdk是否安装及是否为全局变量
  • 5.2是否互联互通
  • 5.3检查免密登录
  • 5.4hadoop的配置文件
  • 6.常见问题和解决方案
  • 6.1 hdfs namenode -format失败
  • 6.2 hdfs dfsadmin -report全为0


1.事前准备

Hadoop,说白了就是让我们计算机的算力可以进行分散,小唐这个月的搭建是真的,啊啊啊啊啊,为了让后人避免踩坑,以及后续自己也可以回来看看,就简单的说一下自己的搭建流程。
咱们首先准备好这些软件

1. VMware
2. CentOS-7-x86_64
3. hadoop-2.7.3.tar(Hadoop的安装文件)
4. jdk-8u65-linux-x64.t.gz(hadoop是基于java的,所以要有java的jdk)
5. SSH(远程连接工具)
6. winSCP(远程传输工具)

当然,小唐也帮大家全都整理出来了,大家可以直接通过网盘自行下载

链接:https://pan.baidu.com/s/1IAOofQIrLV8s4k_5K-44YA 
提取码:s6ly

说明,因为这里涉及到多台计算机的共同操作,对于主节点namenode 整篇文章照做,对于datanode节点,除了Hadoop的配置,其他照做

2.主机互联(namenode和datanode都做)

2.1 创建虚拟机

hadoop环境怎么搭建 hadoop环境搭建图_小白


hadoop环境怎么搭建 hadoop环境搭建图_linux_02


hadoop环境怎么搭建 hadoop环境搭建图_大数据_03


hadoop环境怎么搭建 hadoop环境搭建图_linux_04

hadoop环境怎么搭建 hadoop环境搭建图_大数据_05

hadoop环境怎么搭建 hadoop环境搭建图_hadoop环境怎么搭建_06


hadoop环境怎么搭建 hadoop环境搭建图_大数据_07

hadoop环境怎么搭建 hadoop环境搭建图_linux_08

hadoop环境怎么搭建 hadoop环境搭建图_linux_09


hadoop环境怎么搭建 hadoop环境搭建图_hadoop环境怎么搭建_10


hadoop环境怎么搭建 hadoop环境搭建图_hadoop_11

hadoop环境怎么搭建 hadoop环境搭建图_linux_12


我们稍等一会,然后就可以看到我们的系统了!

hadoop环境怎么搭建 hadoop环境搭建图_大数据_13

2.2 配置网络

在这里说一下原理,原理就是让我们的主机和所有部署的虚拟机处于同一个网段下,然后我们的主机可以去连我们的虚拟机,我们虚拟机可以去连我们的主机,我们虚拟机之间也可以相互连接。实现了这一步,我们就可以在主机通过我们的ssh软件来对虚拟机进行访问了(只要虚拟机开着,都是这一个wifi,所有电脑都可以连你的虚拟机)

2.2.1寻找空闲IP地址

在windows里面,我们连上自己的wifi,win+r然后打开咱们的cmd窗口

hadoop环境怎么搭建 hadoop环境搭建图_hadoop_14


输入ipconfig在这里可以看到自己所有的网段配置信息

hadoop环境怎么搭建 hadoop环境搭建图_hadoop环境怎么搭建_15


咱们去找到无线局域网适配器 WLAN

hadoop环境怎么搭建 hadoop环境搭建图_linux_16


这个就是我们等会要用到的信息了,我们可以我现在是处于

192.168.2.6

这一个网段下,也就是我自己的电脑的IP地址(IP地址不可以重复,重复会引起冲突)

然后我们ping 一下

hadoop环境怎么搭建 hadoop环境搭建图_小白_17


很明显,因为我现在的这台电脑在使用192.168.2.6这个ip所有他是会有回应的,但是为了让IP地址不重复,我们就要在这个网段下找没有人使用的

我的IP是192.168.2.6,那么我就找192.168.2.***(随便一个不超过255的数)
如果你的IP是172.20.43.5,那么你就找172.20.43.***(随便一个不超过255的数)

hadoop环境怎么搭建 hadoop环境搭建图_hadoop环境怎么搭建_18


如果出现无法访问目标主机,那么恭喜你找到了,这个位置就是没有人使用的,也就是我们说的空闲ip,小唐选取了这两个来作为自己虚拟机分配的IP,这个ip我们先记住 (如果换了WiFi那么我们的ip也是会发生改变的)

192.168.2.125
192.168.2.126(这个是另外一台电脑的为了后面演示,我配置了两台虚拟机,每一个虚拟机都要分配一个IP地址)

2.2.2配置ifcfg-eno16777736

我们首先先进入这个文件夹

cd /etc/sysconfig/network-scripts

然后输入ls

hadoop环境怎么搭建 hadoop环境搭建图_hadoop环境怎么搭建_19


就可以看到我们的这个文件了,使用vi对他进行编辑

vi ifcfg-eno16777736

hadoop环境怎么搭建 hadoop环境搭建图_hadoop环境怎么搭建_20


注意:先按一下字母i(就是键盘上面的)进入编辑模式

hadoop环境怎么搭建 hadoop环境搭建图_大数据_21


上面的配置和俺一样,后面的依据每一个的IP地址不同,是要发生改变的

hadoop环境怎么搭建 hadoop环境搭建图_linux_22

hadoop环境怎么搭建 hadoop环境搭建图_小白_23


按键盘ESC(一般来说都在左上角)退出编译模式,然后输入

:wq

hadoop环境怎么搭建 hadoop环境搭建图_hadoop环境怎么搭建_24


回车退出后重启,输入

service network restart

hadoop环境怎么搭建 hadoop环境搭建图_大数据_25


出现了,这个我们就基本配置好了,如果报错,请检查,你写得有没有和小唐一样,字母呀啥的

然后我们返回我们主机,再去ping一下我们现在配置好的192.168.2.125

hadoop环境怎么搭建 hadoop环境搭建图_小白_26


我们的主机就可以访问到我们的虚拟机啦,然后我们也可以用我们的远程软件ssh直接去访问虚拟机,如果还是一样的,请我们去检查一下有没有开网络防火墙,还有就是我们的网络形式是不是桥接

2.2.3 pc端ssh登录linux

hadoop环境怎么搭建 hadoop环境搭建图_大数据_27


hadoop环境怎么搭建 hadoop环境搭建图_大数据_28


输入我们用户的密码

hadoop环境怎么搭建 hadoop环境搭建图_大数据_29


hadoop环境怎么搭建 hadoop环境搭建图_小白_30

2.3 实现相互免密登录(namenode和datanode都做)

这一部分是为我们后续hadoop的实现打好基础,配置尤其重要,在这里要注意hostname和hosts里面的名字相同(小唐之前应为这个搞了好久)

2.3.1修改主机名及主机配置文件

修改咱们的主机名(修改完之后,不会马上显示)

vi /etc/hostname

还是一样的,先输入字母i进入编辑模式,然后改名,在输入Esc退出编辑模式,输入:wq保存

hadoop环境怎么搭建 hadoop环境搭建图_大数据_31


hadoop环境怎么搭建 hadoop环境搭建图_大数据_32


一般如果是主节点都叫做namenode,分结点就叫做datanode1,datanode2,datanode3,然后我们再将我们的ip地址和修改后的主机名写入hosts

vi /etc/host

hadoop环境怎么搭建 hadoop环境搭建图_linux_33


这样之后,我们ping的时候,就可以直接使用对方的主机名啦!!!

hadoop环境怎么搭建 hadoop环境搭建图_hadoop_34

2.3.1生成公钥实现免密登录

关闭我们的防火墙

systemctl stop firewalld.service

先回到最开始的目录

cd /

执行

ssh-keygen -t rsa

然后一直按回车

hadoop环境怎么搭建 hadoop环境搭建图_大数据_35


就可以看到我们现在生成的公钥和私钥了,然后我们将我们的公钥传到对方的主机上面

这里注意,我们的公钥和私钥只生产一次!!!

这里注意,我们的公钥和私钥只生产一次!!!

这里注意,我们的公钥和私钥只生产一次!!!

如果生成多次请删除所有文件,重新生成

ssh-copy-id root@datanode
 ssh-copy-id root@你另外一台电脑的主机名(hosts里面的)

hadoop环境怎么搭建 hadoop环境搭建图_大数据_36


hosts里面我们写了几个,我们就重复操作几次

这里注意,如果你是namenode节点,那么你还需要自己可以免密登录你自己

ssh datanode
ssh XXX(你要登录的主机名)

hadoop环境怎么搭建 hadoop环境搭建图_linux_37


如上图所示,我们就可以免密登录到我们的datanode节点了

如果需要退出,使用exit直接退出

exit

3.配置java jdk(namenode和datanode都做)

3.1winSCP上传java

hadoop环境怎么搭建 hadoop环境搭建图_hadoop_38


我们输入我们ip地址和账号密码

hadoop环境怎么搭建 hadoop环境搭建图_大数据_39


hadoop环境怎么搭建 hadoop环境搭建图_linux_40


创建software文件夹

hadoop环境怎么搭建 hadoop环境搭建图_hadoop_41

将我们java的jdk拖入software文件里面

hadoop环境怎么搭建 hadoop环境搭建图_linux_42


我们拖入后,使用

cd /software
ls

再用ls去看我们的目录下有了java的解压包

hadoop环境怎么搭建 hadoop环境搭建图_hadoop_43


解压文件

tar -xzvf jdk-8u65-linux-x64.t.gz

修改文件夹名字

mv jdk1.8.0_65  jdk

hadoop环境怎么搭建 hadoop环境搭建图_hadoop_44

3.2 配置全局变量

进入配置文件

vi /etc/profile

添加配置文件(为了避免hadoop配置,我们在这里就把Hadoop的配置好)

export JAVA_HOME=/software/jdk/
export PATH=.:$PATH:$JAVA_HOME/bin:$PATH

export HADOOP_HOME=/software/hadoop
export PATH=.:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

直接把他们加在最后面

hadoop环境怎么搭建 hadoop环境搭建图_hadoop_45


让配置文件生效

source /etc/profile

检查是否位置完成

java -version

hadoop环境怎么搭建 hadoop环境搭建图_hadoop环境怎么搭建_46


像这样无论在哪里都可以看到我们java的版本就欧克啦!

4.配置Hadoop(datanode和namenode分开)

4.1主节点配置 (namenode做)

4.1.1winSCP上传到software目录

hadoop环境怎么搭建 hadoop环境搭建图_大数据_47


进入到我们software的文件夹,然后查看,再去解压

cd /software
ls
tar -xzvf hadoop-2.7.3.tar.gz

修改下名字

mv hadoop-2.7.3 hadoop

4.1.2 修改Hadoop配置文件

在小唐的配置文件里面,有一个Hadoop配置用例,作为参考,我们也在这个基础上面进行修改,在window上面修改,然后再通过winspc上传到Linux

hadoop环境怎么搭建 hadoop环境搭建图_大数据_48

4.1.2.1 core-site.xml

hadoop环境怎么搭建 hadoop环境搭建图_linux_49

4.1.2.2 hadoop-env.sh

hadoop环境怎么搭建 hadoop环境搭建图_linux_50

4.1.2.3 hdfs-site.xml

hadoop环境怎么搭建 hadoop环境搭建图_hadoop环境怎么搭建_51

4.1.2.4 mapred-site.xml

hadoop环境怎么搭建 hadoop环境搭建图_hadoop_52

4.1.2.5 slaves

hadoop环境怎么搭建 hadoop环境搭建图_大数据_53

4.1.2.6yarn-site.xml

hadoop环境怎么搭建 hadoop环境搭建图_hadoop_54

4.1.3 上传至Linux

将我们刚刚修改过的所有文件上传至这个目录

/software/hadoop/etc/hadoop

全都选择进行覆盖

hadoop环境怎么搭建 hadoop环境搭建图_小白_55

4.1.3 打包Hadoop分发至datanode

进入到software目录后,对hadoop进行打包

cd /software
tar -czvf hadoop.tar.gz hadoop

hadoop环境怎么搭建 hadoop环境搭建图_小白_56


将其进行分发

scp hadoop.tar.gz datanode:/software
scp hadoop.tar.gz (文件名)   datanode(hosts里面的节点):/software(分发位置)

hadoop环境怎么搭建 hadoop环境搭建图_hadoop_57

4.2 分节点配置 (datanode做)

经过namenode分发之后,我们可以在各自的datanode里面看到

hadoop环境怎么搭建 hadoop环境搭建图_小白_58


我们再对其进行解压

cd /software
tar -zxvf hadoop.tar.gz hadoop

4.3 启动集群(namenode做)

格式化集群

hdfs namenode -format

hadoop环境怎么搭建 hadoop环境搭建图_hadoop_59


启动集群

start-all.sh

hadoop环境怎么搭建 hadoop环境搭建图_hadoop环境怎么搭建_60

jps查看状态

jps

hadoop环境怎么搭建 hadoop环境搭建图_hadoop环境怎么搭建_61

查看集群报告

hdfs dfsadmin -report

hadoop环境怎么搭建 hadoop环境搭建图_linux_62

停止集群报告

stop-all.sh

5.如何检查错误

5.1jdk是否安装及是否为全局变量

5.2是否互联互通

需要我每一台主机可以ping通我们hosts里面的主机名
Namendoe
Datanodea
Datanodeb
Datanodec

5.3检查免密登录

特别是namenode节点到namenode节点
还有namenode节点到其他的datanode节点

ssh xxx(主机名)

5.4hadoop的配置文件

我们主机名 hosts 还有slaves名字是否一致(主要对于datanode来说),我们主节点的名字有没有修改

6.常见问题和解决方案

6.1 hdfs namenode -format失败

那是我们格式化多次,我们需要对我们每一个节点生成的格式化文件进行删除,详见4.1.2.1core-site.xml需对里面那个路劲全删掉

6.2 hdfs dfsadmin -report全为0

这个的原因是因为我们hostname和我们datanode主机名不一致导致的,比如我现在有三台
IP                  主机名
172.2.111.10        namendoe
172.2.111.11        datandoe1
172.2.111.12        datandoe2
172.2.111.13        datandoe3
然后我为了省事在hosts这样写
172.2.111.10        namendoe
172.2.111.11        dn1
172.2.111.12        dn2
172.2.111.13        dn3
然后在slaves这样写
dn1
dn2
dn3
就会出现这个错误,我们直接修改我们的主机名就可以了,全改成一样的