美文网首页
hadoop初体验

hadoop初体验

作者: 康俊1024 | 来源:发表于2019-08-07 16:48 被阅读0次

    hadoop

    hadoop起源于一个开源的项目nutch,主要是做通用爬虫的,遇到两个问题,一个是数据量太大,没法搜索,一个是数据量太大没法存储。

    • 检索的问题:使用lucene解决
    • 数据的存储问题:看到谷歌开源的三篇论文 GFS(google fileSystem),MapReduce(分布式计算框架) BigTable(key,value对的非关系型数据库)产生两个框架 hadoop(HDFS+MapReduce) HBase
      hadoop从广义上来说是指代一个大数据软件的生态圈,包括各种周边的其他框架。

    zookeeper:主要是一个分布式的服务协调框架

    zookeeper架构图:
    leader:主节点,处理事务性的请求,增删改
    follower:从节点,主要处理非事务的请求(查询操作),以及转发事务请求给主节点
    zookeeper的特性:全局数据一致性,任何一台机器的数据都是一样的
    zookeeper的shell操作:添加、删除、查看节点,修改节点数据
    zookeeper的节点类型:永久节点、临时节点、永久序列化节点、临时序列化节点
    zookeeper的数据模型:每一个节点称之为znode,兼具文件和文件夹的特性
    zookeeper的watch机制:监听器的应用,瞄着某一个节点的变法,一旦有变化,马上感知到
    zookeeper的API操作

    hadoop 1.x与2.x的架构模型介绍

    1. hadoop1.x架构模型:主要分为两大块,一块是分布式文件存储,一块是分布式文件计算
      分布式文件存储:HDFS
      nameNode:主节点,主要用来维护元数据信息
      dataNode:从节点,主要用来存储数据
      SecondaryNameNode:作用就是用于合并元数据信息,辅助nameNode管理元数据信息
      分布式文件计算:MapReduce
      JobTracker:主节点,主要功能接受用户提交的计算任务,分配任务给从节点执行
      taskTracker:从节点,主要用于接受主节点分配的任务,并执行任务
    • 元数据信息:描述数据的数据
      例一:如果有一堆书,如何快速查找到我需要的时间简史?
      书本的分类、书本的编号、书本所在的书架、书本的位置,如果记录了这些信息,就可以快速找到对应的书本这些信息,描述了我们需要的书本在哪里,确定了这些描述信息,就可以唯一定位到这本书。这些都是一些描述数据,叫做我们的元数据信息。
      例二:如何设计一个文件系统?
      盘符、文件名 、文件的类型 、文件大小 、创建时间修改时间、所属权限 、文件的路径,这些数据都是用于描述一个文件或者文件夹,只要有了这些描述信息,那么我们就能定位到一个唯一的文件或者文件夹。这些都是一些描述数据,叫做我们的元数据信息。
    • 1.x当中,主节点 namenode jobtracker都存在单节点故障问题。
    1. hadoop2.x的架构
      分布式文件存储:HDFS
      nameNode:主节点,主要用来维护元数据信息
      dataNode:从节点,主要用来存储数据
      SecondaryNameNode:作用就是用于合并元数据信息,辅助nameNode管理元数据信息
      资源调度系统:yarn平台
      resourceManager:主要两个作用,接收用户的计算任务请求,分配资源
      nodeManager:主要用于接收appmaster分配的任务
      AppMaster:resourceManager为每个计算任务启动一个AppMaster,AppMaster主要负责资源的申请,任务的分配
    • 如果namenode高可用:就没有secondaryNamenode了,取而代之的是journalNode:主要用于同步元数据信息,保证两个namenode的元数据信息是一致的并且journalNode需要奇数个,半数及以上的journalNode写入元数据成功,就代表写入成功。
    • nameNode active状态:主要负责用户的写请求
    • nameNode standBy状态:主要负责瞄着active什么时候死了,赶紧上位
    • 为什么要保证两个namenode看到的元数据信息是一样的?
      答:集群的脑裂:为了避免集群的脑裂,造成看到的数据不一致,一定要保证两个namenode当中的元数据信息一模一样,journalnode就是同步两个namenode当中的元数据信息,保证两个namenode当中的元数据信息一模一样。namenode高可用的自动切换,主要是通过两个守护进程zkfc来实现的

    hadoop基础

    1. hadoop安装包结构
      hadoop-2.7.3/bin:一些shell脚本,供我们使用
      hadoop-2.7.3/sbin:一些shell脚本,供我们使用
      hadoop-2.7.3/etc/hadoop:所有的配置文件的路径
      hadoop-2.7.3/lib/native:本地的C程序库
    2. 检测hadoop的本地程序库
      bin/hadoop checknative
      hadoop: true 本地库,支持我们使用C程序来访问hadoop
      zlib: true 压缩库
      snappy: false 压缩库 谷歌出品的一种压缩算法,谷歌出品,必属精品
      lz4: true 压缩库
      bzip2: false 压缩库
    3. hadoop 核心配置文件的作用:
      core-site.xml:核心配置文件,主要定义了我们文件访问的格式 hdfs://
      hadoop-env.sh:主要配置我们的java路径
      hdfs-site.xml:主要定义配置我们的hdfs的相关配置
      mapred-site.xml 主要定义我们的mapreduce相关的一些配置
      slaves:控制我们的从节点在哪里 datanode nodemanager在哪些机器上
      yarn-site.xml:配置我们的resourcemanager资源调度
    4. hadoop 安装注意事项
      集群搭建好了之后,第一次需要进行格式化,工作中,以后都不要再格式化了,格式化之后所有的数据都没了。

    hdfs

    全称是hadoop distributed file system ,数据存储的核心组件

    1. hdfs的特性:
      master/slave架构:namenode是我们的主节点,datanode是我们的从节点; namenode主要管理元数据信息 datanode主要存储各种数据。一次写入,多次读取:频繁的写入会造成元数据的频繁的更新改变,比较麻烦
    2. hdfs常用的操作命令
    • hdfs的高级命令使用:主要就是用于限制某个路径下面的文件的个数,或者限制某个路径下面文件的大小
    • hadoop的安全模式:hadoop集群刚启动的时候,默认处于安全模式30秒,安全模式的时候对外不提供给任何服务刚开始启动的时候,处于安全模式:检测我们的datanode去了。

    相关文章

      网友评论

          本文标题:hadoop初体验

          本文链接:https://www.haomeiwen.com/subject/dbxqmqtx.html