hadoop学习笔记3

hadoop管理员常用命令
hadoop job -list #列出正在运行的job
hadoop job -kill <job_id>  #kill job
hadoop fsck / #检查HDFS块状态,是否损坏
hadoop fsck / -delete #检查HDFS块状态,删除损坏块
hadoop dfsadmin -report #检查HDFS状态,包括DN信息。
hadoop dfsadmin -safemode enter|leave
hadoop distcp hdfs://a:8280/xxx hdfs://b:8020/ #俩台机器之间并行拷贝
./bin/start-balancer.sh #平衡集群文件
---------------------------------------
HDFS常用API详解
step1:得到Configuration对象
step2:创建FileSystem对象
step3:操作文件 mkdirs();

FileStatus status = fs.getFileStatus(new Path("/user/xxx"));
status.getPath();
获取分布式文件系统
DistributeFileSystem hdfs =(DistributeFileSystem)fs;
Date=anodeInfo[] info = hdfs.getDataNodeStats();
//获取文件系统位置
FileStatus flestatus = fs.getFileStatus(path);
BlockLocation[] blk = fs.getFileBlockLocations()
int blkleng = blk.length;
System.out.println(blk..getHosts[0]);
-------------------------------------------------------
JobTracker失败
1,JobTracker失败在所有的失败中是最严重的一种,
2,hadoop没有处理jobtracker失败的机制,它是一个单点故障
3,在未来的新版本中可能运行多哥jobtracker
4,可以使用zookeeper来协作jobtracker.
-----------------------------------------------
TaskTracker失败
1,一个TaskTracker由于崩溃或运行过于缓慢而失败,它会向JobTracker发送“心跳”
2,如果有未完成的作用,JobTracker会从新把这些任务分配到其他的TaskTracker上面运行。
3,即使TaskTracker没有失败也可能被JobTraker列入黑名单。
----------------------------------------------------------------
Hadoop Job Scheduler(调度)
1,Hadoop默认的调度器是基于队列的FIFO调度器
  所有用户的的作业都被提交到一个队列中,然后由JobTracker先按照作业的优先级高低,再按照作业提交时间的先后顺序选择将被执行的作业。
优点:调度算法简单明了,JobTracker工作负担小,
缺点:忽略了不同作业的需求差异。
2、换用俩个多用户调度器
  Fair Scheduler(公平调度器)
  Capacity Scheduler(计算能力调度器)


-------------------------------------、
Fair Scheduler(公平调度器)
多个Pool,Job需要被提交到某个Pool中
每个pool可以设置最小的task slot,称为miniShare
FS会保证Pool的公平
Pool内部支持Priority设置
支持资源抢占
--------------------------------
mapreduce数据类型与Java类型对应关系
boolean-----------BooleanWritable
byte--------------ByteWritable
int -------------IntWritable
float------------FloatWritable
long------------LongWritable
double----------DoubleWritable
String-----------Text

猜你喜欢

转载自501565246-qq-com.iteye.com/blog/1927742