大数据面试部分问题整理。

一.hive的metastore的三种模式

Hive中metastore(元数据存储)的三种方式:

1. 内嵌Derby方式:

这个是Hive默认的启动模式,一般用于单元测试,这种存储方式有一个缺点:在同一时间只能有一个进程连接使用数据库。

2. Local方式

例如本地mysql:创建好用户:hive;database:hive。

ps:需要把mysql的驱动包copy到目录<HIVE_HOME>/lib中

如果是第一次需要执行初始化命令:schematool -dbType mysql -initSchema

配置完成后就可在shell中以CLI的方式访问hive进行操作验证。

3.Remote方式

以Mysql数据库为例:创建好用户:hive;database:hive_meta。Remote方式需要分别配置服务端和客户端的配置文件。

hive metastore服务端启动命令:

hive --service metastore -p <port_num>

如果不加端口默认启动:hive --service metastore,则默认监听端口是:9083
 

二.数据量特别大的情况下(例如10g、100g、1t)如何用mr实现全局排序?
方式一:reduce数量只设置为1个。缺点:没有用到集群的优势,速度慢。
方式二:自定义分区类partition,按照key值进行分区。
例如:将排序key值为1-1000的数据,使用两个分区,将1-500的key发送到partition1,将501-1000的key发送到partition2。
缺点:1、当数据量大时会出现OOM。2、会出现数据倾斜。
方式三(推荐):利用TotalOrderPartitioner类。(hive的order by底层也是该方法)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值