新手福利:图文教你如何从零开始在window7系统下用VM虚拟机+CentOS7环境下搭建hadoop2.7.5分布式集群模式纪要

这篇文章主要是用于记录在我在win7系统下通过vm虚拟机安装了hadoop2.7.5分布式集群的过程。网络上已经有了很多关于hadoop集群的搭建文章,但是粗略看过一边都觉得要么就是版本有差异,要么就是觉得有些缺斤少两,可能是我水平不好,会遇到一些大牛们没有遇到的问题。所以说通过这一篇文章来记录下我个人搭建hadoop分布式集群的过程,并列出搭建过程中遇到的一些问题并给出解决方案。也希望有童鞋可以给支指出其中的一些问题。
好了,废话不多说,我们现在就来动手开始搭建我们的hadoop分布式集群环境:
第一步:
下载,安装vm虚拟机:
链接: https://pan.baidu.com/s/1jJQDWAq 密码: juvu 已经有安装虚拟机跟centos的童鞋可以跳过第一,二步
安装步骤太长,而且百度上有很多,我就不列出来了。
第二步:在vm上安装centOS7系统:
下载地址:链接: https://pan.baidu.com/s/1pM33iHl 密码: pw9e
同理,在vm下安装centOS7的步骤网络上也很多,我也不一一列举了。详情可以自己百度。
需要了解安装vm虚拟机跟centos的童鞋可以点击这里
第三步:准备搭建hadoop分布式集群环境
好了,在完成了第一,二步骤之后,现在我们开始来搭建我们的hadoop分布式集群环境。
首先,为了方便我们的hadoop分布式集群搭建,我们需要对我们的虚拟机进行主机名的重命名:
1.使用CRT连接上我们的虚拟机
CRT**版下载地址:链接: https://pan.baidu.com/s/1nwPlULN 密码: v7s5
2.查看当前的网络ip地址并且进行对主机进行重命名
1>centos7下查看ip地址的指令是:ip addr可以查看相关的网络环境配置。
新手福利:图文教你如何从零开始在window7系统下用VM虚拟机+CentOS7环境下搭建hadoop2.7.5分布式集群模式纪要
(上面的192.xxx.xx.xx就是你虚拟机的ip地址了)
2>对虚拟机进行重命名:
查看当前主机名:hostname
对主机进行重命名: vi /etc/hostname vi后出现可操作的编辑界面,按i后对当前文件进行编辑.
新手福利:图文教你如何从零开始在window7系统下用VM虚拟机+CentOS7环境下搭建hadoop2.7.5分布式集群模式纪要
当前虚拟机是我们的分布式集群中的master,所以我这里对它进行的重命名是:hadoop-master,输入完毕,按ESC后输入:wq!回车完成编辑,我们再重新查看一下当前的主机名,会发现已经变成我们刚刚修改的hadoop-master。因为这次的示范是需要用到了4台虚拟机,所以我们对其他的虚拟机依次重新命名为:hadoop-slave1,hadoop-slave2,hadoop-slave3。
3.配置hosts。
配置所有的网络主机名称跟ip地址。
1>查看当前的hosts配置 cat /etc/hosts
2>配置当前的hosts:
192.168.168.131 hadoop-master
192.168.168.132 hadoop-slave1
192.168.168.133 hadoop-slave2
192.168.168.134 hadoop-slave3
这里是我自己的虚拟机上的hosts配置,其中
新手福利:图文教你如何从零开始在window7系统下用VM虚拟机+CentOS7环境下搭建hadoop2.7.5分布式集群模式纪要
红框位置的是虚拟机的ip地址,而黑框的部分是虚拟机的主机名,这里需要一一队列,这将方便我们后面的其他的命令的执行。
4.关闭虚拟机防火墙
1>查看当前虚拟机防火墙的状态命令:systemctl status firewalld.service
新手福利:图文教你如何从零开始在window7系统下用VM虚拟机+CentOS7环境下搭建hadoop2.7.5分布式集群模式纪要
关闭防火墙的命令:systemctl stop firewalld.service
永久关闭防火墙的命令:systemctl disable firewalld.service(这里需要重新启动我们的机器)
2>关闭SELinux
vi /etc/selinux/config 出现编辑界面后把SELINUX=enforcing 改成 SELINUX=disabled(这里需要重新启动我们的机器,所以可以在禁用了防火墙之后修改这个配置文件重启虚拟机)
5.创建hadoop用户
1>创建hadoops用户组
创建的命令:addgroup hadoops(用户组名) (如果当前使用root用户的情况下提示用户权限不足的话,则在命令前添加sudo)
cat /etc/group查看你刚刚新增的用户组
新手福利:图文教你如何从零开始在window7系统下用VM虚拟机+CentOS7环境下搭建hadoop2.7.5分布式集群模式纪要
2>创建一个hadoop用户并添加到hadoops的用户组下
sudo useradd -g hadoops hadoop
再次查看我们刚刚添加的新用户:cat /etc/passwd
新手福利:图文教你如何从零开始在window7系统下用VM虚拟机+CentOS7环境下搭建hadoop2.7.5分布式集群模式纪要
为新增的hadoop用户修改密码:passwd hadoop(此处可以设置一个你常用的密码,我就不多说了)(以上所有的操作需要在所有的主机上都进行配置)
现在让我们把所有的用户都切换到hadoop用户来进行配置我们的ssh无密码登录
1.在master上生成密码对:
1>.ssh-****** -t rsa -P ''
这条命令是生成其无密码**对,询问其保存路径时直接回车采用默认路径。生成的**对:id_rsa和_id_rsa.pub,默认存储在/etc/hadoop(当前用户名)/.ssh目录下
新手福利:图文教你如何从零开始在window7系统下用VM虚拟机+CentOS7环境下搭建hadoop2.7.5分布式集群模式纪要
2>.查看”/home/hadoop/”下是否有”.ssh”文件夹,且”.ssh”文件下是否有两个刚生产的无密码**对。
cd /home/hadoop(当前用户名)
ll -a | grep .ssh
新手福利:图文教你如何从零开始在window7系统下用VM虚拟机+CentOS7环境下搭建hadoop2.7.5分布式集群模式纪要
3>.把id_rsa.pub追加到授权的key里面去
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
新手福利:图文教你如何从零开始在window7系统下用VM虚拟机+CentOS7环境下搭建hadoop2.7.5分布式集群模式纪要
4>.修改文件”authorized_keys”权限
chmod 600 ~/.ssh/authorized_keys
新手福利:图文教你如何从零开始在window7系统下用VM虚拟机+CentOS7环境下搭建hadoop2.7.5分布式集群模式纪要
5>.使用hadoop普通用户验证是否成功
新手福利:图文教你如何从零开始在window7系统下用VM虚拟机+CentOS7环境下搭建hadoop2.7.5分布式集群模式纪要
以上,我们在master上的ssh无密码配置就已经配置完成了。
6.将生成的密码对复制到其他的虚拟机上去
scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh
或scp ~/.ssh/id_rsa.pub [email protected]地址:~/.ssh
登录其他的虚拟机,将id_rsa.pub追加到authorized_keys中,并将其权限设置为600后删除id_rsa.pub
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keysrm ~/.ssh/id_rsa.pub
7.在master上hadoop用户登录其他虚拟机上的hadoop用户验证是否成功
命令:ssh[email protected]
新手福利:图文教你如何从零开始在window7系统下用VM虚拟机+CentOS7环境下搭建hadoop2.7.5分布式集群模式纪要
如果出现以上页面,恭喜,你已经成功配置完成了ssh无密码登录了
不在提示让输入密码,表示Master登录所有Slave节点ssh配置成功。


