一起重新开始学大数据-hadoop篇-Day44-Hadoop、hdfs概述架构简析,Hadoop集群搭建

一起重新开始学大数据-hadoop篇-Day44-Hadoop、hdfs概述架构简析,Hadoop集群搭建

在这里插入图片描述





科普环节


概念、名词科普

  • Apache基金会
    是专门为支持开源软件项目而办的一个非盈利性组织
  • 服务器(节点)
    可以理解为我们的一台笔记本/台式机
    在这里可以认为是我们的一台虚拟机
    后面学习中,我们会把一台服务器称为一个节点
  • 机架
    负责存放服务器的架子
    在这里插入图片描述在这里插入图片描述

Hadoop概述:

Hadoop是一个适合海量数据分布式存储分布式计算平台

作者Doug Cutting 受Google三篇论文的启发,开发了hadoop。

  • Google FS
  • MapReduce
  • BigTable

hadoop三大组件

hadoop是一个统称,目前hadoop主要包含三大组件
hdfs:是一个分布式存储框架,适合海量数据存储
mapreduce:是一个分布式计算框架,适合海量数据计算
yarn:是一个资源调度平台,负责给计算框架分配计算资源

分布式存储

  • HDFS具有主从架构。

  • HDFS集群由单个名称节点组成,主服务器管理文件系统名称空间并控制客户机对文件的访问。此外,还有许多数据节点,通常是集群中每个节点一个,它们管理连接到运行它们的节点的存储。
    在这里插入图片描述

分布式存储介绍

  • 在分布式存储系统中,分散在不同节点中的数据可能属于同一个文件。
  • 为了组织众多的文件,把文件可以放到不同的文件夹中,文件夹可以一级一级的包含。我们把这种组织形式称为命名空间(namespace)。命名空间管理着整个服务器集群中的所有文件。
  • 集群中不同的节点承担不同的职责。
    • 负责命名空间职责的节点称为主节点(master node)
    • 负责存储真实数据职责的节点称为从节点(slave node)。
    • 主节点负责管理文件系统的文件结构,从节点负责存储真实的数据,称为主从式结构(master-slaves)。
    • 用户操作时,应该先和主节点打交道,查询数据在哪些从节点上存储,然后再到从节点读取。
    • 在主节点上,为了加快用户访问的速度,会把整个命名空间信息都放在内存中,当存储的文件越多时,那么主节点就需要越多的内存空间。
    • 在从节点存储数据时,有的原始数据文件可能很大,有的可能很小,大小不一的文件不容易管理,那么可以抽象出一个独立的存储文件单位,称为块(block)。
    • 数据存放在集群中,可能因为网络原因或者节点硬件原因造成访问失败,最好采用副本(replication)机制,把数据同时备份到多台节点中,这样数据就安全了,数据丢失或者访问失败的概率就小了。

hdfs架构分析

  • 负责数据的分布式存储
  • 主从结构
    • 主节点,可以有2个:namenode
    • 从节点,有多个:datanode
  • namenode负责
    • 接收用户操作请求,是用户操作的入口
    • 维护文件系统的目录结构,称作命名空间
  • datanode负责
    • 存储数据

mapreduce架构分析

  • 依赖磁盘io的批处理计算模型
  • 主从结构
    • 主节点,只有一个: MRAppMaster
    • 从节点,就是具体的task
  • MRAppMaster负责
    • 接收客户端提交的计算任务
    • 把计算任务分给NodeManager的Container中执行,即任务调度
      • Container是YARN中资源的抽象,它封装了某个节点上一定量的资源(CPU和内存两类资源)
      • Container由ApplicationMaster向ResourceManager申请的,由ResouceManager中的资源调度器异步分配给ApplicationMaster
      • Container的运行是由ApplicationMaster向资源所在的NodeManager发起的
    • 监控Container中Task的执行情况
  • Task负责:
    • 处理数据

hadoop特点

  • 扩容能力(Scalable):能可靠(reliably)地存储和处理PB级别的数据。如果数据量更大,存储不下了,再增加节点就可以了。
  • 成本低(Economical):可以通过普通机器组成的服务器集群来分发以及处理数据.这些服务器集群可达数千个节点。
  • 高效率(Efficient):通过分发计算程序,hadoop可以在数据所在节点上(本地)并行地(parallel)处理他们,这使得处理非常的迅速
  • 可靠性(Reliable):hadoop能够自动地维护数据的多份副本,并且在任务失败后能够自动地重新部署(redeploy)计算任务.








Hadoop集群搭建(分布式版本)


一、准备工作

  • 三台虚拟机:master、node1、node2

  • 时间同步

1.安装chrony
yum install chrony
2.启用
systemctl start chronyd
systemctl enable chronyd
3.设置时区
timedatectl set-timezone Asia/Shanghai
4.启用NTP同步
timedatectl set-ntp yes
  • jdk1.8

