搭建hadoop集群之采坑记录
该篇文章主要记录我搭建hadoop时遇到的问题,现在越来越觉得不能水博客,不然会把别人给郁闷死。
- 所需要的资源链接,一开始就贴出来方便大家随时打开,随时查阅
hadoop地址:http://mirrors.hust.edu.cn/apache/hadoop/common/
java地址 : https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
参考文章地址:https://www.linuxidc.com/Linux/2017-08/146389.htm
https://chaoge123456.github.io/Hadoop%E5%88%86%E5%B8%83%E5%BC%8F%E9%9B%86%E7%BE%A4%E6%90%AD%E5%BB%BA.html/
https://blog.csdn.net/Source_00/article/details/83031688
https://blog.csdn.net/arlanhon/article/details/19920721
-
安装过程
2.1 安装虚拟机-这个我不写,很简单
2.2 安装Java
安装java也很简单,只是环境变量的配置比较难。我贴上我自己的环境变量配置,大家参考。
sudo gedit ~/.bashrc
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_201
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
source ~/.bashrc
java -version #查看版本
2.3 clone 虚拟机 ,搭建集群最少三台电脑,所以要克隆两次
按照下面的链接进行克隆虚拟机克隆
https://www.linuxidc.com/Linux/2015-03/114989.htm
2.4 修改虚拟机的配置
- hostname
sudo gedit /etc/hostname
三台虚拟机分别修改为:
Master
Slave1
Slave2
- hosts 三台虚拟机都要加入
sudo gedit /etc/hosts
- 新建hadoop组,并加入用户
建立hadoop组,并加入用户,三台都要执行操作
//建立hadoop用户组
sudo groupadd hadoop #建立hadoop用户组
sudo useradd -s /bin/bash -d /home/hduser -m hduser -g hadoop #添加hduser,指定用户目录
sudo passwd hduser #修改hduser用户密码
sudo adduser hduser sudo #赋予hduser管理员权限
su hduser #切换到hduser用户
接下来所有的操作都是在hduser用户下执行
6. 配置免密码登录
链接中都有,没什么坑,我就不写了,写着好浪费时间啊,都是重复的,但是值得提醒一点的是,配置的过程:
1.首先是Master,免密配置完成之后,需要ssh localhost 之后必须要exit
2. Slave1 和Slave2也需要安装ssh,并且也要免密登录成功
3. 从主机copy到子虚拟机的时候,注意单词拼写,大家仔细点,因为我入坑了,我还是截个图。清晰一点
主机的ssh目录下的
子虚拟机
scp 执行的命令
scp hduser@Master:~/.ssh/id_rsa.pub ~/.ssh/hduser1_dsa.pub
7.hadoop安装
https://www.linuxidc.com/Linux/2017-08/146389.htm
上面的链接安装过程非常完备,大家可以参考
值得注意的是。大家先看我的安装经验,再按照他的安装
(1) 首先在Master上安装hadoop,安装完成后,进入安装目录。步骤:
cd /home/hduser/Downloads
wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gz/
解压:sudo tar -zxvf hadoop-2.7.7.tar.gz -C /home/hduser/
按照链接配置几个文件
(2)配置环境-见下面的图片------Slave1 和Slave2在复制完成后也要配置
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_201
export HADOOP_INSTALL=/home/hduser/hadoop-2.7.7
export PATH=$PATH:${HADOOP_INSTALL}/bin:${HADOOP_INSTALL}/sbin:${JAVA_HOME}/bin
(3) Master上安装完成后,即hadoop version可以后,在Master运行下面的命令,让Slave1 和Slave2也安装
scp -r hadoop-2.7.7/ Slave1:/home/hduser/
scp -r hadoop-2.7.7/ Slave2:/home/hduser/
第二步配置的环境效果图
8.上面的步骤都完成后,你运行
hadoop namenode -format
如果失败,仔细查看报错原因,有多种,我就因为把Master写错了,搞了好久。
仔细检查hostname
hosts步骤
还有hadoop那几个文件的配置
如果报错是:
12/10/24 16:51:41 ERROR namenode.NameNode: java.io.IOException: Cannot create directory /export/home/dfs/name/current
解决办法 (建议将三个虚拟机都执行一下)
sudo chmod -R a+w /home/hduser/hadoop-2.7.7/tmp/
- 最后运行 start-all.sh
我运行的时候还要自己输入密码,输入几次后还是能够成功,不知道前面有没有问题,还是后面他们大佬都认为太简单了,没有写,以至于我也不知道为什么,但是结果还是正确的,有大佬看见的也可以告诉我,我这里也是记录学习过程,忘指教
再运行 jps 查看运行结果,链接中也有。就不贴大佬们的了。
再说一句:欢迎大家指教,指出错误