[warning] 思考:Hadoop部署分为三种:单机、伪分布式、完全分布式,他们有什么区别呢?
[danger] 注意:在搭建之前,请确保Hadoop运行环境已搭建完毕,例如防火墙关闭,ip修改,主机名修改,JDK和Hadopp的安装
[info] (1)Hadoop伪分布规划
(1)配置文件到底是配置什么呢?在前面Hadoop概述里面提到,Hadoop有核心组件:HDFS和MapReduce,而在2.0版本Hadoop中,我们知道MapReduce是运行在YARN之上的。HDFS提供文件存储系统,YARN负责资源调度MapReduce作业执行,那么在配置的时候主要也是针对HDFS和YARN来进行配置。
(2)伪分布式规划
:-:
[info] (2)核心配置文件
想要启动Hadoop,需要进入hadoop目录的/etc/hadoop中,修改Hadoop的配置文件,需要修改的配置文件是下面的5个
[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
```
:-: 
>[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>
```
:-: 
:-: 
:-: 
>[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>
```
:-: 
:-: 
:-: 
>[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架构上的,需要进行特别声明配置。
```
:-: 
:-: 
:-: 
:-: 
>[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>
```
:-: 
:-: 
>[success] ### **到此,配置文件已经修改完毕!**
>[info] (4)格式化HDFS
在之前,配置文件已经修改完毕了。那么是否就可以启动Hadoop了呢?也不是的,在启动之前,需要对Hadoop进行格式化操作,也就是格式化HDFS。这有点类似新买的U盘,需要先进行格式化才能进行使用。
```java
#格式化HDFS命令(注意需要配置好Hadoop环境变量命令才会生效)
hdfs namenode -format
#格式化成功后,之前在core-site.xml配置文件设置的tmp目录会被创建并存入一些内容
```

:-: 
>[info] (5)启动Hadoop
```java
#启动Hadoop有两种方式
#方式一:先启动dfs,然后启动yarn
start-dfs.sh
start-yarn.sh
#方式二:一次性启动全部
start-all.sh
#建议采用方式一,这样如果启动失败了,也知道是哪个组件启动失败了。而且Hadoop官方也推荐采用方式一
```
>[success] (1)启动HDFS
:-: 
>[success] (2)启动YARN
:-: 
>[info] (6)浏览器访问
>[success] (1)访问HDFS管理界面,默认访问端口:50070,可以看到HDFS文件存储情况及可视化操作HDFS的文件
:-: 
>[success] (2)访问MapReduce管理界面,默认端口:8088,可以知道系统在执行第一个任务时启动了多少个job,以及监听每个job的运行资源情况,还可以查看job的历史、哪些job运行成功、哪些job运行失败。
:-: 
>[info] (7)关闭Hadoop
```
#方式一:先关闭dfs,然后关闭yarn
stop-dfs.sh
stop-yarn.sh
#方式二:关闭所有
stop-all.sh
```
:-: 
:-: 
内容来源于网络,如有侵权,请联系作者删除!