Hadoop伪分布式搭建

x33g5p2x  于2021-03-14 发布在 Hadoop  
字(6.6k)|赞(0)|评价(0)|浏览(567)

一、搭建前提

[warning] 思考:Hadoop部署分为三种:单机、伪分布式、完全分布式,他们有什么区别呢?

  • 单机模式:在一台单机上运行,没有分布式文件系统,而是直接读写本地操作系统的文件系统,一般仅用于本地MR程序的调试
  • 伪分布式:这种模式也是在一台单机上运行,使用不同的Java进程模仿分布式运行中的各类结点:
    • NameNode
    • SecondaryNameNode
    • DataNode
    • JobTracker
    • TaskTracker
    • 请注意分布式运行中的这几个节点的区别:
      • 从分布式存储的角度来说,集群中的节点由一个NameNode和若干个DataNode组成,另有一个SecondaryNameNode作为NameNode的备份。
      • 从分布式应用的角度来说,集群中的节点由一个JobTracker和若干个TaskTracker组成,JobTracker负责任务的调度,TaskTracker负责并行执行任务。TaskTracker必须运行在DataNode上,这样便于数据的本地计算。JobTracker和NameNode则无须在同一台机器上。一个机器上,既当namenode,又当datanode,或者说 既 是jobtracker,又是tasktracker。没有所谓的在多台机器上进行真正的分布式计算,故称为"伪分布式"。
      • 开启多个进程模拟完全分布式,但是并没有真正提高程序执行的效率。
  • 完全分布式
    • 真正的分布式,由3个及以上的实体机或者虚拟机组件的机群。

[danger] 注意:在搭建之前,请确保Hadoop运行环境已搭建完毕,例如防火墙关闭,ip修改,主机名修改,JDK和Hadopp的安装

二、伪分布式配置

[info] (1)Hadoop伪分布规划

(1)配置文件到底是配置什么呢?在前面Hadoop概述里面提到,Hadoop有核心组件:HDFS和MapReduce,而在2.0版本Hadoop中,我们知道MapReduce是运行在YARN之上的。HDFS提供文件存储系统,YARN负责资源调度MapReduce作业执行,那么在配置的时候主要也是针对HDFS和YARN来进行配置。

(2)伪分布式规划

  • HDFS伪分布规划
  • YARN伪分布规划

:-:

[info] (2)核心配置文件

想要启动Hadoop,需要进入hadoop目录的/etc/hadoop中,修改Hadoop的配置文件,需要修改的配置文件是下面的5个

  • hadoop-env.sh
    • 是Hadoop的运行环境配置文件,Hadoop的运行需要依赖JDK
  • core-site.xml
    • 该文件为Hadoop的核心配置文件
  • hdfs-site.xml
    • 该文件为HDFS的核心配置文件
  • mapred-site.xml
    • 这个文件是不存在的,但是有一个模板文件mapred-site.xml.template,我们将模板文件改名为mapred-site.xml,然后进行编辑。该文件为MapReduce的核心配置文件。
  • yarn-site.xml
    • 该文件为YARN框架配置文件,只要指定ResourceManager的节点名称及NodeManager属性。

[info] (3)开始配置文件修改流程

[success] `(1)hadoop.env.sh文件配置

# 1.进入hadoop的etc/hadoop目录
cd /data/module/hadoop-2.7.3/etc/hadoop/

# 2.vi编辑hadoop.env.sh文件
vi hadoop-env.sh

# 3.将其中的export JAVA_HOME的值修改为我们安装的JDK路径,
    在前面配置JDK的时候,我们知道我们的JDK绝对路径为:/data/module/jdk1.8.0_144

export JAVA_HOME=/data/module/jdk1.8.0_144

```

