Hadoop实战一

1.     三副本放置

1)  第一个副本放在写入文件的DataNode上

2)  第二个副本放在不同机架上的任意DataNode

3)  第三个副本放在同一个NameNode管理的DataNode上(一个NameNode可管理4000个DataNode)

2.     Block概述

1)  默认是64MB

2)  错误处理:

l  每当DataNode读取Block时,会进行CRC校验计算得到checksum

l  计算得到的checksum与读取前的checksum对比,若不同则向NameNode报告,NameNode会标记该Block已损坏,并有该Block的其他副本进行恢复以达到配置的副本数

3.     安全模式(适用于升级)

NameNode处于安全模式下客户端是只读的

 

4.     常用命令

bin/hadoop job –list //列出正在运行的作业

bin/hadoop job –kill job_id //删除作业

bin/hadoop fsck  //查看HDFS状态,是否有损坏块

bin/hadoop fsck –delete //删除损坏块

bin/hadoop dfsadmin –report //返回当前HDFS状态

sbin/start-balancer.sh //启动平衡器

5.     如何使用MapReduce解决问题

1.     将问题转化成MapReduce模型

2.     设置相关参数

3.     写Map逻辑

4.     写Reduce逻辑

MapReduce执行流程:

1)  JobClient对输入数据源分片

2)  通过JobTracker生成jobid

3)  检查输出目录不存在,输入目录存在

4)  拷贝任务资源到JobTracker(jar,集群配置文件,输入源切片信息)

5)  JobTracker遍历每一个InputSplit(切片信息),根据其记录的引用地址选择距离最近的TackTracker去执行

6) 将任务jar从HDFS拷贝到本地并进行解压
7)创建子JVM执行具体任务

7.1)若为Map任务,则处理流程:

l  加载InputSplit记录的数据源切片,通过InputFormat的getRecordReader()方法
获取到Reader后,执行如下操作

l  K key = reader.createKey();  

l  V value = reader.createValue();  

l  while (reader.next(key, value)) {//遍历split中的每一条记录,执行map功能函数  

l      mapper.map(key, value, output, reporter);  

如果JobTracker出现故障,则系统瘫痪

如果TaskTracker出现故障,JobTracker将其拉入黑名单,并调度其他TaskTracker重新执行此任务,失败次数超过4次,则Job失败或者以Task的成功数比例决定Job是否通过

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值