Welcome to mumu-spark’s documentation!¶
mumu-spark是一个学习项目,主要通过这个项目来了解和学习spark的基本使用方式和工作原理。mumu-spark主要包括弹性数据集rdd、spark sql、机器学习语言 mllib、实时工作流streaming、图形数据库graphx。通过这些模块的学习,初步掌握spark的使用方式。
The code is open source, and available on GitHub.
项目描述¶
mumu-spark是一个学习项目,主要通过这个项目来了解和学习spark的基本使用方式和工作原理。mumu-spark主要包括弹性数据集rdd、spark sql、机器学习语言 mllib、实时工作流streaming、图形数据库graphx。通过这些模块的学习,初步掌握spark的使用方式。
有向无环图¶
spark提交job之后会把job分成多个stage,多个stage之间是有依赖关系的,正如前面所看到的的,stage0依赖于stage1,因此构成了有向无环图DAG。而且stage中 的依赖分为窄依赖和宽依赖,窄依赖是一个worker节点的数据只能被一个worker使用,而宽依赖是一个worker节点的数据被多个worker使用。一般讲多个窄依赖归 类为一个stage,方便与pipeline管道执行,而将以宽依赖分为一个stage。
spark正是使用dag有向无环图来实现容错机制,当节点的数据丢失的时候,我们可以通过dag向父节点重新计算数据,这种容错机制成为lineage。
常见问题¶
jdk版本低问题¶
spark2.2.0版本依赖于java1.8,如果执行spark程序的时候jdk版本低于1.8的时候会包版本错误问题。
hadoop的文件系统异常问题¶
当项目中同时依赖hadoop-commons包和hadoop-hdfs包的时候,打包项目的时候会存在一个问题,那就是hadoop-hdfs(hadoop2.8.1之后是hadoop-client包)包下 的MATA-INF/service/org.apache.hadoop.fs.FileSystem文件会被覆盖,导致打包程序无法使用org.apache.hadoop.hdfs.DistributedFileSystem文件系统无法 使用。
hadoop-common包
org.apache.hadoop.fs.LocalFileSystem
org.apache.hadoop.fs.viewfs.ViewFileSystem
org.apache.hadoop.fs.ftp.FTPFileSystem
org.apache.hadoop.fs.HarFileSystem
hadoop-hdfs或者hadoop-client包
org.apache.hadoop.hdfs.DistributedFileSystem
org.apache.hadoop.hdfs.web.WebHdfsFileSystem
org.apache.hadoop.hdfs.web.SWebHdfsFileSystem
org.apache.hadoop.hdfs.web.HftpFileSystem
org.apache.hadoop.hdfs.web.HsftpFileSystem