面试经验-xx技术面试

hive用到哪些技术点

数据迁移(oracle 到 hive)
sql脚本

udf udaf举例(hive)

udf 继承extends 重写 evaluate
udf的输入参数一般对应数据表的列,以行为单位

hive/sparkSql实现udaf 需要继承什么,自己需要实现哪部分逻辑

hbase随机热点问题

自己入坑,加了随机前缀,加随机前缀的话怎么查询rowkey
如果随机前缀的话,怎么查询rowkey?随机前缀的话会破坏rowkey,使得rowkey没有意义。可以加随机后缀的方式,这样可以再通过前缀过滤器来查询

rowkey 简短性
rowkey 唯一性
rowkey 散列性

rowkey 设计举例:

userid|timestamp|hashCode

kafka+sparkStreaming中断时,如何保证消息只消费一次

消息中断时采用checkpoint恢复,恢复的原理是什么?sparkStreaming 如何维护offset
spark streaming读取kakfka数据手动维护offset

hbase压缩算法问题

hbase 1.2官方文档

hadoop hbase算法 表示
‘none’
zlib gzip ‘GZ’
lz4 LZ4 ‘LZ4’
snappy Snappy ‘SNAPPY’
bzip2
LZO ‘LZO’

Enabling Compression on a ColumnFamily of an Existing Table using HBaseShell

修改已经存在的表

1
2
3
hbase> disable 'test'
hbase> alter 'test', {NAME => 'cf', COMPRESSION => 'GZ'}
hbase> enable 'test'

Creating a New Table with Compression On a ColumnFamily

创建表时采用压缩算法

1
create 'test2', { NAME => 'cf2', COMPRESSION => 'SNAPPY' }

Verifying a ColumnFamily’s Compression Settings

查看列簇的压缩方式

1
2
3
4
5
6
hive> desc 'test'
{NAME => 'cf', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', CO
MPRESSION => 'GZ', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}
{NAME => 'info', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER',
COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}
2 row(s) in 0.0090 seconds

hbase查询(filter)

HBase filter shell操作

接触大数据后,最大的收获是什么

#(我一系列懵逼之后)你擅长哪部分

#