随笔分类 - Hadoop
摘要:step1:开启zookeeper服务 $>zkServer.sh start step2:开启journalnode守护进程(在qjournal协议指定的节点上执行) $>hadoop-daemon.sh start journalnode step3:开启namenode守护进程(在nn1和nn
阅读全文
摘要:HA:高可用 1.Quorum Journal Manager:群体日志管理 个数2n+1个,保证节点宕机次数为(n-1)/2;一般情况下,JNS在slave节点开启; 2.HA的namenode个数:一定是两个:nn1和nn2; 3.搭建HA步骤: 0.创建软连接:指向hadoop_cluster
阅读全文
摘要:多表连接:将连接键(id)作为k2,v2采用自定义的Writable,writable中包含以下字段:标志位字段+业务字段(可能多个);reduce端做笛卡尔积。 自连接(单表关联):对于给定的数据的key value 调换,并作些标记予以区别。 map端连接: 1.前提条件:小表尽可能小,一般情况
阅读全文
摘要:1.【Driver.class】-- Job job = Job.getInstance(conf); -->【job.class】getInstance(conf) --> new JobConf(conf) //构建一个空集群配置对象 说明:将默认configuration(4个配置文件)包装成
阅读全文
摘要:1.ResourceManager(资源管理器RM)常驻守护进程: 管理集群资源,负责全局资源的监控、分配和管理; 接收来自nodemanager的心跳信息,进行整体资源的汇总; 监控Applicacation Master的开启和创建; 2.Nodemanager(节点管理器NM)常驻守护进程:
阅读全文
摘要:描述的是reduce个数大于1的情况。全排序就是生存的多个文件里面都是按顺序的所有的文件的数据也是按顺序的。 1.思路 a.修改分区partition算法,默认是HashPartition; 例如: public int getPartition(LongWritable key, Text val
阅读全文
摘要:1.WritableComparable用途: WritableComparable可以相互比较,通常通过Comparators(比较器)进行比较。 在Hadoop Map-Reduce框架中用作键的任何类型都应该实现这个接口,因为要按键做排序; 2.WritableComparable和Writa
阅读全文
摘要:Hadoop的MapReduce计算模型的Key,Value值都是采用的自定义Writable类型,我们也可以自定义Writable来实现不同的业务需求。 1.定义: a.基于DataInput和DataOutput实现简单,高效,序列协议的可序列化对象; b.在hadoop的MapReduce计算
阅读全文
摘要:具有选择性(适合sum,max,不适合avg) 1.做优化:前提是不影响最终结果; a.实现map端到reduce端减少数据网络传输(网络IO) b.减少map Task数据输出(磁盘IO) 2.combine其实是Reduce,combine的输出作为reduce的输入 3.疑问:添加combin
阅读全文
摘要:俗称:洗牌 InputFormat-->InputSplit-->map函数(mapper)-->环形缓冲区-->partition(分区)-->sort(排序)-->spill to disk(溢写至磁盘)-->merge(合并)-->存储在maptask节点的本地(本地存储)-->fetch(通
阅读全文
摘要:1. 定义 partititon控制按值分区,并作为map输出的中间产物。键(或键的子集)用于派生分区,通常由哈希函数;分区的总数与reduce任务的数量相同。reduce的数量决定分区数;默认采用的是HashPartititon分区,当reduce个数为1时,采用的不是哈希分区,而是底层自定义的分
阅读全文
摘要:InputFormat抽象类源码解析 0.做两件事:【进行逻辑切分InputSplit;创建RecordReader】 1.抽象方法:List<InputSplit> getSplits(JobContext context) 说明:逻辑地分割作业的输入文件集-->InputSplit。然后将每个I
阅读全文
摘要:Mapper类源码解析 1.来自[org.apache.hadoop.mapreduce.Mapper<KEYIN, VALUEIN, KEYOUT, VALUEOUT>] 2.java Doc说明: Map将输入数据<k,v>转换成中间数据集<k,v> map将为输入的数据的每一个记录(行)执行m
阅读全文
摘要:BlockLocation代码跟踪 1.client-->[DistributedFileSystem.class]fs.getFileBlockLocations -->[DistributedFileSystem.class]fs.getFileBlockLocations(重载) -->[DF
阅读全文
摘要:hadoop 1.组成:common,hdfs,mapreduce,yarn 2.hadoop集群搭建:3种【搭建流程】 3.hdfs shell命令 4.hdfs体系结构:主从节点{namenode,datanode,secondarynamenode}都是守护进程而非节点:【官网结构图】 fsi
阅读全文
摘要:1.{hadoop.tmp.dir}:/tmp/hadoop-{user.name} 修改路径到当前用户目录下: /home/lyxy/tmp/hadoop 注意:格式化的含义-->创建dfs/name/fsimage和edits文件,针对namenode守护进程的。 开启namenode守护进程失
阅读全文
摘要:一: HDFS:hadoop分布式文件系统 两种表现形式:(1)hadoop fs shell命令-->hadoop fs -command (2)java API方式访问-->DistributedFileSystem对应的HDFS 二:搭建IDE a.查找hadoop的依赖包,在{hadoop_
阅读全文
摘要:1:appendToFile追加文件至目标文件末尾。 $>hadoop fs -appendToFile text111.txt /spaceQuota/text.txt 2:getmerge合并文件 $>hadoop fs -getmerge -nl /spaceQuota textmerge.t
阅读全文
摘要:1.-report:返回集群的状态信息 $>hdfs dfsadmin -report 2.-metasave:默认存放到{hadoop.log.dir}路径下,包含datanode和块的信息 $>hdfs dfsadmin -metasave metasave.tt $>cd {hadoop.lo
阅读全文
摘要:1:开启安全模式(安全模式在开启集群的时候是开启的,开启之后会关闭) $>hdfs dfsadmin -safemode enter // 进入安全模式 $>hdfs dfsadmin -safemode leave // 离开安全模式 $>hdfs dfsadmin -safemode get /
阅读全文