spark

A 19-post collection

sbt结合IDEA对Spark进行断点调试开发

原创文章,谢绝转载 笔者出于工作及学习的目的,经常与Spark源码打交道,也难免对Spark源码做修改及测试。本人一向讲究借助工具提升效率,开发Spark过程中也在摸索如何更加顺畅的对源码进行调试。 Spark基于Scala,采用IntelliJ IDEA和sbt应对日常开发,自然是最佳选择了。如何导入及编译Spark项目,网上资料很多,官网给的教程也比较详细: http://spark.apache.org/docs/latest/building-spark.html http://spark.apache.org/

深度剖析Spark分布式执行原理

让代码分布式运行是所有分布式计算框架需要解决的最基本的问题。 Spark是大数据领域中相当火热的计算框架,在大数据分析领域有一统江湖的趋势,网上对于Spark源码分析的文章有很多,但是介绍Spark如何处理代码分布式执行问题的资料少之又少,这也是我撰写文本的目的。 Spark运行在JVM之上,任务的执行依赖序列化及类加载机制,因此本文会重点围绕这两个主题介绍Spark对代码分布式执行的处理。本文假设读者对Spark、Java、Scala有一定的了解,代码示例基于Scala,Spark源码基于2.1.0版本。阅读本文你可以了解到: Java对象序列化机制 类加载器的作用 Spark对closure序列化的处理 Spark Application的class是如何加载的 Spark REPL(spark-shell)中的代码是如何分布式执行的

自己动手为Spark 2.x添加ALTER TABLE ADD COLUMNS语法支持

SparkSQL从2.0开始已经不再支持ALTER TABLE table_name ADD COLUMNS (col_name data_type [COMMENT col_comment], ...)这种语法了(下文简称add columns语法)。如果你的Spark项目中用到了SparkSQL+Hive这种模式,从Spark1.x升级到2.x很有可能遇到这个问题。 为了解决这个问题,我们一般有3种方案可以选择: 启动一个hiveserver2服务,通过jdbc直接调用hive,

Spark+Hadoop集群性能调优

Hadoop短路本地读(原理:unix domain socket),提高文件读取性能 Hadoop的NameNode节点连接数设置要合理,设置hdfs-site.xml的dfs.namenode.handler.count配置,合理的连接值:python -c 'import math ; print int(math.log(计算节点的数量) * 20)' Data Locality的问题(