博客 从零开始Hadoop安装和配置,图文手把手教你,定位错误(已部署成功)

从零开始Hadoop安装和配置,图文手把手教你,定位错误(已部署成功)

   数栈君   发表于 2024-04-15 18:03  51  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/1-bvzJBpRVCsgslOkYP26zA?pwd=yu9a
提取码:yu9a
--来自百度网盘超级会员V4的分享
1
2
3
说明,因为这里涉及到多台计算机的共同操作,对于主节点namenode 整篇文章照做,对于datanode节点,除了Hadoop的配置,其他照做,如果配置主机数为多太,只需在后更改hadoop配置文件即可

2.主机互联(namenode和datanode都做)
2.1 创建虚拟机

















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


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

2.2.1寻找空闲IP地址
在windows里面,我们连上自己的wifi,win+r然后打开咱们的cmd窗口


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

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

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

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

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

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

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

192.168.2.125
192.168.2.126(这个是另外一台电脑的为了后面演示,我配置了两台虚拟机,每一个虚拟机都要分配一个IP地址)
1
2
2.2.2配置ifcfg-eno16777736
我们首先先进入这个文件夹

cd /etc/sysconfig/network-scripts
1
然后输入ls

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

vi ifcfg-eno16777736
1

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


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



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

:wq
1

回车退出后重启,输入

service network restart
1

出现了,这个我们就基本配置好了,如果报错,请检查,你写得有没有和小唐一样,字母呀啥的
然后我们返回我们主机,再去ping一下我们现在配置好的192.168.2.125

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

如果桥接模式下我们ping不通,我们也可以选择NAT模式来尝试一下
桥接换NAT

为了不影响阅读体验,文章末尾给出了检查方法

2.2.3 pc端ssh登录linux(xshell也可以)


输入我们用户的密码



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

2.3.1修改主机名及主机配置文件
修改咱们的主机名(修改完之后,不会马上显示)

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


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

vi /etc/hosts
1

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


2.3.1生成公钥实现免密登录
关闭我们的防火墙

systemctl stop firewalld.service
1
先回到最开始的目录

cd /
1
执行

ssh-keygen -t rsa
1
然后一直按回车

就可以看到我们现在生成的公钥和私钥了,然后我们将我们的公钥传到对方的主机上面
这里注意,我们的公钥和私钥只生产一次!!!
这里注意,我们的公钥和私钥只生产一次!!!
这里注意,我们的公钥和私钥只生产一次!!!
如果生成多次请删除所有文件,重新生成

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

hosts里面我们写了几个,我们就重复操作几次操作,将主节点的生产的密钥传到我们的分结点
这里注意,如果你是namenode节点,那么你还需要自己可以免密登录你自己

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

如上图所示,我们就可以免密登录到我们的datanode节点了
如果需要退出,使用exit直接退出

exit
1
3.配置java jdk(namenode和datanode都做)
3.1winSCP上传java

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


创建software文件夹


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

我们拖入后,使用

cd /software
ls
1
2
再用ls去看我们的目录下有了java的解压包

解压文件

tar -xzvf jdk-8u65-linux-x64.t.gz
1
修改文件夹名字

mv jdk1.8.0_65 jdk
1


3.2 配置全局变量
进入配置文件

vi /etc/profile
1
添加配置文件(为了避免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
1
2
3
4
5
直接把他们加在最后面

让配置文件生效

source /etc/profile
1
检查是否位置完成

java -version
1

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

4.配置Hadoop(datanode和namenode分开)
4.1主节点配置 (namenode做)
4.1.1winSCP上传到software目录

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

cd /software
ls
tar -xzvf hadoop-2.7.3.tar.gz
1
2
3
修改下名字

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


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
将我们刚刚修改过的所有文件上传至这个目录

/software/hadoop/etc/hadoop
1
全都选择进行覆盖


4.1.3 打包Hadoop分发至datanode
进入到software目录后,对hadoop进行打包

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

将其进行分发

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


4.2 分节点配置 (datanode做)
经过namenode分发之后,我们可以在各自的datanode里面看到

我们再对其进行解压

cd /software
tar -zxvf hadoop.tar.gz hadoop
1
2
4.3 启动集群(namenode做)
格式化集群

hdfs namenode -format
1

启动集群

start-all.sh
1


jps查看状态

jps
1


查看集群报告

hdfs dfsadmin -report
1


停止集群报告

stop-all.sh
1
5.如何检查错误
5.1jdk是否安装及是否为全局变量
java -version
1
查看是否可以现实java的信息,如果虚拟机java没有报错,但是我们在执行Hadoop时候java报错了,别忘记了在我们**hadoop-env.sh(详见4.1.2.2)**文件处,也有个java需要配置。


/software/jdk/bin/java:没有那个文件或目录
1
5.2是否互联互通
需要我每一台主机可以ping通我们hosts里面的主机名
Namendoe
Datanodea
Datanodeb
Datanodec

5.3检查免密登录
特别是namenode节点到namenode节点
还有namenode节点到其他的datanode节点

ssh xxx(主机名)
1
5.4hadoop的配置文件
我们主机名 hosts 还有slaves名字是否一致(主要对于datanode来说),我们主节点的名字有没有修改

6.常见问题和解决方案
6.1 ifcfg-eno16777736 ping不通外网,外面ping不通虚拟机
1.在虚拟机内ping 外网

ping wwww.baidu.com
1

前面IP请检查是否为你修改的IP,如果没有就是你没有ifcfg-eno16777736没有配置好

2.点击你的虚拟机设置,检查网络是否为桥接(详见 2.1 创建虚拟机)

3.检查在物理机(windows上),是否存在VM网络配置问题,一般vm没删干净和配置出错会有这个问题
在桌面空白处右击,点击个性化,进入设置,搜索控制面板

点击查询网络状态和任务


检查是否为感叹号

如果有请找到,VM的安装包,在管理员模式下运行,尝试修复,修复后再次检查,如果还不行,直接删除再重新安装也是可以的(记住你装虚拟机的位置,你的虚拟机不会被删除)

6.2 hdfs namenode -format失败
那是我们格式化多次,我们需要对我们每一个节点生成的格式化文件进行删除
详见4.1.2.1 core-site.xml需对里面那个路劲全删掉
1
2
(如果里面没有重要数据,直接全都删除,重新初始化即可,如果有需要打开内置文件对版本号进行手动修改)
结点信息存储在core-site.xml文件中


1.删除两台主机“/data/hadoop”里面的内容
rm -rf /data/hadoop
2.重新格式化
hadoop namenode -format
4.启动hadoop
start-all.sh
1
2
3
4
5
6
6.3 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
就会出现这个错误,我们直接修改我们的主机名就可以了,全改成一样的
1

免责申明:
本文系转载,版权归原作者所有,如若侵权请联系我们进行删除!


《数据治理行业实践白皮书》下载地址:https://fs80.cn/4w2atu
《数栈V6.0产品白皮书》下载地址:https://fs80.cn/cw0iw1
想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:https://www.dtstack.com/?src=bbs
同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术群」,交流最新开源技术信息,群号码:30537511,项目地址:https://github.com/DTStack

0条评论
社区公告
  • 大数据领域最专业的产品&技术交流社区,专注于探讨与分享大数据领域有趣又火热的信息,专业又专注的数据人园地

最新活动更多
微信扫码获取数字化转型资料
钉钉扫码加入技术交流群