1.压缩格式有哪几种?
lzo bzip2 snappy gzip zlib
2.文件格式有哪些?
file_format:
  : SEQUENCEFILE
  | TEXTFILE    -- (Default, depending on hive.default.fileformat configuration)
  | RCFILE      -- (Note: Available in Hive 0.6.0 and later)
  | ORC         -- (Note: Available in Hive 0.11.0 and later)
  | PARQUET     -- (Note: Available in Hive 0.13.0 and later)
  | AVRO        -- (Note: Available in Hive 0.14.0 and later)
  | INPUTFORMAT input_format_classname OUTPUTFORMAT output_format_classname
3.哪种压缩格式是支持分割的
bzip2 lzo snappy支持分割,中lzo要做index
4.能够支持分割,有什么好处?
支持分割可将文件切分,文件与块大小一致,有利于降低IO使用率
5.哪种压缩比最大
bzip、gz
6.哪种压缩速率和解压速率最高
snappy、lzo
7.mr job,分为三个阶段,输入,shuffle,输出,请问这三个阶段分别用那个压缩较合适呢

输入是要起map task的,那么肯定选带分割的压缩,这样130M文件可以有两个map task

8.mr job是要配置哪些参数支持压缩呢?
core-site.xml   codecs
<property>
    <name>io.compression.codecs</name>
    <value>
    org.apache.hadoop.io.compress.GzipCodec,
    org.apache.hadoop.io.compress.DefaultCodec,
    org.apache.hadoop.io.compress.BZip2Codec,
    </value>
</property> 

mapred-site.xml   switch+codec
<property>
    <name>mapreduce.output.fileoutputformat.compress</name>
    <value>true</value>
</property>

<property>
    <name>mapreduce.output.fileoutputformat.compress.codec</name>
    <value>org.apache.hadoop.io.compress.BZip2Codec</value>
</property>
9.hive 建表,支持压缩,建表语句是否还记得,换行符,分隔符,压缩格式等等
create table page_views_orc_zlib
ROW FORMAT DELIMITED FIELDS TERMINATED BY "\t"
STORED AS ORC 
TBLPROPERTIES("orc.compress"="ZLIB")
as select * from page_views;
10.hive中哪些语句会触发 mr job
聚合函数
11.文件格式有行和列两种,分别有什么文件格式
行存储:
    TEXTFILE
    SEQUENCEFILE
列存储:
    ORC
    RCFILE(数据按行分块 每块按照列存储)
12.正常你们做的作业中,是将哪种压缩和文件格式结合呢?
gzip+textfile+parquet+rcfile
lzo+textfile+parquet+orc
13.hive建表语句默认是什么文件格式,那么指定一个文件格式的语句是什么
create table page_views_seq(
track_time string,
url string,
session_id string,
referer string,
ip string,
end_user_id string,
city_id string
)ROW FORMAT DELIMITED FIELDS TERMINATED BY "\t"
STORED AS SEQUENCEFILE;
14.hive设置output压缩格式
SET hive.exec.compress.output=true;
SET mapreduce.output.fileoutputformat.compress.codec=org.apache.hadoop.io.compress.BZip2Codec;
create table page_views_bzip2
ROW FORMAT DELIMITED FIELDS TERMINATED BY "\t"
as select * from page_views;
SET xxx=yyy;
15.spark的rdd是什么?
弹性的分布式数据集

弹性 —-简单解释就是RDD 是可以横向多分区的 ,纵向概念理解起来可能更容易 ,当计算过程中内存不足时候可以把数据刷到磁盘等外部存储上 从而实现 数据在内存和外存的灵活切换

16.rdd五大特性是什么?
Internally, each RDD is characterized by five main properties:
 - A list of partitions
 - A function for computing each split
 - A list of dependencies on other RDDs
 - Optionally, a Partitioner for key-value RDDs (e.g. to say that the RDD is hash-partitioned)
 - Optionally, a list of preferred locations to compute each split on (e.g. block locations for
    an HDFS file)

简单理解:

  • RDD是一个由多个partition(某个节点里的某一片连续的数据)组成的的list;将数据加载为RDD时,一般会遵循数据的本地性(一般一个hdfs里的block会加载为一个partition)。
  • RDD的每个partition上面都会有function,也就是函数应用,其作用是实现RDD之间partition的转换。
  • RDD会记录它的依赖 ,为了容错(重算,cache,checkpoint),也就是说在内存中的RDD操作时出错或丢失会进行重算。
  • 可选项,如果RDD里面存的数据是key-value形式,则可以传递一个自定义的Partitioner进行重新分区,例如这里自定义的Partitioner是基于key进行分区,那则会将不同RDD里面的相同key的数据放到同一个partition里面。
  • 最优的位置去计算,也就是数据的本地性。
17.你们所知道的 wc,用spark来写,能够写出来吗?
18.谈谈你们知道多少转换函数和算子呢

Spark中Transformations、Actions

19.触发job是转换函数还是算子
action
20.宽依赖和窄依赖那个图,脑子有影像没,区别是什么

RDD 的依赖关系 ,依赖关系也 是 计算优于Hadoop 的 一个重要原因
RDD之间的依赖关系中 有两个重要的词 窄依赖 宽依赖

窄依赖 如果一个父RDD 的每个分区可以被子RDD的 一个分区使用 —-> 一对一关系
宽依赖 如果一个父RDD 的每个分区可以被子RDD 的多个分区使用 —-> 一对多关系

弄两个依赖 搞这么麻烦:
窄依赖从计算过程来看 , 数据是以管道的方式经过一系列的计算操作 运行在一个节点上 如 map filter 等
相反的
宽依赖 数据可能需要跨节点传输后在计算 ,这个过程成为shuffle 增加了数据传输时间

从数据恢复看 ,窄依赖 更高 因为 只需要找到一个斧RDD 就可以了 ,同时在不同节点上可以并行处理 宽依赖 因为设计到 跨分区的的数据计算 就麻烦多了

21.spark on yarn,那么提交job,这样的架构设计流程是什么?