Hadoop概论

Posted Jinandawang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hadoop概论相关的知识,希望对你有一定的参考价值。

一、概述

  1. 广义:Hadoop生态圈;
  2. 狭义:Apache基金会开发的分布式系统开源框架,核心组件包括:
    1. HDFS-分布式文件系统
    2. MAPREDUCE-分布式运算编程框架
    3. YARN-作业调度和集群资源管理框架
  3. 优点 & 特性
    1. 扩容能力
    2. 成本低
    3. 高效率
    4. 可靠性
      • 大数据的“5V”特征:Volume(大容量)、Velocity(高速率)、Variety(多样性)、Veracity(真实性)、Value(价值密度低)

二、Hadoop集群的三种模式

  1. 本地模式
  2. 完全分布式模式

三、Hadoop集群搭建(文件配置-略)

  1. 虚拟机准备
    1. 虚拟机的三种网络模式
             VMware Workstation安装好之后,可以在宿主机的网络配置中看到多出来的两个网络连接,分别是VMnet1和VMnet8,其中VMnet1用于仅主机模式,VMnet8用于Nat模式。(还有一个VMnet0,用于桥接模式,可以在VMware Workstation 的虚拟网络编辑器virtual network editor中看到)
             这两个模式默认提供DHCP服务(VMnet0默认不提供)。DHCP服务即动态主机设置协议,是局域网中的一种协议,能够快速地自动为我们的PC分配网络IP地址,以及为设备配置正确的子网掩码、默认网关和DNS服务器信息,为我们节省网络配置的时间,防止外来PC上网,同时避免IP重复等错误。
      1. 仅主机模式(Host-Only)-VMnet1
        * 宿主机和所有的虚拟机共同组成一个“私人的局域网络”,彼此之间可以相互访问,但与外网是相互独立的,无法访问外网。
      2. 网络地址转换模式(NAT)-VMnet8
        * 重点在于虚拟系统通过宿主机的网络访问公网,宿主机同时参与现有的网络和新建的内部虚拟局域网,虚拟系统借助于NAT的功能,使用宿主机的IP地址访问外网,从外网的角度,只能察觉到宿主机,是完全看不到虚拟网络系统的。
      3. 桥接模式(Bridged)-VMnet0
        * 此模式下,VMware虚拟出来的操作系统就像是局域网中一台独立的主机(需要手工配置IP、子网掩码等),相当于宿主机和虚拟机共享了同一个交换机(这个交换机当然也是虚拟出来的)
    2. 网络配置
      1. 在虚拟机的/etc/sysconfig/network-scripts/ifcfg-ethxx文件中修改网络配置参数
        DEVICE是网卡名称
        
        BOOTPROTO是获取的ip地址类型,static和none为静态地址,dhcp为动态获取ip地址
        
        HWADDR是MAC地址
        
        MTU是最大传输单位
        
        NM_CONTROLLED是否启用NetworkManager图形界面配置工具
        
        ONBOOT设置网卡是否在Linux系统启动时激活,这一项一般都要设为yes
        
        IPADDR是本机ip地址
        
        NETMASK是子网掩码
        
        GATEWAY是设置网关的
        
        DNS1是首选DNS服务器
        
        DNS2时辅助DNS服务器
        
        还有一些几个参数一般情况下不用配置:
        
        BROADCAST是广播地址
        
        原文链接:https://blog.csdn.net/huapenguag/article/details/78283249

  2. xsync分发脚本编写
    #!/bin/bash
    
    #1. 判断参数个数
    if [ $# -lt 1 ]
    then
        echo Not Enough Arguement!
        exit;
    fi
    
    #2. 遍历集群所有机器
    for host in Hadoop101 Hadoop102 Hadoop103
    do
        echo ====================  $host  ====================
        #3. 遍历所有目录,挨个发送,$@ 表示把参数以$1、$2、$3、$4...形式输出,并可以当作数组使用
         
        for file in $@
        do
            #4. 判断文件是否存在
            if [ -e $file ]
                then
                    #5. 获取父目录
                    pdir=$(cd -P $(dirname $file); pwd)
    
                    #6. 获取当前文件的名称
                    fname=$(basename $file)
                    ssh $host "mkdir -p $pdir"
                    rsync -av $pdir/$fname $host:$pdir
                else
                    echo $file does not exists!
            fi
        done
    done
    
  3. xcall ssh指令跳转脚本编写
    #!/bin/sh
    pcount=$#
    if((pcount==0));then
            echo no args...;
            exit;
    fi
    
    for((host=101; host<=103; host++)); 
    do
            echo ==================Hadoop$host==================
            ssh Hadoop$host $@
    done
    
  4. 无密登录配置
  5. 历史服务器配置
  6. 日志聚集配置
  7. 常用端口说明

    端口名称

    Hadoop2.x

    Hadoop3.x

    NameNode内部通信端口

    8020 / 9000

    8020 / 9000/9820

    NameNode HTTP UI

    50070

    9870

    MapReduce查看执行任务端口

    8088

    8088

    历史服务器通信端口

    19888

    19888

    * 如:hadoop101:9870
  8. 时间同步
  9. ......

四、Hadoop集群指令&API使用

  1. 启动关闭
  2. 上传下载
  3. 见文章《关于HDFS》

以上是关于Hadoop概论的主要内容,如果未能解决你的问题,请参考以下文章

尚硅谷大数据技术Hadoop教程-笔记06Hadoop-生产调优手册

大数据技术原理与应用:第二讲大数据处理架构Hadoop

尚硅谷大数据Hadoop教程-笔记02HDFS

HDFS_01_Hadoop简介

Hadoop大数据技术课程总结2021-2022学年第1学期

【大数据】使用Docker搭建Hadoop集群