Hadoop概述-浅浅入门一下

宁睿  金牌会员 | 2024-8-11 08:46:32 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 567|帖子 567|积分 1709

Hadoop简介:是Apache旗下的一个用Java语言实现开源软件框架,是一个存储和计算大规模数据的软件平台。
Hadoop劈头: Doug Cutting 创建的,最早劈头一个Nutch项目。
三架马车:谷歌的三篇论文加速了hadoop的研发
狭义上来说:Hadoop指Apache这款开源框架,它的焦点组件有:HDFS,MR,YANR
广义上来说:Hadoop通常是指一个更广泛的概念——Hadoop生态圈
一、分布式和集群的理解
   分布式:就是多个人配合做一件事,保证效率(多个人一起干活)
  比如,一个人洗菜一个人炒菜一个人上菜
概念:多台服务器协同配合完成同一个大任务
  
  大数据中分布式的调理重要有2类架构模式——去中心化模式、中心化模式
  ①中心化模式:有一个中心节点(服务器)来统筹其它服务器的工作,同一指挥,同一调派,制止杂乱。也叫做主多从模式,简称主从模式。
  个人理解:有一个老大中心/主节点(服务器)管理他们(从节点),同一管理同一干活
  在大数据中大多数根本框架都是符合中心化模式的。
  
  ②去中心化模式,没有明确的中心。 浩繁服务器之间基于特定规则举行同步协调

  
  集群:并行/效率、可靠(多个人都可以干这些任务,可以并行大概备份)
  比如,三个厨师都可以做这道菜(并行)可以三个人都做这道菜,也可以(备份)一个人做菜两个人看着他做
概念:多台服务器联合起来独立做类似的任务,可以并行也可以备份

注意: 集群假如客户端请求量(任务量)多,多个服务器同时处置处罚不同请求(不同任务),假如请求量少,一台服务器干活,其他服务器做备份使用
  二、Hadoop架构
   1、HDFS:(分布式文件体系)
  特点:
  HDFS存储大文件,把大文件默认切割成128M大小的block块,举行存储
HDFS存储块的时候,会给每个块举行备份(一共三份)
HDFS文件体系可存储超大文件,时效性稍差。
HDFS具有硬件故障检测和自动快速恢复功能。
HDFS为数据存储提供很强的扩展能力。
HDFS存储一样平常为一次写入,多次读取,只支持追加写入,不支持随机修改。
HDFS可在平凡廉价的机器上运行。
  好理解的方式
         可以把它想象成一个超级大的文件柜,这个文件柜分布在多台计算机上,每台计算机上都有多个小抽屉(我们称为“数据块”),用来存放文件的不同部分。
  (数据块是文件存储的基本单元,用于存储文件的实际内容。)
  

  • 像管理图书馆一样的NameNode和SecondaryNameNode

    • NameNode就像图书馆的馆长,负责记载哪个文件在哪个抽屉(数据块)上,确保能找到所需文件的全部部分。
    • SecondaryNameNode则像副馆长,帮助馆长确保记载是最新的,防止丢失。

  • 像存储文件的DataNodes

    • DataNodes就像存放书籍的架子,实际存储文件的各个部分。每个DataNode知道本身架子(抽屉)上有哪些书(文件的哪些部分)。

  基本概念:
  HDFS:全名Hadoop Distributed File System(分布式文件体系)
  用于解决海量数据存储
    元数据: 形貌焦点数据的数据(如数据创建者、创建时间、存储位置等,其实就是各种属性)
    NameNode:集群当中的主节点,重要用于管理集群当中的各种数据
    SecondaryNameNode:重要能用于辅助NameNode举行文件块元数据存储
    DataNode:集群当中的从节点,重要用于存储真实的海量的业务数据
      Client:发请求就是客户端。文件切分:文件上传 HDFS 的时候,Client 将文件切分成 一个一个的Block,然后举行存储,与 NameNode 交互,获取文件的位置信息,与 DataNode 交互,读取大概写入数据。
    Client 提供一些下令来管理 和访问HDFS,比如启动大概关闭HDFS。
  

  
  YARN:(作业调理和集群资源管理的框架)
  好理解的方式
          YARN就像是一个大型的数据工厂的主管,负责分配和管理工厂里的全部资源(比如机器、工具和工人等),以确保工厂能够高效、有序地运行。
  无论是处置处罚大量的订单,还是管理复杂的生产线,YARN都能够游刃有余,确保每个任务都能得到合适的资源,而且按时完成。
         1 、ResourceManager 是工厂的总经理或主管。它负责监管整个工厂的资源(机器、工具、工人等),并确保这些资源能够按照必要分配给各个作业。
          ResourceManager还要监控工厂的整体运行状态,确保作业之间不会因为资源争抢而发生冲突,而且能够高效地完成任务。
          2、NodeManager 则是工厂里的工头或班组长。他们直接受理着工厂的生产线(单个节点),负责监督和指导工人完成作业,并确保他们有足够的资源(如机器、原材料等)举行生产。
          同时,NodeManager还必要向ResourceManager汇报工作进度和资源使用情况,以便ResourceManager可以更好地举行整体规划和调理。
  
  基本概念
  解决资源任务调理
    ResourceManager: 吸收用户的计算请求任务,并负责集群的资源管理和分配
    NodeManager: 负责执行主节点分配的任务(给MR的计算程序提供资源)
  
  MapReduce:(分布式运算编程框架)
  好理解的方式
  MapReduce则像是大型的数据工厂里的一种特殊生产线,专门用于处置处罚大量的数据。起首,它将大批量的数据拆分成小份(Map阶段),然后由不同的工人(服务器)同时举行处置处罚。处置处罚完毕后,各个部分的结果会被汇总(Shuffle阶段),最后再举行整合(Reduce阶段),形成最终的产物(分析结果),这个过程非常适合处置处罚大规模数据,因为它可以明显提高效率,减少浪费。
          1、Map:Map阶段类似于数据工厂中的拆分和初步加工环节。在这个阶段,原始数据被拆分成小份(即键值对),并由不同的工人(服务器)举行初步处置处罚。每个工人将数据转换为一系列中心键值对,这些键值对应着数据的特性及其关联信息。
          2、Shuffle:Shuffle阶段则类似于数据汇总和排序环节。这一阶段将Map阶段的输出按键举行排序和分组,确保具有类似键的键值对被传输到同一个Reducer节点。Shuffle是高效数据处置处罚的关键,因为它通过合并和排序操纵,为最终的数据汇总做好了准备。
          3、Reduce:Reduce阶段则是最后的整合和产出环节。在这一阶段,全部类似的键值对被合并并通报给Reducer函数举行处置处罚,最终生成所需的分析结果或输出数据。

  基本概念
  解决海量数据计算
    怎样计算: 焦点思想就是分而治之   Map负责分解,Reduce负责合并
    MR程序: 使用java/python然后去编写MR程序,成本高          
   (成本高怎样解决?  在hive平台上编写sql,执行sql底层自动转为MR程序)
