博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spark On Kubernetes 原生集群支持
阅读量:7235 次
发布时间:2019-06-29

本文共 2605 字,大约阅读时间需要 8 分钟。

hot3.png

源码:

 

Apache Spark On Kubernetes

转载请注明来源:

Spark提供快速的分布式计算能力,但其安装、部署和管理相对复杂,因此Spark on Kubernetes应运而生。该项目位于 , 包含 Apache Spark 的一份拷贝,支持直接在Kubernetes cluster上原生地运行Spark作业,从而可以把Spark的共享内存、分布式算法等特性直接部署于kubernetes集群之中,从而简化Spark的部署、运维和动态伸缩过程。

  • 如果使用Linuxkit构建Kubernetes的操作系统镜像(参见:,那么可以构建出直接运行Spark的虚拟机镜像,从而可以快速在数据中心部署简洁、安全、可靠的Spark节点。等Kubernetes玩熟了,再来搞这个,目前还不支持的哈!

是什么?

这是一个协同维护的项目,根据提案 开展工作。目标是为 Spark 提供原生的 Kubernetes 支持,帮助完成Spark集群的管理, 像 Spark Standalone, Mesos, 以及 Apache YARN cluster managers一样提供完整的集群管理支持。

开始

  • 如何运行代码。
  • 如何设置开发环境。
  • Spark on Kubernetes的高层架构。
  • 代码主要位于 目录。

为什么要fork代码?

为新的集群管理添加原生的整合需要非常大的工作量。如果修改不善, 将给Spark在运行其他集群管理器时带入新的Bug, 拖慢整个Spark项目的进程,或者需要发布热修补补丁,维护额外的发行版本。在Spark的省督工作需要小心翼翼地进行,以避免这些潜在的风险。

同时,来自不同的企业和机构希望原生地运行Spark 到 Kubernetes 的人越来越多,而且希望一起来改进。这一群体需要一个共同的代码库 repository, 共同的 forum, issue 追踪, 持续集成, 一起以开源软件的方式高效地工作。

我们征求了Spark贡献者的意见,关于在Apache infrastructure 之外段时间地工作,以允许这一特征能够尽快实现,从而避免给Spark带来额外的分线。目标是快速把这一特征带入到Apache Spark 开发repository的主线,从而进行后续的持续开发。如果进展顺利, 这将是一个短期的fork版本,而不是长期维护的版本。

我们是谁?

这是来几个不同公司的对这一特征感兴趣的小伙伴共同努力的结果。这一项目中参与活跃的公司包括(按字母顺序):

  • Bloomberg
  • Google
  • Haiwen
  • Hyperpilot
  • Intel
  • Palantir
  • Pepperdata
  • Red Hat

(original README below)

Apache Spark

Spark 是用于大数据的快速而通用的集群计算系统。提供了高阶的API,包括:Scala、Java,、Python和R, 通过优化的引擎支持数据分析的计算图调度,还支持丰富的高级工具,包括 Spark SQL for SQL 、DataFrames、MLlib for machine learning、GraphX for graph processing, 以及Spark Streaming for stream processing。

在线文档

你可以找到最新的 Spark 文档, 包括编程指南, 在 。这里只包含最基本的安装设置说明。

编译 Spark

Spark 使用 进行构建,为了构建Spark和例程,运行:

build/mvn -DskipTests clean package

(也可以下载预先构建好的版本,就不必运行上面的过程。)

运行Maven时使用 -T 选项,可以使用更多的线程来加快编译速度。参见 , 更多的细节参见Spark的官网——。

关于开发的一些提示、信息以及IDE的使用,参见:。

交互 Scala Shell

最简单的启动Spark的方法是通过Scala shell:

./bin/spark-shell

试一下下面的代码,将返回 1000:

scala> sc.parallelize(1 to 1000).count()

交互 Python Shell

此外, 如果喜欢 Python, 可以使用 Python shell:

./bin/pyspark

试一下下面的代码,将返回 1000:

>>> sc.parallelize(range(1000)).count()

示范例程

Spark 的 examples 目录下有不少很好的例程。运行使用 ./bin/run-example <class> [params]

例如:

./bin/run-example SparkPi

将运行 Pi 这个例子。

你可以设置 MASTER 环境变量,然后运行例程时就可以将作业提交到集群之中。可以是 mesos:// 或者 spark:// URL, "yarn" 用于 YARN, 以及 "local" 以单线程在本地运行,或者"local[N]" 在本地运行 N 个线程。你可以指明 class,该class在 examples 包中。例如:

MASTER=spark://host:7077 ./bin/run-example SparkPi

如果没有给出参数,大多数例程会打印出帮助信息。

运行测试

运行测试过程需要先 . Spark 构建完成后,使用下面的命令运行测试:

./dev/run-tests

Please see the guidance on how to .

关于Hadoop版本

Spark 使用Hadoop 核心库访问 HDFS和其他Hadoop支持的存储系统。因为不同的Hadoop版本的protocols 有改变,因此必须使用你的Hadoop集群对应的版本来构建 Spark才能够访问相应的存储系统。

请参考 ,里面有关于特定Hadoop分发版本的细节说明,以及包括 构建特定的Hive 和 Hive Thriftserver 分发版的说明。

配置

请参考 。

贡献

请查看 ,你也可以为这个项目作出贡献。

转载于:https://my.oschina.net/u/2306127/blog/1601281

你可能感兴趣的文章
atitit.软件开发GUI 布局管理优缺点总结java swing wpf web html c++ qt php asp.net winform
查看>>
《SQL Server企业级平台管理实践》读书笔记——SQL Server中关于系统库Tempdb总结...
查看>>
如何提高SELECT的效率
查看>>
Unity手游之路<四>3d旋转-四元数,欧拉角和变幻矩阵
查看>>
scala编程第17章学习笔记(1)——集合类型
查看>>
重构if...else...或者switch程序块
查看>>
模板继承
查看>>
Provide your license server administrator with the following information.error code =-42,147
查看>>
careercup-递归和动态规划 9.4
查看>>
设置Ubuntu Mysql可以远程链接
查看>>
ZooKeeper学习第八期——ZooKeeper伸缩性
查看>>
boost 源码编译 的 Makefile.am写法备份
查看>>
移动端图表插件jChart.js的修改
查看>>
MVC Controller return 格式
查看>>
Eclipse快捷键 10个最有用的快捷键
查看>>
JQuery实现密码有短暂的显示过程和实现 input hint效果
查看>>
Kooboo中如何切换数据库(注意:如果切换数据库,需要Kooboo中没有一个website 否则会报错数据库中没有表之类的)...
查看>>
OWIN规范中最让人费解的地方
查看>>
页面视图中的按钮操作指向
查看>>
Android UI开发第三十篇——使用Fragment构建灵活的桌面
查看>>