1. 准备一个 Spark 应用。在此文档中,一个 Scala 应用的例子如下。
- /* SimpleApp.scala */
- import org.apache.spark.SparkContext
- import org.apache.spark.SparkContext._
- import org.apache.spark.SparkConf
- object SimpleApp {
- def main(args: Array[String]) {
- val dataFile = args(0) // the filename is specified by the first command argument
- val conf = new SparkConf().setAppName("Simple Application")
- val sc = new SparkContext(conf)
- val logData = sc.textFile(dataFile, 2).cache()
- val numAs = logData.filter(line => line.contains("a")).count()
- val numBs = logData.filter(line => line.contains("b")).count()
- println("Lines with a: %s, Lines with b: %s".format(numAs, numBs))
- }
- }
2. 按照 Spark 的快速入门指南来编译成 Spark 应用, 不在此赘述。
3. 使用 bsub 命令,通过 lsf-spark-submit.sh 来提交 Spark 应用。举例如下:
- #bsub - m "hostA! others" - n16 - R "span[ptile=8]" - I lsf - spark - submit.sh--class "SimpleApp"target / scala - 2.10 / simple - project_2.10 - 1.0.jar.. / myfile.txt
4. 通过 Spark GUI 来查看 Job 的运行情况。在浏览器中输入:
http://first_execution_hostname:port_number
其中,first_execution_hostname 是第一个运行机器的 IP 或者机器名,port_number 为前文中设置的 SPARK_MASTER_PORT。
1. 可以使用 bsub -I 命令, 来通过 lsf-spark-shell.sh 提交一个交互式的 Job,举例如下:
- #bsub - I - m "hostA! others" - R "span[ptile=4]" - n 8 lsf - spark - shell.sh
这个命令行可以启动一个 Spark shell, 用户可以使用其指定 Spark 环境和运行 Spark 命令行。
2. 可以通过 Spark GUI 界面来查看 Job 的运行状态。方法同上。
近两年,Spark 技术发展速度惊人,用户越来越多,社区也愈加活跃,生态更加丰富,这些都证明了 Spark 的魅力。越来越多的企业正将注意力转向 Spark 以帮助对大数据处理工作进行加速。特别是对于众多的 LSF 用户,也往往试图引入 Spark,来更加高效的处理数据。Spark 和 LSF 的结合,二者相互互补和促进,有效的提高大数据处理的效率。
本文通过实践的方式,探讨了二者的区别的联系,并有效的将二者集成起来,使得更多的 LSF 用户可以使用 Spark,同时,Spark 用户也可以使用 LSF。
来源: http://www.ibm.com/developerworks/cn/web/wa-design-small-and-good-kill-system/index.html