zoukankan      html  css  js  c++  java
  • 高精尖面试题(三)

    Linux查看一个文件的大小

    du -h

    Linux如何查看一个文件后500行数据

    tail -n 500 aaa.txt

    Spark算子的种类,分别说几个

    你在项目中主要负责的部分

    参考简历上个人职责。

    使用hive怎么过滤空值

    (1)不同数据类型对空值的存储规则

    int与string类型数据存储,null默认存储为 N;

    string类型的数据如果为"",存储则是"";

    另外往int类型的字段插入数据“”时,结果还是N。

    (2)不同数据类型,空值的查询

    对于int可以使用is null来判断空;

    而对于string类型,条件is null 查出来的是N的数据;而条件 =’’,查询出来的是""的数据。

    结论:判断空时要根据实际的存储来进行判断。在开发过程中如果需要对空进行判断,一定得知道存储的是哪种数据。

    有个处理空的小技巧,Hive给出一种并非完美的解决方法——自定义底层用什么字符来表示NULL

    3 索引类型有哪些?

    普通索引:仅加速查询

    唯一索引:加速查询 + 列值唯一(可以有null)

    主键索引:加速查询 + 列值唯一(不可以有null)+ 表中只有一个

    组合索引:多列值组成一个索引,专门用于组合搜索,其效率大于索引合并

    全文索引:对文本的内容进行分词,进行搜索

    4 数据库如果考虑时区,用什么类型?

    TIMESTAMP是标准的unix timestamp,它存储的是1970-1-1到现在经过的秒数,4字节存储

    DATETIME的范围更大,好像可以从0000-00-00 00:00:00到9999-12-31 23:59:59,8字节存储

    select

    date_format(from_utc_timestamp(to_utc_timestamp("中国北京时间",'GMT+8'),"要转化地方的GMT"),'yyyy-MM-dd HH:mm:ss') as local_time

    from ccsd.tb_name

    5 组合索引使用like还有效吗?

    like在某些情况下是不会使用索引的,但是有些情况是走索引的:例如:

    like '%keyword%'或者like '%keyword'是不会走索引的,但是当like 'keyword%'也不一定就会走索引,这样看具体情况,如果select中查询了其他字段【就是这个字段没有在这个like所引用的组合索引或者索引字段中,除了id字段之外】这样的情况就不会走索引,如果想要走自己想要的索引,可以添加上force index(ziduan1_index),这样就可以了

    使用like走索引的情况:查询的字段都得是组合索引中的才行

    6 组合索引怎么使用才会生效

    建立的组合索引顺序:(a,b,c,d,e,f)   

    1、如果组合索引中的索引都在,则索引全部生效

    2、如果组合索引中最左边的索引a不存在,那么索引都不生效

    3、如果组合索引中最左边的索引a存在但没有使用全部的索引。首先按照建立索引的顺序排好,从a开始往后判断是否具有连续性(依据建立索引的顺序),如果直至最后都具有连续性,那么这些索引生效。如果在下一个节点处的索引连续性断掉,那么当前节点的索引和左边的索引生效。当前节点右边的索引不生效

    7 事务的特性?

    1:原子性:事务包含的所有操作要么全部成功,要么全部失败回滚;成功必须要完全应用到数据库,失败则不能对数据库产生影响;

    2:一致性:事务执行前和执行后必须处于一致性状态,

    例:用户A和用户B的前加起来一共是5000; 无论AB用户之间是如何相互转换的,事务结束后两个用户的钱加起来还是5000,这就是事务的一致性。

    3:隔离性:当多个用户并发访问数据库时,数据库为每一个用户开启的事务,不被其他事务的操作所干扰,多个并发事务之间要相互隔离;

    4:持久性:一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,即便在数据库系统遇到故障的情况下也不会丢失事物的操作。

    8 数据库隔离级别

    01:Read uncommitted(读未提交):最低级别,任何情况都会发生。
    02:Read Committed(读已提交):可避免脏读的发生。
    03:Repeatable read(可重复读):可避免脏读、不可重复读的发生。
    04:Serializable(串行化):避免脏读、不可重复读,幻读的发生。

    9 linux系统常用的操作命令

           增加awk和sed的复习。

    10 自己在linux上装过哪些软件?

           Hadoop、Hive、zookeeper、HBase、Java、Spark都可以说。尽量说自己熟悉的。

    11 对堆和栈的理解?

           JVM虚拟机的问题。详情查看JVM虚拟机相关内容。

    12 java数据结构

    1数组
    2链表
    3栈和队列
    4二叉树
    5堆和堆栈
    6散列表
    7红黑树 https://www.jianshu.com/p/8e54797ec3e0

    还有一个比较简单的问题,是java数据类型,要知道并答出8中基本数据类型,以及其他复杂数据类型

    13 双向 链表如果从中取出一个数据,如何使其还是一个双向链表?

    14 算法了解吗?知道哪些?说下原理

    15 离线大数据和实时大数据的区别?你如何技术选型?

    16 离线数据流向过程

    17 kafka熟吗?

    18 非结构化数据库有哪些?用过哪些?

    HBase、MongoDB、Redis

    19 kafka有哪些节点类型

    Broker,producer,consumer  

    20 如果3台kafka的集群宕机了一台,怎么办?宕了两台呢?

    21 kafka和传统消息队列有何区别?

    22 集群是动态增加的吗?

    23 触发器的作用

    24 工作中SQL的优化

    25 项目耗时多久?从什么状态开始的?什么状态结束的?你负责哪些?

  • 相关阅读:
    并行执行计划
    mongodb数据查询-小结
    mongodb的基本操作-小结
    架构
    bat、dos控制多个后台程序启动
    python技术实践清单
    Linux升级安装python2.7.5到python2.7.9
    数据分析-GDP统计
    技术能力清单-小结
    动态链接库*.so
  • 原文地址:https://www.cnblogs.com/lingboweifu/p/11909781.html
Copyright © 2011-2022 走看看