java -version

  • 修改主机名

    三台分别执行 vim /etc/hostname 并将内容指定为对应的主机名
    
  • 关闭防火墙:systemctl stop firewalld

    • 查看防火墙状态:systemctl status firewalld
    • 取消防火墙自启:systemctl disable firewalld
  • 静态IP配置

    • 直接使用图形化界面配置(不推荐)

    • 手动编辑配置文件进行配置

      1、编辑网络配置文件
      vim /etc/sysconfig/network-scripts/ifcfg-ens33
      
      TYPE=Ethernet
      BOOTPROTO=static
      HWADDR=00:0C:29:E2:B8:F2
      NAME=ens33
      DEVICE=ens33
      ONBOOT=yes
      IPADDR=192.168.190.100
      GATEWAY=192.168.190.2
      NETMASK=255.255.255.0
      DNS1=192.168.190.2
      DNS2=223.6.6.6
      
      需要修改:HWADDR(mac地址)
      		IPADDR(根据自己的网段,自定义IP地址)
      		GATEWAY(根据自己的网段填写对应的网关地址)
      
      2、关闭NetworkManager,并取消开机自启
      systemctl stop NetworkManager
      systemctl disable NetworkManager
      
      3、重启网络服务
      systemctl restart network
      
  • 免密登录

    ①生成密钥
    ssh-keygen -t rsa
    ②配置免密登录
    ssh-copy-id master
    ssh-copy-id node1
    ssh-copy-id node2
    ③测试免密登录
    ssh node1

  • 配置好映射文件:/etc/hosts

    192.168.190.100 master
    192.168.190.101 node1
    192.168.190.102 node2
    

二、搭建Hadoop集群

1、上传安装包并解压

使用xftp上传压缩包至master/usr/local/soft/packages/

cd /usr/local/soft/packages/
解压
tar -zxvf hadoop-2.7.6.tar.gz -C /usr/local/soft/

2、配置环境变量

vim /etc/profile

JAVA_HOME=/usr/local/soft/jdk1.8.0_171
HADOOP_HOME=/usr/local/soft/hadoop-2.7.6
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

重新加载环境变量
source /etc/profile

3、修改Hadoop配置文件

  • cd /usr/local/soft/hadoop-2.7.6/etc/hadoop/

  • core-site.xml

        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://master:9000</value>
        </property>
    
        <property>
            <name>hadoop.tmp.dir</name>
            <value>/usr/local/soft/hadoop-2.7.6/tmp</value>
        </property>
    
        <property>
            <name>fs.trash.interval</name>
            <value>1440</value>
        </property>
    
  • hadoop-env.sh

    export JAVA_HOME=/usr/local/soft/jdk1.8.0_171
    
  • hdfs-site.xml

        <property>
            <name>dfs.replication</name>
            <value>1</value>
        </property>
    
        <property>
            <name>dfs.permissions</name>
            <value>false</value>
        </property>
    
  • mapred-site.xml.template

    # 1、重命名文件
    cp mapred-site.xml.template mapred-site.xml
    # 2、修改
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
    
        <property>  
            <name>mapreduce.jobhistory.address</name>  
            <value>master:10020</value>  
        </property>  
    
        <property>  
            <name>mapreduce.jobhistory.webapp.address</name>  
            <value>master:19888</value>  
        </property> 
    
  • slaves

    node1
    node2
    
  • yarn-site.xml

        <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>master</value>
        </property>
    
        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>
    
        <property>
            <name>yarn.log-aggregation-enable</name>
            <value>true</value>
        </property>
    
        <property>
            <name>yarn.log-aggregation.retain-seconds</name>
            <value>604800</value>
        </property>
    

4、分发Hadoop到node1、node2

cd /usr/local/soft/

scp -r hadoop-2.7.6/ node1:`pwd`

scp -r hadoop-2.7.6/ node2:`pwd`

5、格式化namenode(第一次启动的时候需要执行)

hdfs namenode -format

6、启动Hadoop集群

start-all.sh

7、检查master、node1、node2上的进程

  • master

    [root@master soft]# jps
    2597 NameNode
    2793 SecondaryNameNode
    2953 ResourceManager
    3215 Jps
    
  • node1

    [root@node1 jdk1.8.0_171]# jps
    11361 DataNode
    11459 NodeManager
    11559 Jps
    
  • node2

    [root@node2 ~]# jps
    11384 DataNode
    11482 NodeManager
    11582 Jps
    

8、访问HDFS的WEB界面

http://master:50070

在这里插入图片描述

9、访问YARN的WEB界面

http://master:8088

在这里插入图片描述

|
|
|
|

上一章-hadoop先导篇-Day43-Redis的主从复制和集群搭建
下一章-hadoop篇-Day45-hdfs解析和zookeeper安装
|
|
|
|
|

听说长按大拇指👍会发生神奇的事情呢!好像是下面的画面,听说点过的人🧑一个月内就找到了对象的💑💑💑,并且还中了大奖💴$$$,考试直接拿满分💯,颜值突然就提升了😎,虽然对你好像也不需要,是吧,吴彦祖🤵!

在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你的动作太慢了!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值