这里写自定义目录标题
大数据组队学习Task05和期中作业
Q1: 简述Hadoop小文件弊端
(1)每个小文件需要一个Map任务,这会大大增加Map任务的数量,从而导致Hadoop集群的性能下降;
(2)HDFS存储小文件时,会消耗较多的磁盘空间,因为每个文件都会有一个128KB的文件块;
(3)HDFS上存储的小文件会占用较多的元数
Q2:HDFS中DataNode挂掉如何处理?
- 首先,NameNode会检测到DataNode挂掉,并将它从活跃节点列表中移出,同时NameNode会释放DataNode上存储的所有块,将它们标记为“不可用”;
- NameNode会把DataNode上的块重新分配给其他节点,保证数据的完整性;
- 接下来,需要及时维修DataNode,确保其能够正常运行;
- 4最后,DataNode重新加入集群,重新从NameNode复制数据,并重新激活。
Q3: HDFS中NameNode挂掉如何处理?
- 关闭DataNode节点:在每个DataNode节点上运行“hadoop-daemon.sh stop datanode”,停止所有DataNode,以防止丢失数据。
- 启动备用NameNode:使用备用NameNode平滑地启动HDFS,该过程可能需要几分钟。
- 重新启动DataNode:一旦备用NameNode已经启动,开始重新启动DataNode,使用“hadoop-daemon.sh start datanode”在每个DataNode上启动DataNode。
- 检查文件系统:检查文件系统,以确保文件系统正确地重新启动,使用“hadoop fsck”命令检查文件系统。
- 启动其他服务:完成文件系统检查后,启动其他HDFS服务,如NameNode,SecondaryNameNode,JobTracker等。
Q4: HBase读写流程?
1.客户端发出读/写请求到HBase Master;
2.HBase Master决定RegionServer所在的位置,并将读/写请求转发到相应的RegionServer;
3.RegionServer将请求发送到Region,并根据Rowkey索引查找到指定的列族;
4.RegionServer读取指定的列族,并将结果返回到客户端;
5.如果是写操作,RegionServer将新的数据插入到HBase表中,并将更新后的结果返回给客户端。
Q5:MapReduce为什么一定要有Shuffle过程
- Shuffle过程是MapReduce的关键,它主要用于把Map阶段产生的中间结果进行分组、排序处理,然后传递给Reduce阶段进行处理。MapReduce无法实现分布式计算,也就无法实现大数据处理,需要Shuffle过程,把Map阶段产生的数据进行汇总,形成Reduce阶段需要的数据输入,才能实现大数据处理。
- Shuffle过程可以有效地提高MapReduce的效率和性能,因为它把Map阶段产生的数据进行汇总,使Reduce阶段可以处理更多的数据,从而更加有效地实现MapReduce的计算功能。
- Shuffle过程有效地保证了分布式计算的一致性,使得MapReduce的结果可以按照预期正确地输出。
Q6:MapReduce中的三次排序
MapReduce中的三次排序是指将MapReduce作业运行三次,每次都运行排序操作,以产生排序结果。
第一次排序是Map阶段的排序,它按照指定的键对输入数据进行排序,以便将输入数据归类到不同的Reduce任务中。第二次排序是Reduce阶段的排序,它会将每个Reduce任务接收到的输入数据进行排序,以便将其输出到最终的结果中。第三次排序是在输出结果之前,将最终的结果进行排序,以便更好地提取有用信息。
Q7:MapReduce为什么不能产生过多小文件
MapReduce不能产生过多小文件,因为会影响MapReduce作业的性能。MapReduce旨在处理大量数据,如果有太多小文件,MapReduce会产生大量小作业,从而降低MapReduce作业的性能。
实战部分一直在报错。。。所以暂时还没debug出来QAQ,明天在继续补。。