网络资源面经3

文章探讨了Hive与MySQL在数据存储和处理能力上的差异,解释了Java的类加载器机制,包括BootstrapClassLoader、ExtensionClassLoader和AppClassLoader。此外,还详细介绍了MapReduce实现WordCount的步骤,并分析了fullGC与oldGC的区别,最后提出了避免频繁FullGC的策略。
摘要由CSDN通过智能技术生成

hive 与 mysql 的区别

  1. 数据存储位置
    hive数据存储在hdfs上,mysql的数据存储在本地磁盘中。
  2. 数据规模
    hive支持很大规模数据的计算,mysql支持的数据规模很小。
  3. 执行延迟
    mysql的执行延迟较低,hive的执行延迟较高,但这是有条件的,当数据量足够体现出hive的并行计算的优势时,hive的延迟更低。
  4. 数据更新
  5. mysql经常需要对数据进行更新,hive不建议对数据进行更新

类加载器的种类,有什么机制,机制有何用处

在这里插入图片描述

  1. 启动类加载器(引导类加载器 Bootstrap ClassLoader)
    这个类加载器是使用c/c++实现的,是JVM的一部分(JVM也是c/c++实现的)。主要负责加载java的核心类库(JAVA_HOME/jre/lib/rt.jar、resources.jar或sun.boot.class.path路径下的内容),例如System,String等。只有把这些类都加载到内存中我们才可以使用。它不是java实现的,所以并不是ClassLoader的子类。还用于加载其他加载器,并被指定为他们的父类加载器。出于安全考虑,启动类加载器只加载java,javax,sun等开头的类。
  2. 扩展类加载器(Extension ClassLoader)
    由java语言编写,由sun.mics.Launcher$ExtClassLoader实现。扩展类加载器派生自ClassLoader。父类加载器为Bootstrap ClassLoader。主要加载java.ext.dirs目录下的类或JDK安装目录jre/lib/ext子目录下的类。如果用户将自定义类放在该目录下,也会由扩展类加载器加载
  3. 应用程序类加载器(系统类加载器 AppClassLoader)
    由java语言编写,由sun.mics.Launcher$AppClassLoader实现。系统类加载器派生自ClassLoader。父类加载器为ExtClassLoader。负责加载classpath目录或系统属性java.class.path下的指定类库。该类是程序中默认的类加载器,java应用中的类一般都由它来加载。
  4. 用户自定义类加载器
    通常的程序加载都由上面三种类加载器配合加载。而在某些特定的时候需要用户自定义加载器来定制类的加载方式。
    自定义类加载器的目的:
    (1)隔离加载类
    (2)修改类加载的方式
    (3)扩展加载源
    (4)防止源码泄露

MapReduce实现wordcount流程

  1. 自定义Mapper
    继承Mapper类,重写map方法,参数列表(偏移量,文本,输出K,输出V)
  2. 自定义Reducer
    继承Reducer类,重写reduce方法,参数列表(输入K,输入V,输出K,输出V)
  3. 编写Driver驱动类
    ①通过Job.getInstance(conf)获取由conf配置的Job
    ②注册驱动类
    ③关联Mapper类和Reducer类
    ④设置Mapper类输出KV类型
    ⑤设置Reducer类输出KV类型
    ⑥设置输出输出路径
    ⑦提交Job

full GC 和 old GC 区别

full GC(重GC)由Minor GC(轻GC) 和 Major GC(old GC) 组成。当新创建的对象无法存放在Eden区时会进行Minor GC(99%都是Minor GC)。随后再次存放,依然放不下,尝试直接放入S0区,S0区也放不下,尝试直接放入老年代,也放不下,这时就会触发Major GC清理老年代的内存,放得下,成功,放不下,OOM。所以触发Major GC通常伴随着Minor GC,合起来称作full GC

避免频繁的Full GC

  1. 避免定义过大的对象(数组)
  2. 避免将过大对象定义为静态变量
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值