Hadoop
面试,笔记
江城507
这个作者很懒,什么都没留下…
展开
-
Sqoop工作流程
Sqoop是一个用来将Hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。1)读取导入数据的表结构,生成运行类,默认是QueryResult,打成jar包,然后提交给Hadoop。6)RecordReader从数据库中一行行读取数据,设置好key,value,交给map。4)创建RecordReader,从数据库读取数据。...原创 2022-08-17 19:20:23 · 867 阅读 · 1 评论 -
解决数据倾斜
当按照 user_id 进行两个表的 Join 操作时,默认的 Hash 操作会按 int 型的 id 来进行分配,这样会导致所有 string 类型 id 的记录都分配到一个 Reducer 中。这样做的结果是同一key可能分布在不同的reduce中,第二个MR Job再通过reduce by key将相同的key聚合到一块。所幸,每日的会员 uv 不会太多,有交易的会员不会太多,有点击的会员不会太多,有佣金的会员不会太多等等。去重需要一个Reduce Task,当重复的数据太多时,就会发生数据倾斜。..原创 2022-08-17 19:05:28 · 622 阅读 · 0 评论 -
hive知识点
1)hive采用的schema on read(读时模式),只有在读时才会检查、解析具体的数据字段,schema;因此它load数据的时候速度非常快,不需要解析数据,只是对数据进行拷贝,移动。如果数据的处理由hive和其他工具一起处理,则创建外部表。ive创建内部表时,会将数据移动到数据仓库指向的路径,hive管理数据的生命周期;在删除表时,内部表的元数据和数据会一起被删除。外部表只删除元数据,不删除数据。创建外部表时,仅记录数据所在的路径,不对数据的位置做任何改变。4)hive不支持行级插入。...原创 2022-08-17 15:15:56 · 240 阅读 · 0 评论 -
Yarn工作机制
12)mrAppmaster等待所有map任务完成之后,向RM申请容器,运行ReduceTask。7)NM领取任务之后,RM会为它分配Container容器资源,并生成mrAppmaster。6)RM将这个请求转化为一个任务,放到任务队列中,等待空闲的NM拉取任务。11)RM向NM发送程序启动脚本,NM启动MapTask,对数据分区排序。10)RM将MapTask任务分配给NM,收到任务的NM会创建容器。5)该程序将资源提交完毕,向RM申请mrAppmaster。1)MR程序提交到客户端所在节点。...原创 2022-08-16 18:14:59 · 177 阅读 · 0 评论 -
shuffle过程
如果有combiner函数,如果有combiner函数,会在排序后的输出上运行,使得map输出的结果更紧凑。Map任务如果输出量很大,可能会进行好几次分割,这样spill文件就会分布在不同的磁盘上,这边通过扫描本地索引找到spill文件位置,然后将他们合并输出。reduce通过Http方式从map获取数据,reduce有少量复制线程,可以进行并行复制map上的数据。如果数据比较大,当达到缓存区阈值时会溢出到磁盘,最后会排序合并这些溢出文件。进入环形缓冲区,默认100M,左边是索引,右边是数据。...原创 2022-08-16 17:28:22 · 104 阅读 · 0 评论 -
MR工作流程
9)MRAppMaster分配在那些NM上运行map(即yarnchild进程),reduce任务。1)执行hadoop jar命令之后,生成RunJar进程,客户端向RM申请一个job。10)运行map和reduce任务的NM,向资源共享文件系统获取job相关资源。12)job任务结束后,MRAppmaster向RM注销自己,然RM回收资源。3)客户端提交相关资源(jar,xml)到共享文件系统(HDFS)2)RM向客户端发送job资源的提交路径,生成jobID。11)运行map,reduce任务。...原创 2022-08-15 21:39:10 · 730 阅读 · 0 评论 -
在向HDFS中写数据的时候,当写某一副本时出错怎么处理?
4)在正常工作的DN中,根据租约信息选举出一个主DataNode,与其他正常DN通信。获取每个DN当前数据块的大小,从中选择一个最小值,将每个正常的DN同步到该大小。2)将已经发送到管道中,还没有收到确认的数据包写回数据队列,这样无论那个节点发生故障,都不会发生数据丢失。3)正常工作的DN获得新的版本号(利用namenode租约中的信息可以获得最新时间戳版本),这样故障节点恢复后由于版本信息不对,故障节点恢复后会被删除。5)在管道中删除故障节点,将数据写入管道中其他正常节点。...转载 2022-08-15 20:20:46 · 466 阅读 · 0 评论 -
NameNode的HA实现
1)状态为active的namenode向分布式共享文件系统journalnode写入编辑日志editlog,状态为standby为了与active状态的namenode保持一致,在分布式共享文件系统中读入文件。当选举结束时,调用zkfc相应方法,切换主namenode状态,或者备namenode状态。healthmonitor负责监控namenode状态变化,当namenode状态改变时,会调用zkfc进行主备选举。NameNode机器发生意外,如宕机,集群将无法使用,知道管理员重启。...原创 2022-08-15 16:58:32 · 475 阅读 · 0 评论 -
Editlog与Fsimage合并过程
Fsimage是hdfs的元数据在硬盘上的checkpoint,也就是快照;2NN也会将两个文件载入内存,因此2NN需要运行在一台专门的机器上。Editlog记录对hdfs节点的操作。原创 2022-08-14 23:03:17 · 699 阅读 · 0 评论 -
HDFS联邦机制
HDFS集群中的Datanode提供数据块的共享存储功能,每个Datanode都会向集群中所有的Namenode注册,且周期性地向所有的Namenode发送心跳和块汇报,然后执行Namenode通过响应发回的Namenode指令。(2)由于HDFS文件的读写流程都涉及与Namenode交互,所以文件系统的吞吐量受限于单个Namenode的处理能力。(1)由于Namenode在内存中保存整个文件系统的元数据,所以Namenode内存的大小直接限制了文件系统的大小。...原创 2022-08-14 22:18:53 · 279 阅读 · 0 评论 -
MepReduce组成
MapReduce的组成包括JobTracker、TaskTracker、Task原创 2022-06-28 16:54:44 · 245 阅读 · 0 评论 -
HDFS组成
HDFS由namenode,datanode,2NN,client组成原创 2022-06-28 15:43:06 · 205 阅读 · 0 评论 -
HDFS读写流程
HDFS读写流程图文原创 2022-06-25 11:04:51 · 58 阅读 · 0 评论