hadoop搭建过程(踩坑版)
前提
Centos7 + hadoop2.6.0 + jdk1.8.0_261 + ssh
推荐工具:vmware虚拟机、winscp.exe、putty.exe
我把所有的文件都分享到了百度网盘,需要的朋友可以下载.
主线
jdk1.8
0x01
将jdk文件下载好后,移动至linux下(你想要保存的路径下)
0x02
putty.exe连接centos
0x03
进入centos后,更改环境配置
注意红框的地方,就是0x01中,你将jdk放入的地方
1 | export JAVA_HOME=/usr/local/src/jdk1.8.0_261 |
0x04
验证是否成功
ssh配置
原理:Hadoop运行过程中需要管理远端Hadoop守护进程,在Hadoop启动以后,NameNode是通过SSH(Secure Shell)来启动和停止各个DataNode上的各种守护进程的。这就必须在节点之间执行指令的时候是不需要输入密码的形式,故我们需要配置SSH运用无密码公钥认证的形式,这样NameNode使用SSH无密码登录并启动DataName进程,同样原理,DataNode上也能使用SSH无密码登录到NameNode.
0x01
1 | [root@localhost ~]# ssh-keygen |
0x02
更改文件的权限(这一步我觉得无所谓,但是,安全起见,还是把.ssh文件夹改为700,authorized_keys文件改为600比较好)
0x03
验证ssh登陆不需要密码
hadoop
0x01
将hadoop文件(确保完整性)复制到centos7中
0x02
配置hadoop环境
vim /etc/profile
1 | export HADOOP_HOME=/usr/local/src/hadoop |
0x03
验证hadoop环境是否配置好
0x04
更改配置文件:core-site.xml、hdfs-site.xml、mapred-site.xml(这个文件如果没有,那就复制mapred-site.xml.template
并改名为mapred-site.xml
“>、yarn-site.xml、slaves
(路径为/usr/local/src/hadoop/etc/hadoop/)
core-site.xml
1 | <configuration> |
注意:
标识1:这个路径是你hadoop的路径,也和你的环境变量路径应该是一样的
标识2:这个文件需要你在hadoop路径下创建(无需考虑权限问题)
hdfs-site.xml
1 | <configuration> |
mapred-site.xml
1 | <configuration> |
yarn-site.xml
1 | <configuration> |
slaves
1 | hadoop |
配置完成
0x05
hdfs namenode -format
格式化HDFS文件系统
0x06
cd /usr/local/src/hadoop/sbin
./start-all.sh
运行脚本,即可完成
0x07
jps
查看是否存在进程
1 | [root@localhost sbin]# jps |
打开浏览器,验证是否成功访问
配置局域网也可访问
题外话:虚拟机搭建的话,因为IP地址是自动分配的,所以有时候会出现IP地址变更的情况,所以我建议改成静态IP
如果要配置局域网也可访问,就涉及到linux的防火墙功能.
很简单,只需要关闭防火墙就行.
1 | systemctl stop firewalld.service && systemctl disable firewalld.service |
副本
此副本不考虑后期安全性,只是初学者尽快解决问题的快捷办法,大佬请绕道
注意:建议每次更改配置之前,先进入/usr/local/src/hadoop/sbin
中,执行stop-all.sh
停止hadoop服务,再进行更改,更改完成后,执行start-all.sh
开启hadoop服务.
踩坑一
当我运行hdfs时,出现了这种情况
查看问题可以发现,是hadoop给的权限不够
参考:
解决方案:
cd /usr/local/src/hadoop/bin
chmod 777 *
over
修改后参考:
踩坑二
当我再一次运行hdfs namenode -format
时,出现了这个
解决方案:
cd /usr/local/src/jdk1.8.0_261/bin/
chmod 777 *
参考:
修改后参考:
踩坑三
执行start-all.sh
老方法,直接chmod 777 *
踩坑四
执行start-all.sh
这里说的是它的java环境未设置
问题出在/usr/local/src/hadoop/bin/yarn
解决方案:
直接更改为绝对路径
踩坑五
再执行start-all.sh
解决方案:
将$JAVA_HOME、$HADOOP_HOME配置到.bashrc
、.bash_profile
中
并更新配置source .bashrc
、source .bash_profile
踩坑六
解决方案:
1.查看centos的IP地址:ifconfig
更改/etc/hostname
、/etc/hosts
如下
未完,待续