hadoop大数据平台的构建

hadoop概述

什么是hadoop?

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系统( Distributed File System),其中一个组件是HDFS(Hadoop Distributed File System)。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。(摘自百度百科)

hadoop特点

1.高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖 。
2.高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。
3.高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快 。
4.高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配 。

hadoop组成

在这里插入图片描述
hdfs:分布式文件系统在这里插入图片描述Namenode:存放文件系统树及所有文件、目录的元数据
Secondary Namenode :定期合并主Namenode的namespace image和edit log, 避免edit log过大,通过创建检查点checkpoint来合并。
Datanode:在本地文件系统存储文件块数据,以及块数据的校验和,读写请求可能来自namenode,也可能直接来自客户端。
ResourceManager JobTracker:负责调度DataNode上的工作。每个DataNode有一个TaskTracker,它们执行实际工作。,
NodeManager:执行任务。
DFSZKFailoverController:高可用时它负责监控NN的状态,并及时的把状态信息写入ZK。它通过一个独立线程周期性的调用NN上的一个特定接口来获取 NN的健康状态。FC也有选择谁作为Active NN的权利,因为最多只有两个节点,目前选择策略还比较简单(先到先得)
JournalNode:高可用情况下存放namenode的 editlog文件。
yarn
1*
ResourceManager(RM)主要作用如下
(1)处理客户端请求
(2)监控NodeManager
(3)启动或监控ApplicationMaster
(4)资源的分配与调度
NodeManager(NM)主要作用如下
(1)管理单个节点上的资源
(2)处理来自ResourceManager的命令
(3)处理来自ApplicationMaster的命令
ApplicationMaster(AM)作用如下
(1)负责数据的切分
(2)为应用程序申请资源并分配给内部的任务
(3)任务的监控与容错
Container:YARN中的资源抽象,它封装了草个节点上的多维度资源,如内存、CPu、磁盘、网络等。
mapreduce
MapReduce是一个可用于大规模数据处理的分布式计算框架
在这里插入图片描述
Map阶段并行处理输入数据
Reduce阶段对Map结果进行汇总

hadoop默认端口

dfs.namenode.http-address:50070
WEB界面中监控hdfs
SecondaryNameNade:50090
辅助名称节点端口号
dfs.datanode.address:50010
DataNode的数据传输端口
fs.defaultFS:9000
接收Client连接的RPC端口
yarn.resourcemanager.webapp.address:8088
WEB界面中监控任务执行状况

hadoop分布集群搭建

前置准备

这里我准备了三台centos7虚拟机,ip分别为

master 192.168.72.150
slave1 192.168.72.151
slave2 192.168.72.152

更改IP详见本篇博客
Failed to start LSB: Bring up/down解决方法
依次执行以下指令

systemctl stop NetworkManager

systemctl disable NetworkManager
#重新启动网络
systemctl start network.service

关闭防火墙

CentOS系统默认开启了防火墙,在开启 Hadoop 集群之前,需要关闭集群中每个节点的防火墙。有防火墙会导致 ping 得通但 telnet 端口不通,从而导致 DataNode 启动了,但 Live datanodes 为 0 的情况。

#查看防火墙状态
systemctl status firewalld

在 CentOS 6.x 中,可以通过如下命令关闭防火墙:

sudo service iptables stop   # 关闭防火墙服务
sudo chkconfig iptables off  # 禁止防火墙开机自启,就不用手动关闭了

若用是 CentOS 7,需通过如下命令关闭(防火墙服务改成了 firewall):

#关闭firewall
systemctl stop firewalld.service   
#禁止firewall开机启动
systemctl disable firewalld.service

修改各个节点的主机名

sudo vim /etc/hostname

#192.168.72.150改为master
#192.168.72.151改为slave1 
#192.168.72.152改为slave2 

修改自己所用节点的IP映射

sudo vim /etc/hosts

例如本教程使用两个节点的名称与对应的 IP 关系如下:

192.168.72.150 master
192.168.72.151 slave1
192.168.72.152 slave2

修改完成后需要重启一下,重启后在终端中才会看到机器名的变化

需要在所有节点上完成网络配置

测试是否相互 ping 得通

ping Master -c 3   # 只ping 3次,否则要按 Ctrl+c 中断

ping Slave1 -c 3

时间同步(三台机器均执行)

echo "TZ='As
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值