:-: ![](http://img.saoniuhuo.com/images/202104/91571617629368188.jpg)

>[success] `(2)core-site.xml 配置文件

````java
#原始配置文件
<!-- 指定 HDFS 中 NameNode 的地址 低版本是8020端口-->
<property>
  <name>fs.defaultFS</name>
  <value>hdfs://主机名:9000</value>
</property>
<!-- 指定 hadoop 运行时产生文件的存储目录 -->
<property>
  <name>hadoop.tmp.dir</name>
  <value>/opt/module/hadoop-2.X.X/data/tmp</value>
</property>

#修改后的配置文件
<!-- 指定 HDFS 中 NameNode 的地址 低版本是8020端口-->
<property>
  <name>fs.defaultFS</name>
  <value>hdfs://bigdata1:9000</value>
</property>
<!-- 指定 hadoop 运行时产生文件的存储目录 -->
<property>
  <name>hadoop.tmp.dir</name>
  <value>/data/module/hadoop-2.7.3/tmp</value>
</property>

#配置文件说明
#指定HDFS的NameNode的通讯地址,bigdata1为之前修改虚拟机的主机名
<value>hdfs://bigdata1:9000</value> 

#指定Hadoop运行时产生的文件存放目录,这个目录无须创建,因为在格式化Hadoop时会自动创建
<value>/data/module/hadoop-2.7.3/tmp</value>

```

:-: ![](http://img.saoniuhuo.com/images/202104/8331617629369385.jpg)

:-: ![](http://img.saoniuhuo.com/images/202104/67541617629369675.jpg)

:-: ![](http://img.saoniuhuo.com/images/202104/81271617629370069.jpg)

>[success] (3)hdfs-site.xml 配置文件

```java
#原始配置文件
<!--数据冗余数-->
<property>
  <name>dfs.replication</name>
  <value>3</value>
</property>
<!--关闭权限检查-->
<property>
  <name>dfs.permissions</name>
  <value>false</value>
</property>


#修改后的配置文件
<property>
  <name>dfs.replication</name>
  <value>1</value>
</property>
<!--关闭权限检查-->
<property>
  <name>dfs.permissions</name>
  <value>false</value>
</property>

#配置文件说明
Hadoop集群默认的副本数量是3,但是现在只在单节点上进行伪分布式安装,无须保存3个副本,因此将该属性的值修改成1
<value>1</value>

```

:-: ![](http://img.saoniuhuo.com/images/202104/62441617629370572.jpg)

:-: ![](http://img.saoniuhuo.com/images/202104/9671617629370827.jpg)

:-: ![](http://img.saoniuhuo.com/images/202104/7081617629371411.jpg)

>[success] (4)mapred-site.xml 配置文件(需要将模板文件mapred-site.xml.template改成mapred-site.xml)

```java
#原始配置文件
<!-- 指定 mr 运行在 yarn 上-->
<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>

#修改后的配置文件
无须修改,直接使用

#配置文件说明
1.mapred-site.xml是不存在的,需要将模板文件mapred-site.xml.template改成mapred-site.xml使用
2.因为在Hadoop2.0之后,MapReduce是运行在Yarn架构上的,需要进行特别声明配置。

```

:-: ![](http://img.saoniuhuo.com/images/202104/20521617629371700.jpg)

:-: ![](http://img.saoniuhuo.com/images/202104/63471617629371936.jpg)

:-: ![](http://img.saoniuhuo.com/images/202104/31071617629372259.jpg)

:-: ![](http://img.saoniuhuo.com/images/202104/4721617629372584.jpg)

>[success] (5)yarn-site.xml 配置文件

```java
#原始配置文件
<!-- reducer 获取数据的方式 -->
<property>
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
</property>
<!-- 指定 YARN 的 ResourceManager 的地址 -->
<property>
  <name>yarn.resourcemanager.hostname</name>
  <value>主机名</value>
</property>

#修改后的配置文件
<!-- reducer 获取数据的方式 -->
<property>
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
</property>
<!-- 指定 YARN 的 ResourceManager 的地址 -->
<property>
  <name>yarn.resourcemanager.hostname</name>
  <value>bigdata1</value>
</property>

#配置文件说明
#reducer 获取数据的方式,shuffle排序
<value>mapreduce_shuffle</value>
#指定 YARN 的 ResourceManager 的地址,由于单节点部署,部署在bigdata1机器上,所以写这个主机名
<value>bigdata1</value>

```

:-: ![](https://img.kancloud.cn/6c/5e/6c5ed7e23a8e76ebb4d4727877029803_1118x682.png)![](http://img.saoniuhuo.com/images/202104/29941617629373100.jpg)

:-: ![](http://img.saoniuhuo.com/images/202104/87601617629373431.jpg)

>[success] ### **到此,配置文件已经修改完毕!**

>[info] (4)格式化HDFS

在之前,配置文件已经修改完毕了。那么是否就可以启动Hadoop了呢?也不是的,在启动之前,需要对Hadoop进行格式化操作,也就是格式化HDFS。这有点类似新买的U盘,需要先进行格式化才能进行使用。

```java
#格式化HDFS命令(注意需要配置好Hadoop环境变量命令才会生效)
hdfs namenode -format

#格式化成功后,之前在core-site.xml配置文件设置的tmp目录会被创建并存入一些内容

```

![](http://img.saoniuhuo.com/images/202104/15311617629374125.jpg)

:-: ![](http://img.saoniuhuo.com/images/202104/41591617629374468.jpg)

>[info] (5)启动Hadoop

```java
#启动Hadoop有两种方式

#方式一:先启动dfs,然后启动yarn
start-dfs.sh
start-yarn.sh

#方式二:一次性启动全部
start-all.sh

#建议采用方式一,这样如果启动失败了,也知道是哪个组件启动失败了。而且Hadoop官方也推荐采用方式一

```

>[success] (1)启动HDFS

:-: ![](http://img.saoniuhuo.com/images/202104/42891617629375033.jpg)

>[success] (2)启动YARN

:-: ![](http://img.saoniuhuo.com/images/202104/9351617629375574.jpg)

>[info] (6)浏览器访问

>[success] (1)访问HDFS管理界面,默认访问端口:50070,可以看到HDFS文件存储情况及可视化操作HDFS的文件

:-: ![](http://img.saoniuhuo.com/images/202104/91491617629375853.jpg)

>[success] (2)访问MapReduce管理界面,默认端口:8088,可以知道系统在执行第一个任务时启动了多少个job,以及监听每个job的运行资源情况,还可以查看job的历史、哪些job运行成功、哪些job运行失败。

:-: ![](http://img.saoniuhuo.com/images/202104/23871617629377161.jpg)

>[info] (7)关闭Hadoop

```
#方式一:先关闭dfs,然后关闭yarn
stop-dfs.sh
stop-yarn.sh

#方式二:关闭所有
stop-all.sh

```

:-: ![](http://img.saoniuhuo.com/images/202104/90281617629378428.jpg)

:-: ![](http://img.saoniuhuo.com/images/202104/31381617629378646.jpg)

相关文章

微信公众号

最新文章

更多