hadoop伪分布搭建教程

BUG之神 377


hadoop伪分布实训及后续实验所需软件:

链接:https://pan.baidu.com/s/1YK3noz1cBHYN8ySleHuU5Q?pwd=ri9c
提取码:ri9c


请确保你之前的实验是按照文档要求安装的centos7.6,不然后续linux中安装mysql会比较麻烦,可能导致后续实验失败

你可以通过以下命令查看centos版本:

cat /etc/centos-release

hadoop伪分布搭建教程 


为了后续实验的成功,请你在VMware上克隆一个新的CentOS系统,并在新的系统上完成实验

后续实验都需要在此基础上进行,即使你已经搭建过hadoop集群,也请按照本教程再搭建一次


设置静态IP

我这里设置的静态ip地址为:192.168.31.188

请你将你的ip地址设置为192.168.xx.188

静态IP设置教程可参考:

CentOS7设置静态ip

shell脚本一键设置CentOS静态ip教程


二、环境准备

1.修改主机名

[root@localhost app]# hostnamectl set-hostname master
[root@localhost app]# bash
[root@master app]#

hadoop伪分布搭建教程 

2. 修改hosts文件

[root@master app]# vim /etc/hosts

hadoop伪分布搭建教程 

3. 关闭防火墙和selinux

关闭防火墙命令:

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld

关闭selinux:

[root@localhost ~]# vim /etc/selinux/config

将参数设置为disabled 然后保存退出:

hadoop伪分布搭建教程 

4. 配置无密码ssh登录

[root@master ~]# ssh-keygen -t rsa -P '' 
[root@master ~]# ssh-copy-id master

安装JAVA

准备工作:

CentOS7.6上的/root目录下新建一个app文件夹

然后用xftpjavahadoop安装包上传到/root/app

hadoop伪分布搭建教程 

1.进入app目录,解压jar包,解压完成后删除jar

[root@master ~]# cd /root/app
[root@master app]# tar -zxvf jdk-8u202-linux-x64.tar.gz
[root@master app]# rm -rf jdk-8u202-linux-x64.tar.gz

2.配置java环境变量,进入java目录,ls查看java安装目录为:/root/app/jdk1.8.0_202

设置环境变量:

[root@master app]# vim /etc/profile

添加以下行:

#java path
export JAVA_HOME=/root/app/jdk1.8.0_202
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH

hadoop伪分布搭建教程 

3使环境变量生效:

[root@master app]# source /etc/profile

4验证jdk是否配置成功:

[root@master app]# java -version

hadoop伪分布搭建教程 


安装Hadoop2.7.7

1.解压hadoop,解压完成后删除原始的安装包

[root@master app]# cd /root/app
[root@master app]# tar -zxvf hadoop-2.7.7.tar.gz
[root@master app]# rm -rf hadoop-2.7.7.tar.gz

2. 进入hadoop,打印并hadoop所处的目录:/root/app/hadoop-2.7.7

3配置hadoop环境变量:

[root@master hadoop-2.7.7]#vim /etc/profile

添加以下5行:

#hadoop_path
export JAVA_HOME=/root/app/jdk1.8.0_202
export HADOOP_HOME=/root/app/hadoop-2.7.7
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$HADOOP_HOME/lib:$CLASSPATH

hadoop伪分布搭建教程 

4使配置生效:

[root@master hadoop-2.7.7]# source /etc/profile

5.验证安装是否成功:

[root@master hadoop-2.7.7]# hadoop

hadoop伪分布搭建教程 


让环境变量持续生效

注:必须设置,否则可能在执行某些脚本,如第6章脚本执行到一半,hadoop命令失效

当前设置的java版本和hadoop命令会在关闭终端和在其他目录打开终端时失效,可通过如下方式解决:

[root@master app]# vim /root/.bashrc

在最后添加以下代码:

#java path
export JAVA_HOME=/root/app/jdk1.8.0_202
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH

#hadoop path
export HADOOP_HOME=/root/app/hadoop-2.7.7
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$HADOOP_HOME/lib:$CLASSPATH

hadoop伪分布搭建教程 

设置完成后保存退出,再bash以下使之生效!

