2017年05月03日

来源:互联网 发布:河南网络电视台直播 编辑:程序博客网 时间:2024/06/10 21:17
2017年05月03日

如果在 mysql中有一张表student(id,name),还有一张表address(stu_id,home,school),还有联系方式表contact(stu_id,mine,parents,others)。

如果把这三张表迁移到hive中,如何迁移哪?

答:

可以一一对应,优点是迁移成本非常低,包括DDL和业务逻辑,几乎不需要修改,可以直接使用。缺点是产生大量的表连接,造成查询慢。

可以一对多,mysql中的多张关联表可以创建为hive中的一张表。优点是减少表连接操作。缺点是迁移成本高,需要修改原有的业务逻辑。

实际上,在我们日常的开发过程中遇到这样的问题,要想比较完美、顺利的解决,一般都分为两个阶段,

第一个阶段,现在快捷迁移,就是上面说的一一对应,让我们的系统能跑起来,

在此基础之上呢,再做去重处理,就是做一张大表,尽量包含以上所有字段,

eg stu(id, name, address struct, contactstruct<...>);等第二个阶段完工之后了呢,就可以去掉跑在新的系统里面了。

hive的调优可以从哪些方面入手来加快执行速度

hive表文件的大小所带来的影响

问:什么时候使用外部表,什么时候用内部表?

一般公用的一些数据使用外部表,比如多个部门都用的一些统计数据,用外之后就可以删除掉表的定义,而不用影响表的数据。

从上面也可以看出来,我们使用别人的数据时候,最好来建立这种外部表。

问:如何建立一个外部分区表?

问:如何开启本地模式?

问:如何用脚本自动给分区表test(分区字段statDatestring)每天创建一个分区?

yesterday=`date -d '1 days ago' '%Y%m%d'`

hive -e "use default; ALTER TABLE test ADD PARTITION(statDate='$yesterday') LOCATION'/data/workcopy/$yesterday';"

hive数据已经发生倾斜了,如何对数据进行处理,使其不倾斜。

1°、通过阅读hive源码,自己总结出hql 转化为 mr的执行过程,把整个的过程用图画出来,同时说明每个过程都主要完成的工作是什么。

1、hive权限控制需要配置那个配置文件?

2、Hive授权的核心是什么?

3、如何实现角色的授权和撤销?

2-1  Hcatalog在新版本(1.*.*后的版本)的hive中位置,都用在那些地方?

2-2 资料库的访问超时,metastore服务宕机,spark或MR并行写Hive时冲突等

2-3 Hive表分区的设计,以及表权限的问题(比如 A建表,B删除,但是底层的文件并没有删掉)

2-4 Hive与 HBase等其他组件的交互问题,如何能够保证Hive自身的稳定性

原创粉丝点击