当前位置:   article > 正文

hadoop大数据平台的构建_建立hadoop大数据平台

建立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
  • 1
  • 2
  • 3

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

systemctl stop NetworkManager

systemctl disable NetworkManager
#重新启动网络
systemctl start network.service
  • 1
  • 2
  • 3
  • 4
  • 5

关闭防火墙

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

#查看防火墙状态
systemctl status firewalld
  • 1
  • 2

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

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

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

#关闭firewall
systemctl stop firewalld.service   
#禁止firewall开机启动
systemctl disable firewalld.service
  • 1
  • 2
  • 3
  • 4

修改各个节点的主机名

sudo vim /etc/hostname

#192.168.72.150改为master
#192.168.72.151改为slave1 
#192.168.72.152改为slave2 
  • 1
  • 2
  • 3
  • 4
  • 5

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

sudo vim /etc/hosts
  • 1

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

192.168.72.150 master
192.168.72.151 slave1
192.168.72.152 slave2
  • 1
  • 2
  • 3

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

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

测试是否相互 ping 得通

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

ping Slave1 -c 3
  • 1
  • 2
  • 3

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

echo "TZ='Asia/Shanghai'; export TZ" >> /etc/profile && source /etc/profile

# 下载ntp(三台机器)
yum install -y ntp


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

master 作为 ntp 服务器,修改 ntp 配置文件。(master 上执行)

vim /etc/ntp.conf
  • 1

删除或注释默认的时钟源服务器
在这里插入图片描述

添加如下内容,使master做为本地的时钟源

server 127.127.1.0     #local clock
fudge 127.127.1.0 stratum 10     #stratum 设置为其它值也是可以的,其范围为 0~15
  • 1
  • 2

在master上面启动ntp服务

systemctl start ntpd.service
  • 1

在slave1和slave2上同步

ntpdate master
  • 1

查看定时任务服务状态

service crond status
  • 1

在slave1和slave2上设置定时任务
注释:
crontab任务解读
格式:minute hour day month week commond
minute: 表示分钟,可以是从0到59之间的任何整数。
hour:表示小时,可以是从0到23之间的任何整数。
day:表示日期,可以是从1到31之间的任何整数。
month:表示月份,可以是从1到12之间的任何整数。
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
星号():代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。**
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/949609
推荐阅读
相关标签
  

闽ICP备14008679号