接下来我们来进行jdk环境的配置(在master的主机下进行配置跟操作)
1。下载jdk压缩包
链接: https://pan.baidu.com/s/1c301MRu 密码: fbh8
(也可以在官网上下载)
版本是jdk1.8
1> .cd /home/hadoop(用户名)
mkdir -p app
创建一个目录用于放置上传的jdk压缩包以及hadoop压缩包。进入我们的app目录下
cd app
2>.rz 上传文件到app目录下
(如果出现了:-bash: rz: command not found ,则切换到root用户下输入yum -y install lrzsz 安装lrzsz)
新手福利:图文教你如何从零开始在window7系统下用VM虚拟机+CentOS7环境下搭建hadoop2.7.5分布式集群模式纪要
选中我们的jdk压缩包并上传
3>.解压我们的jdk压缩包并进行重命名
mkdir -p java(新建一个文件夹用于放置jdk解压后的目录)
tar -zxvf jdk-8u161-linux-x64.tar.gz
mv jdk1.8.0_161 /home/hadoop/app/java/jdk1.8
ll 查看我们当前的java目录下的文件
新手福利:图文教你如何从零开始在window7系统下用VM虚拟机+CentOS7环境下搭建hadoop2.7.5分布式集群模式纪要
4>.配置java环境变量
vi /home/hadoop/.bash_profile(在文档后面添加)

export JAVA_HOME=/home/hadoop/app/java/jdk1.8export JRE_HOME=$JAVA_HOME/jreexport CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/libexport PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

启用环境变量
source /home/hadoop/.bash_profile
或者切换到root用户下使用
vi /etc/profile
在文档后面添加:
export JAVA_HOME=/home/hadoop/app/java/jdk1.8export JRE_HOME=$JAVA_HOME/jreexport CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/libexport PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

验证环境配置是否完成:
java -version
新手福利:图文教你如何从零开始在window7系统下用VM虚拟机+CentOS7环境下搭建hadoop2.7.5分布式集群模式纪要

