Hadoop完全分布式集群搭建

前言

Hadoop集群完全分布式搭建步骤:1、准备三台虚拟机  2、配置linux系统环境(见之前博客) 3、安装jdk和hadoop(见之前博客)  4、修改hadoop配置参数  5、单点启动服务  6、配置ssh免密登陆  7、群起hadoop集群并测试

搭建环境:CentOS 7.0+hadoop2.7.2+jdk1.8


一、Hadoop集群搭建规划

HDFS:NameNode、DataNode、SecondaryNameNode

MapReduce:ResourceManager、NodeManager

 hadoop88hadoop89hadoop90
HDFS

NameNode

DataNode

SecondaryNameNode

DataNode

DataNode
MapReduceNodeManagerNodeManager

ResourceManager

NodeManager

二、Hadoop配置文件参数修改

补充:Hadoop目录结构

drwxr-xr-x. 2 root root  4096  May 22  2017 bin
drwxr-xr-x. 3 root root    19    May 22  2017 etc
drwxr-xr-x. 2 root root   101   May 22  2017 include
drwxr-xr-x. 3 root root    19    May 22  2017 lib
drwxr-xr-x. 2 root root  4096  May 22  2017 libexec
-rw-r--r--. 1 root root 15429   May 22  2017 LICENSE.txt
-rw-r--r--. 1 root root   101     May 22  2017 NOTICE.txt
-rw-r--r--. 1 root root  1366    May 22  2017 README.txt
drwxr-xr-x. 2 root root  4096 May 22  2017 sbin
drwxr-xr-x. 4 root root    29   May 22  2017 share

(1)bin目录:存放对Hadoop相关服务(hdfs,yarn,mapred)进行操作的脚本

(2)etc目录:Hadoop的配置文件目录,存放Hadoop的配置文件

(3)lib目录:存放Hadoop的本地库(对数据进行压缩解压缩功能)

(4)sbin目录:存放启动或停止Hadoop相关服务的脚本

(5)share目录:存放Hadoop的依赖jar包、文档、和官方案例

核心配置文件

1、core-site.xml

​<!-- 指定HDFS中NameNode的地址 -->
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://hadoop88:9000</value>
</property>

<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>

Hdfs配置文件

2、hadoop-env.sh

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

3、hdfs-site.xml

​<!-- hdfs副本数默认为3 -->
<property>
    <name>dfs.replication</name>
    <value>3</value>
</property>

<!-- SecondaryNameNode的地址和端口号 -->
<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>hadoop89:50090</value>
</property>

YARN配置文件

4、yarn-env.sh

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

5、yarn-site.xml

​<!-- Reducer获取数据的方式 -->
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>hadoop90</value>
</property>

MapReduce配置文件

6、mapred-env.sh

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

7、mapred-site.xml(先执行这个更改名称 mv mapred-site.xml.template mapred-site.xml)

​<!-- 指定MR运行在YARN上 -->
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>

<!-- 历史服务器的地址 -->
<property>
    <name>mapreduce.jobhistory.address</name>
    <value>hadoop90:10020</value>
</property>

<!-- 历史服务器页面的地址 -->
<property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>hadoop90:19888</value>
</property>

8、slaves (集群里所有从节点)群起集群命令时会调用

​hadoop88
hadoop89
hadoop90

scp -r hadoop/ root@hadoop89:/opt/module/hadoop-2.7.2/etc/

scp -r hadoop/ root@hadoop90:/opt/module/hadoop-2.7.2/etc/

注意:集群里的机器都要进行以上的配置

对HDFS namenode 格式化

命令:hdfs namenode -format

注意:不要重复格式化,不然出错。如果重复格式化需要删除namenode下数据目录。

为什么要格式化?

NameNode主要被用来管理整个分布式文件系统的命名空间(实际上就是目录和文件)的元数据信息,同时为了保证数据的可靠性,还加入了操作日志,所以NameNode会持久化这些数据(保存到本地的文件系统中)。对于第一次使用HDFS,在启动NameNode时,需要先执行 -format命令,然后才能正常启动NameNode节点服务。


三、单点启动服务

需要到集群中的每台机器上启动和停止,对于以后大型集群来说,很少会全部启动和关闭。

1、分别启动/停止HDFS组件

hadoop-daemon.sh  start / stop  namenode / datanode / secondarynamenode

2、启动/停止YARN

yarn-daemon.sh  start / stop  resourcemanager / nodemanager

 

四、群起Hadoop集群

各个模块分开启动/停止(配置ssh是前提)

1、整体启动/停止HDFS

start-dfs.sh   /  stop-dfs.sh

2、整体启动/停止YARN

start-yarn.sh  /  stop-yarn.sh

3、验证

在三台机器上jsp

WEB访问:

Yarn http://192.168.25.90:8088/

HDFS http://192.168.25.88:50070/

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值