MapReduce计算必要的数据和产生的结果必要HDFS来举行存储
MapReduce的运行必要由Yarn集群来提供资源调理。
  三、hadoop集群配置好的情况下,集群启动下令
   # 一键启动hdfs和yarn集群
[root@node1 ~]# start-all.sh
  (关闭下令:stop-all.sh)
  # 启动jobHistory服务(JobHistory用来记载已经finished的mapreduce运行日记,日记信息存放于HDFS目录中 )
[root@node1 ~]# mapred --daemon start historyserver
  (关闭下令:mapred --daemon stop historyserver)
  
  页面:
  进入C:\Windows\System32\drivers\etc 目录打开hosts文件,添加以下内容:(下面的ip1、ip2、ip3为假造机的IP所在)
  ip1 node1
ip2 node2
ip3 node3
  配置完成后可以用以下格式访问
  HDFS: http://node1:9870/
  YARN: http://node1:8088/
  jobhistory: http://node1:19888/
  注意: 本地映射假如没有配置,就会报hdfs页面不能上传文件等错误...
  假如懒得配置,可以用ip所在去访问
  HDFS: http://ip所在:9870/
  YARN: http://ip所在:8088/
  jobhistory: http://ip所在:19888/
  四、hdfs的shell下令
   在安装好hadoop情况之后,可以执行类似于Linux的shell下令对文件的操纵,如ls、mkdir、rm等,对hdfs文件体系举行操纵检察,创建,删除等。
  hdfs的shell下令有两种格式:
  1、hadoop fs -下令 参数
  2、hdfs dfs -下令 参数
  
  假如在使用下令的时候没有加根目录/,默认访问的是/user/root ,也就是在此路径执行下令。
  检察目录下内容:  hdfs dfs -ls 目录的绝对路径
创建目录: hdfs dfs -mkdir 目录的绝对路径
创建文件: hdfs dfs -touch 文件的绝对路径
移动目录/文件: hdfs dfs -mv 要移动的目录大概文件的绝对路径  目标位置绝对路径
复制目录/文件: hdfs dfs -cp 要复制的目录大概文件的绝对路径  目标位置绝对路径
删除目录/文件: hdfs dfs -rm [-r] 要删除的目录大概文件的绝对路径
检察文件的内容: hdfs dfs -cat 要检察的文件的绝对路径     (cat还有head,tail也能检察)
检察hdfs其他shell下令帮助: hdfs dfs --help
  把本地文件内容追加到hdfs指定文件中: hdfs dfs -appendToFile 本地文件路径 hdfs文件绝对路径
  linux本地上传文件到hdfs中: hdfs dfs -put linux本地要上传的目录大概文件路径  hdfs中目标位置绝对路径
hdfs中下载文件到liunx本地: hdfs dfs -get hdfs中要下载的目录大概文件的绝对路径 linux本地目标位置路径 
  增补
   绝对路径:从根目录开始计算,不停到目标文件或目录,给出一个完整的路径,不会随着当前位置的
  表达方式:始终以根目录(/或盘符)开头,并一起指明直至目标文件或目录的具体位置
  
  相对路径:相对于已知的当前路径而言,它依靠于当前所在的位置,并会根据这个位置来形貌目标文件的位置。
  表达方式:通常不包罗根目录信息,使用“../”表现上一级目录,使用“./”表现当前目录,相对更加简便。
  


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

宁睿

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表