zoukankan      html  css  js  c++  java
  • 初识Hadoop(1)

    1.Hadoop前世今生

      1)搜索引擎:网络爬虫+索引服务器(生成索引+检索)
      2)Doung Cutting写了lucene包(生成索引+检索)
      3)Nutch:网络爬虫+索引服务器(lucene封装)


      4)2002年开源GFS论文,Doung Cutting写了HDFS模块
      5)2004年谷歌开源了MapReduce论文,Doung Cutting写了MapReduce模块
      6)Nutch0.9版本后将HDFS和MapReduce模块拆分出来,形成了一个大数据处理框架Hadoop

    2.Hadoop概述
      1)四大模块
        common、hdfs、mapreduce、yarn
      2)hafs(hadoop distributed file system):分布式文件系统
        a.文件系统:文件管理+block块管理
      单机文件系统:
      windows:FAT16、FAT32、NTFS
      linux:ext2/3/4、VFS
      b.分布式文件系统
        多个服务器存储文件
      c.三大组件
    <1>NameNode:
    I.元数据:文件名、目录名、属性(生成时间、权限、副本)
    II.文件名与block列表映射关系
    III.block与DataNode列表映射关系
    <2>DateNode:
    block快数据、校验和编码
    <3>SeondaryNameNode:
    分担NameNode压力,合并编辑日志edis和镜像文件fsimage(因为合并操作需要占很大资源,影响客户端请求)
    合并后将最终的镜像文件fsimage返回给NameNode进行处理
    3)yarn:资源调度和任务管理
    a.四大组件
    ResourceManager(RM)、NodeManager(NM)、ApplicationMaster(AM)、Container
    b.执行流程
    <1>client连接RM提交作业,RM给client一个JobId(注:ApplicationMaster(AM)和ResourceScheduler)
    <2>RM中的ApplicationMaster连接一个NM,让NM创建一个AM处理客户端请求
    <3>AM连接RM中ApplicationMaster申请NodeManager
    <4>AM去ResourceScheduler给client的作业申请资源(cpu、内存、磁盘、网络)
    <5>AM连接NM,发送client job作业程序和申请资源(cpu、内存、磁盘、网络)
    <6>NM启动Container进程运行job的不同任务
    <7>Container进程运行状态实时反馈给AM
    <8>AM反馈任务状态信息给RM中的ApplicationMaster
    <9>client端可以连接RM或AM查询job的执行情况

    注:NM启动后去RM上进行注册,会不断发送心跳,说明其存活状态
    4)MapReduce:分而治之
    a.概述
    <1>将分布式计算作业拆分为两个阶段:Mapper和Reducer (Map阶段并行处理输入数据 Reduce阶段对Map结果进行汇总)
    <2>Shuffer流程:连接Mapper和Reducer两个阶段
    I.shuffle写入流程
    Map Task任务将输出数据写到本地磁盘上
    II.shuffle读取流程
    Reduce Task任务从每个Map Task磁盘上远程读取数据信息
    <3>使用场景:仅适合离线批处理,具有很好的容错性和扩展性,适合简单的批处理任务
    <4>缺点:速度慢、系统开销大、各个task任务需要不断申请释放资源,过多使用磁盘导致效率低下等
    b.执行流程
    <1>输入文件切片
    <2>mapper进程处理切片
    <3>shuffle流程
    <4>reducer进程聚合数据
    <5>输出文件
    3.Hadoop生态系统
    1)Hadoop:分布式储存、分布式计算、资源调度与任务管理
    hdfs、mapreduce、yarn、common
    2)Lucene:索引检索工具包;Solr:索引服务器
    3)Nutch:开源的搜索引擎
    4)Hbase/Cassandra:基于谷歌的BigTable开源的列式存储的非关系行数据库
    5)Hive:基于SQL的分布式计算引擎,同时是一个连接数据仓库的工具
    pig:基于Pig Latin脚本的计算引擎
    6)Thrift/Avro:RPC框架,用于网络通信
    7)BigTop:项目测试、打包、部署
    8)Oozie/Azakban:大数据的工作流框架(任务调度)
    9)Flume/Chukwa/Scribe:数据收集框架
    10)Whirr:部署为云服务的类库
    11)sqoop:数据迁移工具
    12)Zookeeper:分布式协调服务框架
    13)HAMA:图计算框架
    14)Mahout:机器学习框架
    4.Hadoop环境搭建 下载:http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.14.0.tar.gz
    1)三个环境
    单机、伪分布式、分布式
    2)三个分支
    apache版本(Apache基金会)
    cdh版本(cloudera公司)
    hdp版本(HortOnWorks公司)
    3)部署环境
    服务器:VMWare虚拟机、Centos6.9操作系统
    客户端:xshell
    4)配置
    a.设置静态IP
    I.图形画界面

    II.命令行
    vim /etc/sysconfig/network-scripts/ifcfg-eth0
    service network restart
    b.设置主机名
    I.暂时性
    服务器重启后就会失效
    hostname <主机名>
    II.永久性
    vim /etc/sysconfig/network
    服务器重启后依然有效
    c.主机名与IP映射关系
    vim /etc/hosts
    IP地址 <主机名>
    注:本地DNS
    5)hadoop安装配置
    a.单机(仅仅适用于单机运行分布式计算作业)
    直接执行mapreduce-examples.jar案例
    b.为分布式(一个服务器上运行多个进程)
    I.HDFS
    <1>配置core-site.xml
    fs.defaultFS
    <2>配置hdfs-site.xml
    dfs.replication
    <3>格式化NameNode
    作用:清空NameNode目录下的所有数据,生成目录结构,初始化一些信息到文件中
    <4>启动HDFS各个过程
    sbin/start-dfs.sh

    sbin/hadoop-daemon.sh start namenode
    sbin/hadoop-daemon.sh start datanode
    sbin/hadoop-daemon.sh start secondarynamenode
    <5>浏览器访问
    http://<主机名>:50070
    注:http协议端口号:50070;RPC tcp协议端口号:8020
    II.YARN
    <1>配置mapred-site.xml
    <2>配置yarn-site.xml
    <3>启动YARN进程:ResourceManager(RM)、NodeManager(NM)
    sbin/start-yarn.sh

    sbin/yarn-daemon.sh start resourcemanager
    sbin/yarn-daemon.sh start nodemanager
    <4>浏览器访问
    http://<主机名>:8088
    注:http协议端口号:8088;RPC tcp协议端口号:8032
    c.分布式环境(多个服务器运行Hadoop各个进程)
    参考《分布式环境搭建》
    5.初始MapReduce
    1)启动Hadoop服务器
    sbin/start-all.sh
    2)浏览器访问
    http://node01:8088
    3)各个指标
    a.Cluster Metrics
    集群指标:app(提交、排队、运行、完成)、Container个数、资源(内存、cpu)
    b.Cluster Node Metrics
    机器状态:active、decommissioning、decommissioned、lost、unhealthy、reboot
    c.dr.who用户指标
    dr.who用户:通过浏览器访问默认使用dr.who用户
    配置:hadoop.http.staticuser.user:dr.who
    d.作业指标
    4)聚合日志
    a.含义:
    I.分布式计算作业放到NodeManager运行,日志信息放在NodeManager本地目录
    yarn.nodemanager.log-dirs:${yarn.log.dir}/userlogs
    II.通过配置将本地日志放到HDFS服务器上,即聚合日志的概念
    b.配置yarn-site.xml
    <!--启用日志聚合功能-->
    <property>
    <name>yarn.log-aggregation-enble</name>
    <value>true</value>
    </property>
    <!--存放多长时间-->
    <property>
    <name>yarn.log-aggregation.retain-seconds</name>
    <value>3600</value>
    </property>
    5)历史服务器
    a.配置项
    <!--RPC访问地址-->
    mapreduce.jobhistory.address
    <!--HTTP访问地址-->
    mapreduce.jobhistory.webapp.address
    b.启动/访问/停止
    sbin/mr-jobhistory-daemon.sh start historyserver
    yarn主界面跳转:http://<主机名>:19888
    sbin/mr-jobhistory-daemon.sh stop historyserver


    ---恢复内容结束---

  • 相关阅读:
    第四章之Hadoop I/O
    第五章之MapReduce应用开发
    数据预处理
    SQL Server Migration Assistant for MySQL!
    【转载】.NET设计模式之工厂方法模式(Factory Method)
    "lc.exe"已退出 代码为1 的解决方法
    【转载】.NET设计模式之抽象工厂模式(Abstract Factory)
    【转载】(收藏)《博客园精华集》分类索引
    【转载】.NET设计模式之观察者模式(Observer Pattern)
    【转载】使用Visual Studio 2010调试断点不起作用的问题解决办法(AutoCAD)
  • 原文地址:https://www.cnblogs.com/lyc0303/p/11662320.html
Copyright © 2011-2022 走看看