【300+精选大厂面试题持续分享】大数据运维尖刀面试题专栏(十五)

持续分享有用、有价值、精选的优质大数据面试题

致力于打造全网最全的大数据面试专题题库

136、以你的实际经验,说下怎样预防全表扫描?

参考答案:

1)应尽量避免在where 子句中对字段进行null 值判断,否则将导致引擎放弃使用索引而进行全表扫描。

2)应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫。

3)描应尽量避免在 where 子句中使用or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描。

4)in 和 not in,用具体的字段列表代替,不要返回用不到的任何字段。in 也要慎用,否则会导致全表扫描。

5)避免使用模糊查询。

6)任何地方都不要使用select* from t。

137、Hive为什么要分桶?

参考答案:

        Hive分桶通俗点来说就是将表或者分区中的文件分成几个文件去存储。比如表buck文件中本来是1000000条数据,由于在处理大规模数据集时,在开发和修改查询的阶段,如果能在数据集的一小部分数据上试运行查询,会带来很多方便,所以我们可以分4个文件去存储。

138、Hive与HBase的区别?

参考答案:

(一)使用方面的区别

        Hive

                1)Hive是一个构建在Hadoop平台上的数据仓库。

                2)Hive数据存放在HDFS之上。

                3)Hive数据查询最终被转化为MapReduce。

        HBase

                1)HBase是一个基于HDFS平台的NoSQL数据库。

                2)HBase数据存储在HDFS之上。

                3)HBase是基于数据库本身的实时查询,而非运行MapReduce。

(二)特点的区别

        Hive

                1)Hive方便熟悉SQL的人,快速上手大数据分析。

                2)Hive默认计算引擎是MapReduce,所以查询时间比较长。

                3)Hive底层计算引擎也可以更换为Spark/Tez。

           4)Hive中的表是纯逻辑表,只是表的定义,本身不存储和计算,完全依赖HDFS/MapReduce

        HBase

                1)HBase本身不支持SQL,需要通过集成Phoenix/Hive才支持SQL。

                2)HBase基于一级索引Rowkey进行数据查询,所以查询速度比较快。

                3)HBase底层基于Scan进行数据扫描,而非基于MapReduce

                4)HBase中的表是物理表,有独立的物理数据结构,查询时可以将数据加载到内存,提升后续的查询效率

(三)局限性的区别

        Hive

                1)Hive目前仅支持ORCFile文件格式的数据更新操作,还需要提前开启事务支持。

                2)Hive的运行依赖HDFS进行数据存储,默认依赖MapReduce进行数据计算。

        HBase

                1)HBase本身不支持SQL查询功能,需要通过与Phoenix集成实现。

                2)HBase的运行依赖Zookeeper提供协调服务(配置服务、维护元数据、命名空间服务),依赖HDFS数据存储。

(四)应用场景的区别

        Hive

                1)Hive主要用于构建基于Hadoop平台的数据仓库,离线处理海量数据。

                2)Hive提供完整的SQL实现,一般用于历史数据的分析、挖掘。

        HBase

                1)HBase适合用了大数据的实时查询、海量数据的存储。

                2)HBase是近实时数据库,支持线上业务的实时查询。

139、手写连续登入7日的用户SQL?

数据格式

第一列(uid):用户id

第二列(dt):登录时间

第三列(status):用户状态

数据示例

1,2021-05-11,1

1,2021-05-12,1

1,2021-05-13,1

1,2021-05-14,1

1,2021-05-15,1

1,2021-05-16,1

1,2021-05-17,1

1,2021-05-18,1

2,2021-05-11,1

2,2021-05-12,1

2,2021-05-13,0

2,2021-05-14,1

2,2021-05-15,1

2,2021-05-16,0

2,2021-05-17,1

2,2021-05-18,0

3,2021-05-11,1

3,2021-05-12,1

3,2021-05-13,1

3,2021-05-14,0

3,2021-05-15,1

3,2021-05-16,1

3,2021-05-17,1

3,2021-05-18,1

参考答案:

(1)创建表

create table ulogin(

uid int, dt date, status int )

row format delimited fields terminated by ','

stored as textfile

location '/user/hive/warehouse/sca.db/ulogin/';

(2)加载数据

load data local inpath '/home/hadoop/shell/data/userlogin.txt' into table ulogin;

(3)具体实现

使用row_number()函数在组内给每行数据编号

使用的row_number 给日期排序

select uid, dt, row_number() over (partition by uid order by dt) gid from ulogin where status=1;

(4)具体实现

日期-rownum = gid,得到结果可以作为连续登录的依据

通过date_sub函数来获取连续登录的日期

select uid, dt, date_sub(dt, row_number() over (partition by uid order by dt)) gid from ulogin where status=1;

(5)具体实现

根据求得的gid作为分组条件,统计最终结果

通过group by  count having分组统计,即可获取连续登入7日的用户

select uid,count(gid) from (select uid, dt, date_sub(dt, row_number() over (partition by uid order by dt)) gid from ulogin where status=1) as u group by uid,gid having count(gid)>=7;

140、HBase中的数据存储在哪里?以什么格式存储?和Zookeeper什么关系?

参考答案:

1.HBase中的所有数据文件都存储在Hadoop HDFS文件系统上。

2.HBase中数据存储格式:

        HFile: 是HBase中KeyValue数据的存储格式。HFile是Hadoop的二进制格式文件。

       HLog File:是HBase中WAL(Write Ahead Log) 的存储格式,物理上是Hadoop的Sequence File

3. HBase与Zookeeper之间的关系

        1)hbase meta表的位置存储在Zookeeper

        2)hbase master 利用Zookeeper选举

        3)master与RegionServer通信通过Zookeeper

        4)Zookeeper存储hbase元数据信息

持续分享有用、有价值、精选的优质大数据面试题

致力于打造全网最全的大数据面试专题题库

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大数据研习社

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值