安装配置hadoop
1.下载hadoop2.7.5压缩包
链接地址:链接: https://pan.baidu.com/s/1c3XBLdQ 密码: 5stq

进入app目录下,创建hadoop安装目录
mkdir -p /home/hadoop/app/hadoop/{tmp,hdfs/{data,name}}
上传hadoop压缩包到app目录下,解压到hadoop目录下
tar -zxvf hadoop-2.7.5.tar.gz
mv hadoop-2.7.5.tar.gz /home/hadoop/app/hadoop
2.配置hadoop
因为hadoop的配置文件都放置在hadoop/etc/hadoop的目录下,所以我们进入到该目录下对配置文件进行操作
cd /home/hadoop/app/hadoop/hadoop-2.7.5/etc/hadoop
1>.配置core-site.xml
vi core-site.xml
在configuration的节点中添加如下内容:
<property> <name>hadoop.tmp.dir</name> <value>file:/home/hadoop/app/hadoop/tmp</value> </property> <property> <name>fs.defaultFS</name> <value>hdfs://hadoop-master:9000</value> </property> <property> <name>io.file.buffer.size</name> <value>131072</value> </property>
hadoop官网配置参考
2>.配置hdfs-site.xml
vi hdfs-site.xml
在configuration的节点中添加如下内容:
<property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/home/hadoop/app/hadoop/hdfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/home/hadoop/app/hadoop/hdfs/data</value> </property> <property> <name>dfs.webhdfs.enabled</name> <value>true</value> </property>
hadoop官网配置参考:

3>.配置mapred-site.xml
mapred-site.xml文件在hadoop目录中并不存在,需要我们在这里多复制一份进行操作即可
cp mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
在configuration的节点中添加如下内容:
<property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.jobhistory.address</name> <value>hadoop-master:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>hadoop-master:19888</value> </property> <property> <name>mapreduce.jobhistory.done-dir</name> <value>/history/done</value> </property> <property> <name>mapreduce.jobhistory.intermediate-done-dir</name> <value>/history/done_intermediate</value> </property>
hadoop官网配置参考:

4>.配置yarn-site.xml
vi yarn-site.xml
在configuration的节点中添加如下内容:
<property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.resourcemanager.hostname</name> <value>hadoop-master</value> </property> <property> <name>yarn.resourcemanager.address</name> <value>hadoop-master:8032</value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>hadoop-master:8030</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>hadoop-master:8031</value> </property> <property> <name>yarn.resourcemanager.admin.address</name> <value>hadoop-master:8033</value> </property> <property> <name>yarn.resourcemanager.webapp.address</name> <value>hadoop-master:8088</value> </property>
hadoop官网配置参考:
5>.配置slaves
vi slaves
hadoop-slave1hadoop-slave2hadoop-slave3
6>.配置hadoop-env
vi hadoop-env.sh
export JAVA_HOME=/home/hadoop/app/java/jdk1.8
7>.配置yarn-env
vi yarn-env.sh
export JAVA_HOME=/home/hadoop/app/java/jdk1.8
8>.配置mapred-env
vi mapred-env.sh
export JAVA_HOME=/home/hadoop/app/java/jdk1.8

将jdk跟hadoop程序拷贝到slave上
scp -r /home/hadoop/app [email protected]:/home/hadoop/
scp -r /home/hadoop/app [email protected]:/home/hadoop/
scp -r /home/hadoop/app [email protected]:/home/hadoop/
接下来在其他的机器上同样也配置好jdk环境,并生效该配置文件
配置hadoop环境变量
vi /home/hadoop/.bash_profile
export HADOOP_HOME=/home/hadoop/app/hadoop/hadoop-2.7.5export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
让环境变量生效:
source /home/hadoop/.bash_profile
好了,完成了我们的jdk1.8跟hadoop2.7.5的安装跟配置,接下来就是要到了启动我们的hadoop的时候了
1.格式化:
cd /home/hadoop/app/hadoop/hadoop-2.7.5/bin/
hdfs namenode -format
新手福利:图文教你如何从零开始在window7系统下用VM虚拟机+CentOS7环境下搭建hadoop2.7.5分布式集群模式纪要
如果启动后出现该页面,恭喜你,格式化成功

cd ../sbin
./start-all.sh 启动hadoop集群
新手福利:图文教你如何从零开始在window7系统下用VM虚拟机+CentOS7环境下搭建hadoop2.7.5分布式集群模式纪要
验证hadoop
jps回车
8515 SecondaryNameNode8325 NameNode9448 Jps8667 ResourceManager
Slave上查看
12338 Jps11884 NodeManager11775 DataNode
在浏览器上输入master的ip地址:50070可以查看节点的信息
以上,我们的hadoop分布式集群搭建完毕

感谢以下博主的文章给予参考

http://blog.51cto.com/balich/2062052

http://blog.csdn.net/triumphao/article/details/53264190