【总结】spark按文本格式和Lzo格式处理Lzo压缩文件的比较-创新互联

1、描述spark中怎么加载lzo压缩格式的文件

公司主营业务:做网站、成都网站制作、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联公司推出中阳免费做网站回馈大家。

2、比较lzo格式文件以textFile方式和LzoTextInputFormat方式计算数据,Running Tasks个数的影响

  a.确保lzo文件所在文件夹中生成lzo.index索引文件

    (对该lzo压缩文件进行index操作,生成lzo.index文件,map操作才可以进行split

        hadoop jar ${HADOOP_HOME}/lib/hadoop-lzo.jar com.hadoop.compression.lzo.DistributedLzoIndexer /wh/source/)

  b.以LzoTextInputFormat处理,能够正常按分块数分配Tasks


查看文件块数量

[tech@dx2 ~]$ hdfs fsck /wh/source/hotel.2017-08-07.txt_10.10.10.10_20170807.lzo
Connecting to namenode via http://nn1.zdp.ol:50070
FSCK started by bwtech (auth:SIMPLE) from /10.10.10.10 for path /wh/source/hotel.2017-08-07.txt_10.10.16.105_20170807.lzo at Tue Aug 08 15:27:52 CST 2017
.Status: HEALTHY
 Total size:2892666412 B
 Total dirs:0
 Total files:1
 Total symlinks:0
 Total blocks (validated):11 (avg. block size 262969673 B)
 Minimally replicated blocks:11 (100.0 %)
 Over-replicated blocks:0 (0.0 %)
 Under-replicated blocks:0 (0.0 %)
 Mis-replicated blocks:0 (0.0 %)
 Default replication factor:3
 Average block replication:3.0
 Corrupt blocks:0
 Missing replicas:0 (0.0 %)
 Number of data-nodes:21
 Number of racks:2
FSCK ended at Tue Aug 08 15:27:52 CST 2017 in 3 milliseconds

Spark源代码可以参考https://github.com/chocolateBlack/LearningSpark/blob/master/src/main/scala-2.11/SparkLzoFile.scala

import com.hadoop.mapreduce.LzoTextInputFormat
import org.apache.hadoop.io.{Text, LongWritable}
import org.apache.spark.{SparkContext, SparkConf}
object SparkLzoFile{
  def main(args:Array[String]){
    val conf = new SparkConf().setAppName("Spark_Lzo_File")
    val sc = new SparkContext(conf)
    //文件路径
    val filePath = "/wh/source/hotel.2017-08-07.txt_10.10.10.10_20170807.lzo"
    //按textFile方式加载文件
    val textFile = sc.textFile(filePath)
    //按lzoTextInputFormat加载数据文件
    val lzoFile = sc.newAPIHadoopFile[LongWritable, Text, LzoTextInputFormat](filePath)
    println(textFile.partitions.length)// partitions个数输出 1
    println(lzoFile.partitions.length)//  partitions个数输出 11
    //两种方式计算word count查看后台任务
    lzoFile.map(_._2.toString).flatMap(x=>x.split("-")).map((_,1)).reduceByKey(_+_).collect
    textFile.flatMap(x=>x.split("\t")).map((_,1)).reduceByKey(_+_).collect
  }
}

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


分享标题:【总结】spark按文本格式和Lzo格式处理Lzo压缩文件的比较-创新互联
本文链接:http://azwzsj.com/article/digpcp.html