Spark的大数据应用实践
卢亿雷 From AdMaster
@johnlya
目录
1 Yarn 上的各种坑
2 Spark ElasticSearch
3 Spark 案例分析
4 Storm or Spark streaming
5 Q A
我们是谁
• AdMaster : Make a Happy world with Data
• 使用的大数据技术:
– Hadoop
– HBase
– MapReduce
– Pig
– Hive
– Spark
– Storm
– ElasticSearch
– Pinot
Why On Yarn
•
• MR/Spark/Storm 计算方式众多, On yarn 方便统一协调
• 服务器众多, 方便资源统一控制
• 部门众多, 方便资源统计和成本核算
Why On Yarn
• Yarn 越来越成熟了
• 流式处理的输出, 批量处理的输入/输出, 基本就是 HDFS
• Yarn + Fair Scheduler 我们自己在持续优化调度
– 某些场景下, 集群闲, 但是不调度
– 经常会 “空转”
坑 Yarn
• Cdh 2.6.0-5.5.1 子队列不生效的 bug : 对于子队列名转换的处理, 解析和调用不一致
• mapreduce.fileoutputcommitter.algorithm.version 2
– 对作业日志进行合并清理, 拖慢运行速度
– 2.6 中新增参数, 默认为 1, 即之前的做法. 设置为 2, 速度可以提升约 30%
• Pig 对 HistoryServer 的依赖
坑 Yarn
• “container 内存限制” 机制各种两难
– 设置太小或不设置, 作业有可能因为内存不足而失败
– 设置太大, 资源浪费
– 不启用, 机器 OOM
坑 Spark on Yarn
• Executor的内存没达到上限前被kill
– spark.yarn.executor.memoryOverhead 384
调⾼ ,默认 ,根据实际需求调⾼
• MapReduce job scheduler Spark job kill
当有较多 , 调度压⼒增⼤的时候, 会被 掉
– 升级hadoop集群到 2.6 以上版本
• Executor OOM
– job
增加 的并⾏度
– ⼤数据集切分成更⼩的数据
– 调整spark.storage.memoryFraction和spark.executor.memory
– 设置spark.cleaner.ttl清理元数据
ElasticSearch Spark
• Spark and ES
– ES 简单维度下钻/汇聚/搜索
– Spark 复杂业务处理
• Spark on ES
– https://www.elastic.co/products/hadoop
– Write : saveToEs
– Read : val RDD = sc.esRDD(“radio/artists”) // 后面是 index
ElasticSearch比较
• 测试条件
• 记录条数分
原创力文档

文档评论(0)