[root@master app]# bash

配置hadoop的配置文件(位于安装目录的etc/hadoop目录下)

[root@master hadoop]# cd /root/app/hadoop-2.7.7/etc/hadoop
[root@master hadoop]# ls

1.hadoop-env.sh中修改jdk的环境变量:

[root@master hadoop]# vim hadoop-env.sh

将:

export JAVA_HOME=${JAVA_HOME}

改为:

export JAVA_HOME=/root/app/jdk1.8.0_202

hadoop伪分布搭建教程 

3. 配置slaves文件

[root@master hadoop]# vim slaves
master

hadoop伪分布搭建教程 

4. 修改hdfs的配置文件(core-site.xmlhdfs-site.xml

配置core-site.xml

[root@master hadoop]# vim core-site.xml

<property>

<name>fs.defaultFS</name>

<value>hdfs://master:9000</value>

</property>

<!--指定hadoop临时目录-->

<property>

<name>hadoop.tmp.dir</name>

<value>/root/app/hadoop-2.7.7/tmp</value>

</property>

hadoop伪分布搭建教程 

还可以在core-site.xml指定hdfs缓存大小,但是不设置也没出问题

<!--指定hdf缓存大小-->

<property>

<name>io.file.buffer.size</name>

<value>4096</value>

</property>

设置hdfs-site.xml文件:

[root@master hadoop]# vim hdfs-site.xml

<!--设备数据备份数量-->

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

 

5. 配置mapreduce配置文件(mapred-site.xml,yarn-site.xml):

配置mapred-site.xml

mapred-site.xml本身并不存在可以使用cp命令复制mapred-site.xml.template再更改:

[root@master hadoop]# cp mapred-site.xml.template mapred-site.xml
[root@master hadoop]# vim mapred-site.xml
<!--配置mapreduce框架用yarn启动-->

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

hadoop伪分布搭建教程 

配置yarn-site.xml

yarn-site.xml是ResourceManager进程相关配置文件:

[root@master hadoop]# vim yarn-site.xml
<!--设置对外暴露的访问地址(或者yarn资源管理者的主机)为master-->

<property>

<name>yarn.resourcemanager.hostname</name>

<value>master</value>

</property>

<!--NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MapReduce程序-->

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

hadoop伪分布搭建教程 

至此,hadoop的配置结束


验证伪分布是否成功

格式化namenode节点

[root@master hadoop]# hdfs namenode -format

格式化完成后像这样:

hadoop伪分布搭建教程 

如果执行成功,在/root/app/hadoop-2.7.7目录下会生成一个tmp目录可以使用tree (没有此命令可以使用yum -y install tree 来安装tree命令)来查看tmp目录下的文件结构

[root@master hadoop]# yum -y install tree
[root@master hadoop]# tree /root/app/hadoop-2.7.7/tmp

hadoop伪分布搭建教程 

启动/关闭hadoop

[root@master hadoop]# start-all.sh

jps查看启动的进程

[root@master hadoop]# jps

hadoop伪分布搭建教程 

jps的结果我们可以看到:

伪分布安装成功后DataNode NameNode均在本机上

查看节点信息

[root@master hadoop]# hdfs dfsadmin -report

可以看到一个存活的数据节点

hadoop伪分布搭建教程 


web端验证

web端验证是唯一有效验证hadoop是否部署成功的依据,我们这是伪分布,看不出区别,如果在全分布情况下,可能出现通过命令能看到节点都启动成功了,但主节点控制不了数据节点的情况,即使集群出问题了,或者没有搭建成功,我们会误以为集群工作正常

总之:一定要进行web端验证

Webhdfs页面地址:http://192.168.31.188:50070/

hadoop伪分布搭建教程 

 

yarn web页面地址为:http://192.168.31.188:8088

hadoop伪分布搭建教程 

关闭集群命令:

[root@master ~]# stop-all.sh

注意:关闭虚拟机之前,必须先执行关闭集群的命令,否则数据节点可能使用不了

如果数据节点使用不了,可以先启动再关闭,再启动集群试试。


附录:

hadoop集群常见错误及解决办法


 

 

 

 

 

 

 

分享