hadoop学习

HDFS 实现机制

同一个block有多个副本(图上没画出来)
在这里插入图片描述

HDFS 的实现思想

  • hdfs是通过分布式集群来存储文件,同时为客户端提供了一个便捷的访问方式,就是一个虚拟的目录结构
  • 文件存储到hdfs集群中去的时候,是被切分为block的
  • 文件的block存放在若干台datanode节点上
  • hdfs文件系统中的文件与真实的block之间有映射关系,由namenode管理
  • 每一个block在集群中会存储多个副本,好处是可以提高数据的可靠性,还可以提高访问的吞吐量
#######  hdfs ###########
hadoop fs -put 文件名   路径url   # 传文件
hadoop fs -get 文件名   路径url   # 下载文件
######  mapreduce  #########
hadoop -jar 名字.jar   pi  5  5  # 参数(5个map。5个reduce)
# 可以指定输入输出的路径
hadoop fs -cat 显示文件内容

MapReduce

  1. MapReduce是一种分布式计算模型,由Google提出,主要用于搜索领域,解决海量数据的计算问题。
  2. MR由两个阶段组成:Map和Reduce,用户只需要实现map()和reduce()两个函数,即可实现分布式计算,非常简单。
    这两个函数的形参是key、value对,表示函数的输入信息。

作业打成jar包,运行。

YARN

rm(yarn里面的主节点)
node manager

任务:只负责资源的调度,分配好之后就不管了(到第7步)


准备工作:
程序 (wc.jar)
提交的方式:hadoop jar. cn.itcast.hadoop.mr.wordcount.WCRUNNER
里面有一句代码job.waitforcomplection()会启动一个进程runner.jar
1、申请执行一个job
2、返回job相关资源的提交路径
3、提交资源到hdfs上的一个路径中去/tmp/xx/xx..yarn-staging/jobID/
4、向RM汇报提交结果
5、RM将本job加入任务队列系统中
6、通知NM(通过心跳机制)去领取任务
7、初始化任务运行环境。分配运行资源容器(cpu资源、内存资源、文件资源)
8、RM启动MRAppMaster。
9、MRAPPMaster向RM注册。请求资源的位置信息。
10、MRAPPMaster启动map任务yarnchild
11、MRAPPMaster启动reduce任务
12、任务执行完之后,MRAPPMasterRM注销自己

主要包括两大部分:YARN和MapReduce

  • 在YARN框架中,起监控作用的是Resource Manager,用来监控Node Manager,它们都是节点,也就是进程。
  • 在MapReduce框架中,起监控作用的是MRAppMaster,用来监控yarnChild,它们都是动态产生的进程。
$ jps   #查看有哪些进程

mr运行的几种模型

本地模型运行

  1. 在windows的eclipse里面直接运行main方法,就会将job提交给本地执行器localjobrunner执行
    ----输入输出数据可以放在本地路径下(c:/wc/srcdata/)
    ----输入输出数据也可以放在hdfs中(hdfs://weekend110:9000/wc/srcdata)

  2. 在linux的eclipse里面直接运行main方法,但是不要添加yarn相关的配置,也会提交给localjobrunner执行
    ----输入输出数据可以放在本地路径下(/home/hadoop/wc/srcdata/)
    ----输入输出数据也可以放在hdfs中(hdfs://weekend110:9000/wc/srcdata)

集群模式运行

  1. 将工程打成jar包,上传到服务器,然后用hadoop命令提交 hadoop jar wc.jar cn.itcast.hadoop.mr.wordcount.WCRunner

  2. 在linux的eclipse中直接运行main方法,也可以提交到集群中去运行,但是,必须采取以下措施:
    ----在工程src目录下加入 mapred-site.xml 和 yarn-site.xml
    ----将工程打成jar包(wc.jar),同时在main方法中添加一个conf的配置参数 conf.set(“mapreduce.job.jar”,“wc.jar”);

  3. 在windows的eclipse中直接运行main方法,也可以提交给集群中运行,但是因为平台不兼容,需要做很多的设置修改
    ----要在windows中存放一份hadoop的安装包(解压好的)
    ----要将其中的lib和bin目录替换成根据你的windows版本重新编译出的文件
    ----再要配置系统环境变量 HADOOP_HOME 和 PATH
    ----修改YarnRunner这个类的源码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值