Spark的那些外部框架
摘要:Spark社区提供了大量的框架和库。其规模及数量都还在不断增加。本文我们将介绍不包含在Spark核心源代码库的各种外部框架。Spark试图解决的问题涵盖的面很广,跨越了很多不同领域,使用这些框架能帮助降低初始开发成本,充分利用开发人员已有的知识。
SparkPackage
要使用Spark库,你首先必须了解的东西是Sparkpackage。它有点像Spark的包管理器。当你给Spark集群提交job时,你可以到存放Sparkpackage的网站下载任何package。所有package都存放在这个站点。
http://spark-packages.org/
当你想用一个Sparkpackage时,可以在spark-submit命令或者spark-shell命令中增加包选项:
$$Spark_HOME/bin/Spark-shell\-packagescom.databricks:Spark-avro_2.10:2.0.1
点击并拖拽以移动
如果使用了--packages选项,Sparkpackage就会自动把它的JAR包添加到你指定的路径下。你不仅能在Spark集群上使用社区的库,还能到公开发布自己的库。如果要把一个Sparkpackage发布到这个托管服务下,必须遵守下列规则:
源代码必须放在Github上。
代码库的名字必须与包名相同。
代码库的主分支必须有README.md文件,在根目录下必须有LICENSE文件。
换句话说,你不需要编译自己的package。即使你用SparkPackages的模板,编译、发布以及版本更新都将由这项服务完成。sbt插件sbt-spark-package(https://github.com/databricks/sbt-spark-packages)对于生成package也非常有用。如果要在你的项目中包含此插件,请务必在sbt项目的project/plugins.sbt文件中写入下面的代码:
resolvers+="bintray-Spark-packages"at"https://dl.bintray.com/Spark-packages/maven/"addSbtPlugin("org.Spark-packages"%"sbt-Spark-packages"%"0.2.3")
点击并拖拽以移动
发布Spark包时必须提供如下信息,应该把它们写到build.sbt中:
spName——package的名称。
sparkVersion——package所依赖的Spark版本。
sparkComponents——package所依赖的Spark组件列表,例如SQL、MLlib。
spShortDescription——package的一句话描述。
spDescription——关于package的完整描述。
spHomePage——用于描述package的Web页面的URL。
上述6项是你在发布package之前需要提供的信息。一定要发布到package的代码库的主分支上。你可以使用Sparkpackage的托管站点(https://spark-packages.org/)的WebUI来完成这项工作。
图片描述
在Sparkpackage站点上注册了Github账号后,可以从“name”下拉菜单中选择你的代码库。
图片描述
上面的简短描述和主页最好与build.sbt中的描述和主页URL一致。一旦你提交了package,验证过程就开始了。这个过程通常需要几分钟。当验证完成后,你会收到一封邮件,告诉你验证是否成功。如果成功,就可以用前面描述的--package选项下载你的package了。截至2015年11月,Sparkpackage站点上已经有153个package了。下一节将介绍一些库,它们也是支持Sparkpackage形式的,即它们也以Sparkpackage格式分发。
原文链接http://click.aliyun.com/m/23423/