1.压缩格式有哪几种?
lzo bzip2 snappy lz4 gz
2.哪种压缩格式是支持分割的
bzip2 lzo snappy支持分割,中lzo要做index
3.能够支持分割,有什么好处?
支持分割可将文件切分,文件与块大小一致,有利于降低IO使用率
4.哪种压缩比最大
bzip2
5.哪种压缩速率和解压速率最高
snappy
6.mr job,分为三个阶段,输入,shuffle,输出,请问这三个阶段分别用那个压缩较合适呢(比如输入是要起map task的,那么肯定选带分割的压缩,这样130M文件可以有两个map task)
7.mr job是要配置哪些参数支持压缩呢?
core-site.xml
<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,
org.apache.hadoop.io.compress.SnappyCodec,
com.hadoop.compression.lzo.LzoCodec,
com.hadoop.compression.lzo.LzopCodec
</value>
</property>
<property>
<name>io.compression.codec.lzo.class</name>
<value>com.hadoop.compression.lzo.LzoCodec</value>
</property>
mapred-site.xml
<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>
<property>
<name>mapreduce.output.fileoutputformat.compress.codec</name>
<value>org.apache.hadoop.io.compress.SnappyCodec</value>
</property>
<property>
<name>mapreduce.map.output.compress.codec</name>
<value>com.hadoop.compression.lzo.LzoCodec</value>
</property>
<property>
<name>mapred.child.env</name>
<value>LD_LIBRARY_PATH=/usr/local/hadoop/lzo/lib</value>
</property>
8.hive 建表,支持压缩,建表语句是否还记得,换行符,分隔符,压缩格式等等
SET hive.exec.compress.output
SET mapreduce.output.fileoutputformat.compress.codec
create table xxx
ROW FORMAT DELIMITED FIELDS TERMINATED BY "\t"
as select * from xxx;
9.hive中哪些语句会触发 mr job
在hive中除全表扫锚外,hive中的HQL语句全部转化为MR任务(包括as select)
10.文件格式有行和列两种,分别有什么文件格式
行:textfile、sequencefile
行列混合:RCFILE
列:Parquet与ORC
11.如何将压缩和文件格式结合呢?
create table page_views_orc_snappy
ROW FORMAT DELIMITED FIELDS TERMINATED BY "\t"
STORED AS ORC
TBLPROPERTIES("orc.compress"="SNAPPY")
as select * from page_views;
12.hive建表语句默认是什么文件格式,那么指定一个文件格式的语句是什么
textfile
STORED AS SEQUENCEFILE;STORED AS RCFILE;STORED AS ORC;STORED AS PARQUET;
13.maven编译,是寻找当前目录的什么文件呢?
14.spark的rdd是什么?
弹性分布式数据集,在spark里面是最基本的抽象概念。代表一个不可变的,集合元素可被分区的,能被以并行的方式操作。
15.rdd五大特性是什么?
1、有一堆的分区
2、每个函数作用在每个分片(分区)上计算
3、RDD和其它的RDD有依赖关系
4、(可选)一个分区器给key-value RDDs所使用
5、(可选)一堆最佳位置,在本地的分片上计算(数据在哪里,就在哪里计算)
16.如何用spark来写wc?
sc.textFile("").flatMap(_.split("\t")).map((_,1)).ruduceByKey(_+_).collect
17.谈谈转换函数和算子?
https://blog.csdn.net/weixin_39182877/article/details/79975251
18.触发job是转换函数还是算子?
算子,action,因为spark是懒加载,只有action才做加载和处理
19.宽依赖和窄依赖那个图,区别是什么?
窄依赖(narrow dependencies)
窄依赖是指父RDD仅仅被一个子RDD所使用,子RDD的每个分区依赖于常数个父分区(O(1),与数据规模无关)。
输入输出一对一的算子,且结果RDD的分区结构不变。主要是map/flatmap
输入输出一对一的算子,但结果RDD的分区结构发生了变化,如union/coalesce
从输入中选择部分元素的算子,如filter、distinct、substract、sample
宽依赖(wide dependencies)
宽依赖是指父RDD被多个子分区使用,子RDD的每个分区依赖于所有的父RDD分区(O(n),与数据规模有关)
对单个RDD基于key进行重组和reduce,如groupByKey,reduceByKey
对两个RDD基于key进行join和重组,如join(父RDD不是hash-partitioned )
需要进行分区,如partitionBy
20.spark on yarn,那么提交job,这样的架构设计流程是什么?
【来自@若泽大数据】