• 分布式并行计算MapReduce


    1.用自己的话阐明Hadoop平台上HDFS和MapReduce的功能、工作原理和工作过程。

    HDFS的功能:元数据、检查点、DataNode功能

    HDFS的工作原理:

    数据存取 - HDFS架构:

    Master / Slave(主从结构) - 节点可以理解为物理机器

    • 主节点,只有一个: Namenode
    • 从节点,有很多个: Datanodes

    1)   分布式文件系统,它所管理的文件是被切块存储在若干台datanode服务器上.;

    2)   hdfs提供了一个统一的目录树来定位hdfs中的文件,客户端访问文件时只要指定目录树的路径即可,不用关心文件的具体物理位置;

    3)   每一个文件的每一个切块,在hdfs集群中都可以保存多个备份,在hdfs-site.xml中,dfs.replication的value的数量就是备份的数量;

    4)   hdfs中有一个关键进程服务进程:namenode,它维护了一个hdfs的目录树及hdfs目录结构与文件真实存储位置的映射关系(元数据).而datanode服务进程专门负责接收和管理"文件块";

    HDFS的工作过程:客户端要向HDFS写数据,首先要跟namenode通信以确认可以写文件并获得接收文件block的datanode,然后,客户端按顺序将文件逐个block传递给相应datanode,并由接收到block的datanode负责向其他datanode复制block的副本。

     

    (2)MapReduce的功能:Hbase和Hdfs之间数据相互转换;排序;Top N;从hbase中读取数据统计并在hdfs中降序输出Top 3;去重(Distinct)、计数(Count)、最大值(Max)、求和(Sum)、平均值(Avg);(多个job串行处理计算平均值;分区(Partition);Pv、Uv;倒排索引(Inverted Index);join;

    MapReduce的工作原理: 

    MR编程模型原理:利用一个输入的key-value对集合来产生一个输出的key-value对集合。

    MapReduce的工作过程:MR框架是由一个单独运行在主节点上的JobTracker和运行在每个集群从节点上的TaskTracker共同组成。主节点负责调度构成一个作业的所有任务,这些任务分布在不同的不同的从节点上。主节点监视它们的执行情况,并重新执行之前失败的任务。从节点仅负责由主节点指派的任务。当一个Job被提交时,JobTracker接受到提交作业和配置信息之后,就会将配置信息等分发给从节点,同时调度任务并监控TaskTracker的执行。JobTracker可以运行于集群中的任意一台计算机上。TaskTracker负责执行任务,它必须运行在DataNode上,DataNode既是数据存储节点,也是计算节点。JobTracker将map任务和reduce任务分发给空闲的TaskTracker,这些任务并行运行,并监控任务运行的情况。如果JobTracker出了故障,JobTracker会把任务转交给另一个空闲的TaskTracker重新运行。

    2.HDFS上运行MapReduce

    1)准备文本文件,放在本地/home/hadoop/wc

    2)编写map函数和reduce函数,在本地运行测试通过

     

    3)启动Hadoop:HDFS, JobTracker, TaskTracker

     

    4)把文本文件上传到hdfs文件系统上 user/hadoop/input 

    5)streaming的jar文件的路径写入环境变量,让环境变量生效

    6)建立一个shell脚本文件:streaming接口运行的脚本,名称为run.sh

    7)source run.sh来执行mapreduce

    8)查看运行结果

  • 相关阅读:
    Linux操作系统基本操作(1)
    C#: 获取当前路径不要用Environment.CurrentDirectory
    Python:Selenium Chrome无弹窗+property/attribute/text
    Python:Selenium+Webdriver安装
    Redis开启远程登录连接
    Redis Error:/var/redis/run/redis_6379.pid exists, process is already running or crashed
    Oracle VM VirtualBox虚拟机内Linux系统硬盘扩容步骤(CentOS6.5)
    PHP开发中Redis安装(CentOS6.5)
    MySQL创建用户与授权(CentOS6.5)
    CentOS下二进制包/源码安装方式的MySQL卸载步骤
  • 原文地址:https://www.cnblogs.com/hzj111/p/10981295.html
Copyright © 2020-2023  润新知