1HDFS数据格式详解
面向行:
1)文本格式 .txt 可切分, 查看方便编辑简单
缺点:无压缩占空间大,传输压力大,数据解析开销大
2)列文件格式 .seq 可切分, 原生支持,二进制kv存储,支持行和块压缩
缺点:本地查看不方便,小文件合并形成kv结构后不易查看内部数据
面向列:
1)rcfile 文件格式 .rc 可切分, 数据加载快,查询快,空间利用率高,高负载能力
缺点 :每一项都不是最高
2)orcfile文件格式: .orc 可切分,兼具乐rcfile优点,进一步提高了读取,存储效率,新数据类型的支持
缺点:每一项都不是最高
2压缩格式
压缩格式按其可切分计算性,分为可切分计算和不可切分计算两种。
可切分:
1) lzo(.lzo) 不是原生, 压缩/解压速度快,合理的压缩率
缺点:压缩率比gzip低,非原生,需要native安装
2)bzip2(.bz2 原生 高压缩率超过gzip,原生支持,不需要native安装,用linux bzip可解压操作
缺点: 压缩/解压速率慢
不可切分:
1)gzip(.gz) 原生, 压缩/解压速度快,原生/native都支持,使用方便
缺点: cpu要求较高
2) snappy(.snappy) 非原生, 高压缩/解压速度,合理的压缩率,
缺点: 压缩率比gzip低,非原生,需要native安装
2 lzo非原生支持,需要先安装lzo,思考在哪些节点上安装lzo组件?
先安装lzo
安装lzo命令:
yum -y install lzo lzo-devel hadooplzo hadooplzo-native
再安装lzop
安装lzop命令:
yum install lzop
3MapReduce个数的确定时机
- 在Job提交后,任务正式开始计算之前即已经确定
- Map数量的确定:由输入数据文件的总大小、数据格式、块大小综合确定,待冲刺环节详解。
Reduce数量确定:系统根据输入数据量的大小自动确定,有固定的计算公式,待冲刺环节详解。
4自定义Reduce数量
yarn jar TlHadoopCore-jar-with-dependencies.jar \
com.tianliangedu.examples.WordCountV2 \
-Dmapred.output.compress=true \
-Dmapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec \
-Dmapred.reduce.tasks=2 \
/tmp/tianliangedu/input /tmp/tianliangedu/output38